11import 'package:bb_mobile/core/themes/app_theme.dart' ;
22import 'package:bb_mobile/core/utils/build_context_x.dart' ;
3- import 'package:bb_mobile/core/widgets/buttons/button.dart' ;
43import 'package:bb_mobile/core/widgets/navbar/top_bar.dart' ;
4+ import 'package:bb_mobile/core/widgets/settings_entry_item.dart' ;
55import 'package:bb_mobile/features/backup_settings/presentation/cubit/backup_settings_cubit.dart' ;
66import 'package:bb_mobile/features/backup_settings/ui/backup_settings_router.dart' ;
77import '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