Keep drawer opened (#1989)

* Keep drawer opened * Pop the side menu only in case of switching wallets

Omar Hatem committed Jan 30, 2025 at 23:46 UTC a936345bfb3c6313acc3ad7738edc7af749aab3d
3 files changed +5 -49
lib/src/screens/settings/desktop_settings/desktop_settings_page.dart
+1 -1
@@ -4,7 +4,6 @@ import 'package:cake_wallet/src/widgets/setting_action_button.dart';
4 import 'package:cake_wallet/src/widgets/setting_actions.dart';
5 import 'package:cake_wallet/typography.dart';
6 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
7 -import 'package:cw_core/wallet_type.dart';
7 import 'package:flutter/material.dart';
8 import 'package:cake_wallet/router.dart' as Router;
9 import 'package:cake_wallet/themes/extensions/menu_theme.dart';
@@ -35,6 +34,7 @@ class _DesktopSettingsPageState extends State<DesktopSettingsPage> {
34 Widget build(BuildContext context) {
35 return Scaffold(
36 body: Container(
37 + color: Theme.of(context).colorScheme.background,
38 height: MediaQuery.of(context).size.height,
39 child: Row(
40 children: [
lib/src/screens/wallet_list/wallet_list_page.dart
-36
@@ -1,7 +1,6 @@
1 import 'package:another_flushbar/flushbar.dart';
2 import 'package:cake_wallet/core/auth_service.dart';
3 import 'package:cake_wallet/core/new_wallet_arguments.dart';
4 -import 'package:cake_wallet/core/secure_storage.dart';
4 import 'package:cake_wallet/entities/wallet_edit_page_arguments.dart';
5 import 'package:cake_wallet/entities/wallet_list_order_types.dart';
6 import 'package:cake_wallet/generated/i18n.dart';
@@ -402,41 +401,6 @@ class WalletListBodyState extends State<WalletListBody> {
401 );
402 }
403
405 - Image _imageFor({required WalletType type, bool? isTestnet}) {
406 - switch (type) {
407 - case WalletType.bitcoin:
408 - if (isTestnet == true) {
409 - return tBitcoinIcon;
410 - }
411 - return bitcoinIcon;
412 - case WalletType.monero:
413 - return moneroIcon;
414 - case WalletType.litecoin:
415 - return litecoinIcon;
416 - case WalletType.haven:
417 - return havenIcon;
418 - case WalletType.ethereum:
419 - return ethereumIcon;
420 - case WalletType.bitcoinCash:
421 - return bitcoinCashIcon;
422 - case WalletType.nano:
423 - case WalletType.banano:
424 - return nanoIcon;
425 - case WalletType.polygon:
426 - return polygonIcon;
427 - case WalletType.solana:
428 - return solanaIcon;
429 - case WalletType.tron:
430 - return tronIcon;
431 - case WalletType.wownero:
432 - return wowneroIcon;
433 - case WalletType.zano:
434 - return zanoIcon;
435 - case WalletType.none:
436 - return nonWalletTypeIcon;
437 - }
438 - }
439 -
404 Future<void> _loadWallet(WalletListItem wallet) async {
405 if (SettingsStoreBase.walletPasswordDirectInput) {
406 Navigator.of(context).pushNamed(Routes.walletUnlockLoadable,
lib/src/widgets/setting_actions.dart
+4 -12
@@ -46,7 +46,6 @@ class SettingActions {
46 name: (context) => S.of(context).silent_payments_settings,
47 image: 'assets/images/bitcoin_menu.png',
48 onTap: (BuildContext context) {
49 - Navigator.pop(context);
49 Navigator.of(context).pushNamed(Routes.silentPaymentsSettings);
50 },
51 );
@@ -56,7 +55,6 @@ class SettingActions {
55 name: (context) => S.of(context).export_outputs,
56 image: 'assets/images/monero_menu.png',
57 onTap: (BuildContext context) {
59 - Navigator.pop(context);
58 Navigator.of(context).pushNamed(Routes.urqrAnimatedPage, arguments: 'export-outputs');
59 },
60 );
@@ -66,7 +64,6 @@ class SettingActions {
64 name: (context) => S.of(context).litecoin_mweb_settings,
65 image: 'assets/images/litecoin_menu.png',
66 onTap: (BuildContext context) {
69 - Navigator.pop(context);
67 Navigator.of(context).pushNamed(Routes.mwebSettings);
68 },
69 );
@@ -76,7 +73,6 @@ class SettingActions {
73 name: (context) => S.of(context).connection_sync,
74 image: 'assets/images/nodes_menu.png',
75 onTap: (BuildContext context) {
79 - Navigator.pop(context);
76 Navigator.of(context).pushNamed(Routes.connectionSync);
77 },
78 );
@@ -86,8 +82,10 @@ class SettingActions {
82 name: (context) => S.of(context).wallets,
83 image: 'assets/images/wallet_menu.png',
84 onTap: (BuildContext context) {
89 - Navigator.pop(context);
90 - Navigator.of(context).pushNamed(Routes.walletList);
85 + Navigator.of(context).pushNamed(Routes.walletList, arguments: (_) {
86 + Navigator.of(context).pop(); // pops wallet list
87 + Navigator.of(context).pop(); // pops drawer
88 + });
89 },
90 );
91
@@ -96,7 +94,6 @@ class SettingActions {
94 name: (context) => S.of(context).address_book_menu,
95 image: 'assets/images/open_book_menu.png',
96 onTap: (BuildContext context) {
99 - Navigator.pop(context);
97 Navigator.of(context).pushNamed(Routes.addressBook);
98 },
99 );
@@ -106,7 +103,6 @@ class SettingActions {
103 name: (context) => S.of(context).security_and_backup,
104 image: 'assets/images/key_menu.png',
105 onTap: (BuildContext context) {
109 - Navigator.pop(context);
106 Navigator.of(context).pushNamed(Routes.securityBackupPage);
107 },
108 );
@@ -116,7 +112,6 @@ class SettingActions {
112 name: (context) => S.of(context).privacy,
113 image: 'assets/images/privacy_menu.png',
114 onTap: (BuildContext context) {
119 - Navigator.pop(context);
115 Navigator.of(context).pushNamed(Routes.privacyPage);
116 },
117 );
@@ -126,7 +121,6 @@ class SettingActions {
121 name: (context) => S.of(context).display_settings,
122 image: 'assets/images/eye_menu.png',
123 onTap: (BuildContext context) {
129 - Navigator.pop(context);
124 Navigator.of(context).pushNamed(Routes.displaySettingsPage);
125 },
126 );
@@ -136,7 +130,6 @@ class SettingActions {
130 name: (context) => S.of(context).other_settings,
131 image: 'assets/images/settings_menu.png',
132 onTap: (BuildContext context) {
139 - Navigator.pop(context);
133 Navigator.of(context).pushNamed(Routes.otherSettingsPage);
134 },
135 );
@@ -146,7 +139,6 @@ class SettingActions {
139 name: (context) => S.of(context).settings_support,
140 image: 'assets/images/question_mark.png',
141 onTap: (BuildContext context) {
149 - Navigator.pop(context);
142 Navigator.of(context).pushNamed(Routes.support);
143 },
144 );