service status button updates (#1388)

* service status button updates

* small fix

* update wording
This commit is contained in:
Matthew Fosse
2024-04-16 00:45:40 +02:00
committed by GitHub
parent 953c278f8c
commit fb9534a0e9
29 changed files with 86 additions and 6 deletions
@@ -106,10 +106,10 @@ class _DashboardPageView extends BasePage {
Widget leading(BuildContext context) {
return Observer(
builder: (context) {
if (dashboardViewModel.isEnabledBulletinAction) {
return ServicesUpdatesWidget(dashboardViewModel.getServicesStatus());
}
return const SizedBox();
return ServicesUpdatesWidget(
dashboardViewModel.getServicesStatus(),
enabled: dashboardViewModel.isEnabledBulletinAction,
);
},
);
}
@@ -107,7 +107,10 @@ class DesktopSidebarWrapper extends BasePage {
: unselectedIconPath,
),
SideMenuItem(
widget: ServicesUpdatesWidget(dashboardViewModel.getServicesStatus()),
widget: ServicesUpdatesWidget(
dashboardViewModel.getServicesStatus(),
enabled: dashboardViewModel.isEnabledBulletinAction,
),
isSelected: desktopSidebarViewModel.currentPage == SidebarItem.status,
onTap: () {},
),
+26 -1
View File
@@ -1,10 +1,13 @@
import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/entities/preferences_key.dart';
import 'package:cake_wallet/entities/service_status.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/widgets/service_status_tile.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:shared_preferences/shared_preferences.dart';
@@ -12,8 +15,9 @@ import 'package:url_launcher/url_launcher.dart';
class ServicesUpdatesWidget extends StatefulWidget {
final Future<ServicesResponse> servicesResponse;
final bool enabled;
const ServicesUpdatesWidget(this.servicesResponse, {super.key});
const ServicesUpdatesWidget(this.servicesResponse, {super.key, required this.enabled});
@override
State<ServicesUpdatesWidget> createState() => _ServicesUpdatesWidgetState();
@@ -24,6 +28,27 @@ class _ServicesUpdatesWidgetState extends State<ServicesUpdatesWidget> {
@override
Widget build(BuildContext context) {
if (!widget.enabled) {
return InkWell(
onTap: () async {
await showPopUp<void>(
context: context,
builder: (BuildContext context) {
return AlertWithOneAction(
alertTitle: S.current.service_health_disabled,
alertContent: S.current.service_health_disabled_message,
buttonText: S.current.ok,
buttonAction: () => Navigator.of(context).pop(),
);
});
},
child: SvgPicture.asset(
"assets/images/notification_icon.svg",
color: Theme.of(context).extension<DashboardPageTheme>()!.pageTitleTextColor,
width: 30,
),
);
}
return Padding(
padding: const EdgeInsets.all(8.0),
child: FutureBuilder<ServicesResponse>(