add a back button so you can always go back from the hardware wallet connect screen

Omar committed Jul 21, 2026 at 19:18 UTC a43c32d62672a2422ac57cb4fe3721d7c8f056b3
1 file changed +38 -1
lib/src/screens/connect_device/connect_device_page.dart
+38 -1
@@ -4,6 +4,7 @@ import "dart:io";
4 import "package:cake_wallet/entities/hardware_wallet/hardware_wallet_device.dart";
5 import "package:cake_wallet/generated/i18n.dart";
6 import "package:cake_wallet/main.dart";
7 +import "package:cake_wallet/new-ui/widgets/modern_button.dart";
8 import "package:cake_wallet/new-ui/widgets/new_primary_button.dart";
9 import "package:cake_wallet/routes.dart";
10 import "package:cake_wallet/src/screens/base_page.dart";
@@ -56,7 +57,43 @@ class ConnectDevicePage extends BasePage {
57 : S.current.restore_title_from_hardware_wallet;
58
59 @override
59 - Widget? leading(BuildContext context) => !isReconnect ? super.leading(context) : null;
60 + Widget? leading(BuildContext context) {
61 + if (!isReconnect) {
62 + return super.leading(context);
63 + }
64 +
65 + return MergeSemantics(
66 + child: Padding(
67 + padding: const EdgeInsets.only(top: 4.0),
68 + child: ButtonTheme(
69 + minWidth: double.minPositive,
70 + child: Semantics(
71 + label: S.of(context).seed_alert_back,
72 + child: ModernButton(
73 + size: 37,
74 + icon: Icon(CupertinoIcons.back),
75 + iconColor: Theme.of(context).colorScheme.onSurfaceVariant,
76 + onPressed: () => _onReconnectBack(context),
77 + ),
78 + ),
79 + ),
80 + ),
81 + );
82 + }
83 +
84 + void _onReconnectBack(BuildContext context) {
85 + final navigator = Navigator.of(context);
86 + if (navigator.canPop()) {
87 + navigator.pop();
88 + return;
89 + }
90 +
91 + navigator.pushNamed(
92 + Routes.walletList,
93 + arguments: (BuildContext context) =>
94 + Navigator.of(context).pushNamedAndRemoveUntil(Routes.dashboard, (route) => false),
95 + );
96 + }
97
98 @override
99 Widget body(BuildContext context) => PopScope(