feat: redesign the pre-seed and seed verification screens

This commit is contained in:
Blazebrain
2026-08-28 23:07:43 +01:00
parent e95d9d143e
commit 837c4d7d22
26 changed files with 795 additions and 56 deletions
@@ -79,7 +79,7 @@ class WalletGroupExistingSeedDescriptionPage extends BasePage {
key: ValueKey(
'wallet_group_existing_seed_description_page_verify_seed_button_key'),
onPressed: () => Navigator.pushNamed(context, Routes.preSeedPage),
text: S.current.verify_seed,
text: S.current.verify_phrase,
color: Theme.of(context).colorScheme.surfaceContainer,
textColor: Theme.of(context).colorScheme.onSecondaryContainer,
),
-31
View File
@@ -1,31 +0,0 @@
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/Info_page.dart';
import 'package:flutter/cupertino.dart';
class PreSeedPage extends InfoPage {
PreSeedPage()
: super(
imageLightPath: 'assets/images/seed_warning_light.svg',
imageDarkPath: 'assets/images/seed_warning_dark.svg',
);
@override
bool get onWillPop => false;
@override
String get pageTitle => S.current.pre_seed_title;
@override
String get pageDescription => S.current.pre_seed_description;
@override
String get buttonText => S.current.pre_seed_button_text;
@override
Key? get buttonKey => ValueKey('pre_seed_page_button_key');
@override
void Function(BuildContext) get onPressed =>
(BuildContext context) => Navigator.of(context).pushNamed(Routes.seed, arguments: true);
}
@@ -9,8 +9,9 @@ import 'package:flutter_mobx/flutter_mobx.dart';
class SeedVerificationPage extends BasePage {
final WalletSeedViewModel walletSeedViewModel;
final bool isNewWalletCreated;
SeedVerificationPage(this.walletSeedViewModel);
SeedVerificationPage(this.walletSeedViewModel, {required this.isNewWalletCreated});
@override
bool get gradientBackground => true;
@@ -32,7 +33,8 @@ class SeedVerificationPage extends BasePage {
walletSeedViewModel.verificationIndices.isEmpty
? SeedVerificationSuccessView(
key: ValueKey('seed_verification_success_view_page'),
walletType: walletSeedViewModel.walletType,
walletSeedViewModel: walletSeedViewModel,
isNewWalletCreated: isNewWalletCreated,
currentTheme: currentTheme,
)
: SeedVerificationStepView(
@@ -1,17 +1,23 @@
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/new-ui/pages/seed/open_wallet_after_seed_flow.dart';
import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/themes/core/material_base_theme.dart';
import 'package:cake_wallet/view_model/wallet_seed_view_model.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:flutter/material.dart';
class SeedVerificationSuccessView extends StatelessWidget {
const SeedVerificationSuccessView(
{required this.currentTheme, super.key, required this.walletType});
const SeedVerificationSuccessView({
required this.walletSeedViewModel,
required this.isNewWalletCreated,
required this.currentTheme,
super.key,
});
final WalletSeedViewModel walletSeedViewModel;
final bool isNewWalletCreated;
final MaterialThemeBase currentTheme;
final WalletType walletType;
@override
Widget build(BuildContext context) {
@@ -65,14 +71,20 @@ class SeedVerificationSuccessView extends StatelessWidget {
Spacer(),
PrimaryButton(
key: ValueKey('wallet_seed_page_open_wallet_button_key'),
onPressed: () {
if (walletType == WalletType.bitcoin) {
Navigator.of(context).pushNamed(Routes.lightningUsernamePage, arguments: true);
onPressed: () async {
await walletSeedViewModel.markSeedVerified();
if (!context.mounted) {
return;
}
if (isNewWalletCreated) {
openWalletAfterSeedFlow(context, walletSeedViewModel.walletType);
} else {
Navigator.of(context).popUntil((route) => route.isFirst);
}
},
text: (walletType == WalletType.bitcoin)
text: isNewWalletCreated && walletSeedViewModel.walletType == WalletType.bitcoin
? S.current.continue_text
: S.current.open_wallet,
color: Theme.of(context).colorScheme.primary,
+6 -3
View File
@@ -124,9 +124,12 @@ class WalletSeedPage extends BasePage {
padding: EdgeInsets.only(left: 8.0, top: 8.0),
child: PrimaryButton(
key: ValueKey('wallet_seed_page_verify_seed_button_key'),
onPressed: () =>
Navigator.pushNamed(context, Routes.walletSeedVerificationPage),
text: S.current.verify_seed,
onPressed: () => Navigator.pushNamed(
context,
Routes.walletSeedVerificationPage,
arguments: isNewWalletCreated,
),
text: S.current.verify_phrase,
color: Theme.of(context).colorScheme.primary,
textColor: Theme.of(context).colorScheme.onPrimary,
),