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(