Skip to content

Commit d0a6675

Browse files
authored
Merge pull request #1683 from SatoshiPortal/refactor-backup-settings-screen
refactor: settings buttons consistency
2 parents 5624a4e + cc6c72d commit d0a6675

1 file changed

Lines changed: 54 additions & 66 deletions

File tree

lib/features/backup_settings/ui/screens/backup_settings_screen.dart

Lines changed: 54 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:bb_mobile/core/themes/app_theme.dart';
22
import 'package:bb_mobile/core/utils/build_context_x.dart';
3-
import 'package:bb_mobile/core/widgets/buttons/button.dart';
43
import 'package:bb_mobile/core/widgets/navbar/top_bar.dart';
4+
import 'package:bb_mobile/core/widgets/settings_entry_item.dart';
55
import 'package:bb_mobile/features/backup_settings/presentation/cubit/backup_settings_cubit.dart';
66
import 'package:bb_mobile/features/backup_settings/ui/backup_settings_router.dart';
77
import 'package:bb_mobile/features/backup_settings/ui/widgets/view_vault_key_warning_bottom_sheet.dart';
@@ -48,31 +48,29 @@ class _Screen extends StatelessWidget {
4848
),
4949
),
5050
body: SafeArea(
51-
child: Padding(
52-
padding: const EdgeInsets.symmetric(horizontal: 32),
53-
child: Column(
54-
crossAxisAlignment: .start,
55-
children: [
56-
const Gap(20),
57-
const _BackupTestStatusWidget(),
58-
const Spacer(),
59-
if (state.lastEncryptedBackup != null) ...[
60-
const _ViewVaultKeyButton(),
61-
const Gap(12),
51+
child: SingleChildScrollView(
52+
child: Padding(
53+
padding: const EdgeInsets.symmetric(horizontal: 16),
54+
child: Column(
55+
crossAxisAlignment: .start,
56+
children: [
57+
const Padding(
58+
padding: EdgeInsets.symmetric(horizontal: 16),
59+
child: _BackupTestStatusWidget(),
60+
),
61+
const Gap(40),
62+
if (state.lastEncryptedBackup != null)
63+
const _ViewVaultKeyButton(),
64+
if (state.lastEncryptedBackup != null ||
65+
state.lastPhysicalBackup != null)
66+
const _TestBackupButton(),
67+
const _StartBackupButton(),
68+
const _Bip329LabelsButton(),
69+
const _RecoverBullSettingsButton(),
70+
const Gap(20),
71+
if (state.error != null) ErrorWidget(error: state.error!),
6272
],
63-
if (state.lastEncryptedBackup != null ||
64-
state.lastPhysicalBackup != null) ...[
65-
const _TestBackupButton(),
66-
const Gap(12),
67-
],
68-
const _StartBackupButton(),
69-
const Gap(12),
70-
const _Bip329LabelsButton(),
71-
const Gap(12),
72-
const _RecoverBullSettingsButton(),
73-
const Gap(20),
74-
if (state.error != null) ErrorWidget(error: state.error!),
75-
],
73+
),
7674
),
7775
),
7876
),
@@ -125,8 +123,9 @@ class _StatusRow extends StatelessWidget {
125123
? context.loc.backupSettingsTested
126124
: context.loc.backupSettingsNotTested,
127125
style: context.font.bodyMedium?.copyWith(
128-
color:
129-
isTested ? context.appColors.success : context.appColors.error,
126+
color: isTested
127+
? context.appColors.success
128+
: context.appColors.error,
130129
),
131130
),
132131
],
@@ -139,17 +138,13 @@ class _TestBackupButton extends StatelessWidget {
139138

140139
@override
141140
Widget build(BuildContext context) {
142-
return BBButton.big(
143-
label: context.loc.backupSettingsTestBackup,
144-
onPressed:
145-
() => context.pushNamed(
146-
BackupSettingsSubroute.backupOptions.name,
147-
extra: BackupSettingsFlow.test,
148-
),
149-
borderColor: context.appColors.onSurface,
150-
outlined: true,
151-
bgColor: context.appColors.transparent,
152-
textColor: context.appColors.onSurface,
141+
return SettingsEntryItem(
142+
icon: Icons.verified,
143+
title: context.loc.backupSettingsTestBackup,
144+
onTap: () => context.pushNamed(
145+
BackupSettingsSubroute.backupOptions.name,
146+
extra: BackupSettingsFlow.test,
147+
),
153148
);
154149
}
155150
}
@@ -159,15 +154,13 @@ class _StartBackupButton extends StatelessWidget {
159154

160155
@override
161156
Widget build(BuildContext context) {
162-
return BBButton.big(
163-
label: context.loc.backupSettingsStartBackup,
164-
onPressed:
165-
() => context.pushNamed(
166-
BackupSettingsSubroute.backupOptions.name,
167-
extra: BackupSettingsFlow.backup,
168-
),
169-
bgColor: context.appColors.onSurface,
170-
textColor: context.appColors.surface,
157+
return SettingsEntryItem(
158+
icon: Icons.backup,
159+
title: context.loc.backupSettingsStartBackup,
160+
onTap: () => context.pushNamed(
161+
BackupSettingsSubroute.backupOptions.name,
162+
extra: BackupSettingsFlow.backup,
163+
),
171164
);
172165
}
173166
}
@@ -177,9 +170,10 @@ class _ViewVaultKeyButton extends StatelessWidget {
177170

178171
@override
179172
Widget build(BuildContext context) {
180-
return BBButton.big(
181-
label: context.loc.backupSettingsViewVaultKey,
182-
onPressed: () async {
173+
return SettingsEntryItem(
174+
icon: Icons.vpn_key,
175+
title: context.loc.backupSettingsViewVaultKey,
176+
onTap: () async {
183177
final confirmed = await ViewVaultKeyWarningBottomSheet.show(context);
184178
if (confirmed == true) {
185179
if (!context.mounted) return;
@@ -192,10 +186,6 @@ class _ViewVaultKeyButton extends StatelessWidget {
192186
);
193187
}
194188
},
195-
borderColor: context.appColors.onSurface,
196-
outlined: true,
197-
bgColor: context.appColors.transparent,
198-
textColor: context.appColors.onSurface,
199189
);
200190
}
201191
}
@@ -252,11 +242,10 @@ class _Bip329LabelsButton extends StatelessWidget {
252242

253243
@override
254244
Widget build(BuildContext context) {
255-
return BBButton.big(
256-
label: context.loc.backupSettingsLabelsButton,
257-
onPressed: () => context.push(Bip329LabelsRouter.route.path),
258-
bgColor: context.appColors.onSurface,
259-
textColor: context.appColors.surface,
245+
return SettingsEntryItem(
246+
icon: Icons.label,
247+
title: context.loc.backupSettingsLabelsButton,
248+
onTap: () => context.push(Bip329LabelsRouter.route.path),
260249
);
261250
}
262251
}
@@ -266,9 +255,12 @@ class _RecoverBullSettingsButton extends StatelessWidget {
266255

267256
@override
268257
Widget build(BuildContext context) {
269-
return BBButton.big(
270-
label: context.loc.backupSettingsRecoverBullSettings,
271-
onPressed: () {
258+
return SettingsEntryItem(
259+
icon: Icons.settings,
260+
iconColor: context.appColors.secondary,
261+
textColor: context.appColors.secondary,
262+
title: context.loc.backupSettingsRecoverBullSettings,
263+
onTap: () {
272264
context.pushNamed(
273265
RecoverBullRoute.recoverbullFlows.name,
274266
extra: RecoverBullFlowsExtra(
@@ -277,10 +269,6 @@ class _RecoverBullSettingsButton extends StatelessWidget {
277269
),
278270
);
279271
},
280-
borderColor: context.appColors.secondary,
281-
outlined: true,
282-
bgColor: Colors.transparent,
283-
textColor: context.appColors.secondary,
284272
);
285273
}
286274
}

0 commit comments

Comments
 (0)