2022-06-12 14:39:36 +00:00
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:photos/core/errors.dart';
|
2023-04-06 08:50:01 +00:00
|
|
|
import "package:photos/generated/l10n.dart";
|
2023-06-09 06:27:48 +00:00
|
|
|
import "package:photos/ui/components/notification_widget.dart";
|
2022-06-12 14:39:36 +00:00
|
|
|
import 'package:photos/ui/payment/subscription.dart';
|
|
|
|
import 'package:photos/utils/email_util.dart';
|
2023-06-09 06:27:48 +00:00
|
|
|
import "package:photos/utils/navigation_util.dart";
|
2022-06-12 14:39:36 +00:00
|
|
|
|
|
|
|
class HeaderErrorWidget extends StatelessWidget {
|
2022-12-30 12:10:17 +00:00
|
|
|
final Error? _error;
|
2022-06-12 18:11:58 +00:00
|
|
|
|
2022-12-30 12:10:17 +00:00
|
|
|
const HeaderErrorWidget({Key? key, required Error? error})
|
2022-06-12 14:39:36 +00:00
|
|
|
: _error = error,
|
|
|
|
super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
if (_error is NoActiveSubscriptionError) {
|
2023-06-09 06:27:48 +00:00
|
|
|
return Padding(
|
|
|
|
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6),
|
|
|
|
child: NotificationWidget(
|
|
|
|
startIcon: Icons.info_rounded,
|
|
|
|
actionIcon: Icons.arrow_forward,
|
|
|
|
text: S.of(context).subscribe,
|
|
|
|
subText: S.of(context).yourSubscriptionHasExpired,
|
|
|
|
onTap: () async => {
|
|
|
|
await routeToPage(
|
|
|
|
context,
|
|
|
|
getSubscriptionPage(),
|
|
|
|
forceCustomPageRoute: true,
|
|
|
|
)
|
|
|
|
},
|
2022-06-12 14:39:36 +00:00
|
|
|
),
|
|
|
|
);
|
|
|
|
} else if (_error is StorageLimitExceededError) {
|
2023-06-09 06:50:32 +00:00
|
|
|
return Padding(
|
|
|
|
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6),
|
|
|
|
child: NotificationWidget(
|
|
|
|
startIcon: Icons.disc_full_rounded,
|
|
|
|
actionIcon: Icons.arrow_forward,
|
|
|
|
text: S.of(context).upgrade,
|
|
|
|
subText: S.of(context).storageLimitExceeded,
|
|
|
|
onTap: () async => {
|
|
|
|
await routeToPage(
|
|
|
|
context,
|
|
|
|
getSubscriptionPage(),
|
|
|
|
forceCustomPageRoute: true,
|
|
|
|
)
|
|
|
|
},
|
2022-06-12 14:39:36 +00:00
|
|
|
),
|
|
|
|
);
|
|
|
|
} else {
|
2023-06-09 06:50:32 +00:00
|
|
|
return Padding(
|
|
|
|
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6),
|
|
|
|
child: NotificationWidget(
|
|
|
|
startIcon: Icons.error_outline_rounded,
|
|
|
|
actionIcon: Icons.arrow_forward,
|
|
|
|
text: S.of(context).backupFailed,
|
|
|
|
subText: S.of(context).couldNotBackUpTryLater,
|
|
|
|
onTap: () async => {
|
|
|
|
sendLogs(
|
|
|
|
context,
|
|
|
|
S.of(context).raiseTicket,
|
|
|
|
"support@ente.io",
|
|
|
|
subject: S.of(context).backupFailed,
|
|
|
|
)
|
|
|
|
},
|
2022-06-12 14:39:36 +00:00
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|