From a43c32d62672a2422ac57cb4fe3721d7c8f056b3 Mon Sep 17 00:00:00 2001 From: Omar Date: Tue, 21 Jul 2026 19:18:15 +0300 Subject: [PATCH] add a back button so you can always go back from the hardware wallet connect screen --- .../connect_device/connect_device_page.dart | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/lib/src/screens/connect_device/connect_device_page.dart b/lib/src/screens/connect_device/connect_device_page.dart index ed1ae3154..bde91e711 100644 --- a/lib/src/screens/connect_device/connect_device_page.dart +++ b/lib/src/screens/connect_device/connect_device_page.dart @@ -4,6 +4,7 @@ import "dart:io"; import "package:cake_wallet/entities/hardware_wallet/hardware_wallet_device.dart"; import "package:cake_wallet/generated/i18n.dart"; import "package:cake_wallet/main.dart"; +import "package:cake_wallet/new-ui/widgets/modern_button.dart"; import "package:cake_wallet/new-ui/widgets/new_primary_button.dart"; import "package:cake_wallet/routes.dart"; import "package:cake_wallet/src/screens/base_page.dart"; @@ -56,7 +57,43 @@ class ConnectDevicePage extends BasePage { : S.current.restore_title_from_hardware_wallet; @override - Widget? leading(BuildContext context) => !isReconnect ? super.leading(context) : null; + Widget? leading(BuildContext context) { + if (!isReconnect) { + return super.leading(context); + } + + return MergeSemantics( + child: Padding( + padding: const EdgeInsets.only(top: 4.0), + child: ButtonTheme( + minWidth: double.minPositive, + child: Semantics( + label: S.of(context).seed_alert_back, + child: ModernButton( + size: 37, + icon: Icon(CupertinoIcons.back), + iconColor: Theme.of(context).colorScheme.onSurfaceVariant, + onPressed: () => _onReconnectBack(context), + ), + ), + ), + ), + ); + } + + void _onReconnectBack(BuildContext context) { + final navigator = Navigator.of(context); + if (navigator.canPop()) { + navigator.pop(); + return; + } + + navigator.pushNamed( + Routes.walletList, + arguments: (BuildContext context) => + Navigator.of(context).pushNamedAndRemoveUntil(Routes.dashboard, (route) => false), + ); + } @override Widget body(BuildContext context) => PopScope(