diff --git a/catalyst_voices/lib/common/ext/ext.dart b/catalyst_voices/lib/common/ext/ext.dart index 0f1f0756527..c02a9339d66 100644 --- a/catalyst_voices/lib/common/ext/ext.dart +++ b/catalyst_voices/lib/common/ext/ext.dart @@ -1,2 +1,3 @@ export 'brand_ext.dart'; export 'space_ext.dart'; +export 'string_ext.dart'; diff --git a/catalyst_voices/lib/common/ext/string_ext.dart b/catalyst_voices/lib/common/ext/string_ext.dart new file mode 100644 index 00000000000..18bd350b97f --- /dev/null +++ b/catalyst_voices/lib/common/ext/string_ext.dart @@ -0,0 +1,9 @@ +extension StringExt on String { + String capitalize() { + if (isNotEmpty) { + return '${this[0].toUpperCase()}${substring(1).toLowerCase()}'; + } else { + return ''; + } + } +} diff --git a/catalyst_voices/lib/pages/registration/account_completed/account_completed_panel.dart b/catalyst_voices/lib/pages/registration/account_completed/account_completed_panel.dart new file mode 100644 index 00000000000..1adb82fcdca --- /dev/null +++ b/catalyst_voices/lib/pages/registration/account_completed/account_completed_panel.dart @@ -0,0 +1,275 @@ +import 'package:catalyst_voices/common/ext/account_role_ext.dart'; +import 'package:catalyst_voices/common/ext/ext.dart'; +import 'package:catalyst_voices/pages/registration/widgets/next_step.dart'; +import 'package:catalyst_voices/routes/routing/account_route.dart'; +import 'package:catalyst_voices/routes/routing/spaces_route.dart'; +import 'package:catalyst_voices/widgets/widgets.dart'; +import 'package:catalyst_voices_assets/catalyst_voices_assets.dart'; +import 'package:catalyst_voices_blocs/catalyst_voices_blocs.dart'; +import 'package:catalyst_voices_brands/catalyst_voices_brands.dart'; +import 'package:catalyst_voices_localization/catalyst_voices_localization.dart'; +import 'package:catalyst_voices_models/catalyst_voices_models.dart'; +import 'package:catalyst_voices_shared/catalyst_voices_shared.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +class AccountCompletedPanel extends StatelessWidget { + const AccountCompletedPanel({super.key}); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Expanded( + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const _TitleText(), + const SizedBox(height: 10), + Column( + children: [ + _SummaryItem( + image: VoicesAssets.images.registrationSummaryKeychain, + title: context.l10n.registrationCompletedKeychainTitle, + info: context.l10n.registrationCompletedKeychainInfo, + ), + BlocSelector( + selector: (state) => + state.walletLinkStateData.selectedWallet?.wallet.name + .capitalize() ?? + '', + builder: (context, walletName) { + return _SummaryItem( + image: VoicesAssets.images.registrationSummaryWallet, + title: context.l10n + .registrationCompletedWalletTitle(walletName), + info: context.l10n + .registrationCompletedWalletInfo(walletName), + ); + }, + ), + BlocSelector>( + selector: (state) => + state.walletLinkStateData.selectedRoles?.toList() ?? + state.walletLinkStateData.defaultRoles.toList(), + builder: (context, roles) { + return _SummaryItem( + image: VoicesAssets.images.registrationSummaryRoles, + title: context.l10n.registrationCompletedRolesTitle, + info: context.l10n.registrationCompletedRolesInfo, + footer: _RolesFooter(roles), + ); + }, + ), + ].separatedBy(const SizedBox(height: 10)).toList(), + ), + ], + ), + ), + ), + const _NextStep(), + const SizedBox(height: 10), + _OpenDiscoveryButton( + onTap: () { + Navigator.pop(context); + const DiscoveryRoute().go(context); + }, + ), + const SizedBox(height: 10), + _ReviewMyAccountButton( + onTap: () { + Navigator.pop(context); + const AccountRoute().go(context); + }, + ), + ], + ); + } +} + +class _RolesFooter extends StatelessWidget { + final List roles; + + const _RolesFooter(this.roles); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ...roles.map( + (role) => Row( + children: [ + Text( + '1x', + style: Theme.of(context).textTheme.bodySmall, + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 4), + child: VoicesChip( + padding: const EdgeInsets.symmetric( + vertical: 1, + horizontal: 6, + ), + content: Text( + role.getName(context), + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: Theme.of(context).colors.successContainer, + fontWeight: FontWeight.bold, + ), + ), + borderRadius: const BorderRadius.all( + Radius.circular(6), + ), + backgroundColor: Theme.of(context).colors.success, + ), + ), + Text( + context.l10n.registrationCompletedRoleRegistration, + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ), + ] + .separatedBy( + const SizedBox(height: 6), + ) + .toList(), + ); + } +} + +class _SummaryItem extends StatelessWidget { + final AssetGenImage image; + final String title; + final String info; + final Widget? footer; + + const _SummaryItem({ + required this.image, + required this.title, + required this.info, + this.footer, + }); + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: Theme.of(context).colors.elevationsOnSurfaceNeutralLv1Grey, + borderRadius: BorderRadius.circular(20), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + CatalystImage.asset( + image.path, + width: 52, + height: 52, + ), + const SizedBox(width: 10), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: Theme.of(context).textTheme.titleSmall, + ), + Text( + info, + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ), + VoicesAvatar( + icon: VoicesAssets.icons.check.buildIcon(), + radius: 14, + padding: EdgeInsets.zero, + foregroundColor: Theme.of(context).colors.iconsPrimary, + backgroundColor: + Theme.of(context).colors.elevationsOnSurfaceNeutralLv1White, + ), + ], + ), + if (footer != null) ...[ + const VoicesDivider( + indent: 70, + endIndent: 0, + ), + Padding( + padding: const EdgeInsets.only(left: 70), + child: footer, + ), + ], + ], + ), + ); + } +} + +class _TitleText extends StatelessWidget { + const _TitleText(); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final color = theme.colors.textOnPrimaryLevel1; + + return Text( + context.l10n.registrationCompletedSummaryHeader, + style: theme.textTheme.titleMedium?.copyWith(color: color), + ); + } +} + +class _NextStep extends StatelessWidget { + const _NextStep(); + + @override + Widget build(BuildContext context) { + return const NextStep(null); + } +} + +class _OpenDiscoveryButton extends StatelessWidget { + final VoidCallback onTap; + + const _OpenDiscoveryButton({ + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return VoicesFilledButton( + onTap: onTap, + child: Text(context.l10n.registrationCompletedDiscoveryButton), + ); + } +} + +class _ReviewMyAccountButton extends StatelessWidget { + final VoidCallback onTap; + + const _ReviewMyAccountButton({ + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return VoicesTextButton( + onTap: onTap, + child: Text(context.l10n.registrationCompletedAccountButton), + ); + } +} diff --git a/catalyst_voices/lib/pages/registration/pictures/account_completed_picture.dart b/catalyst_voices/lib/pages/registration/pictures/account_completed_picture.dart new file mode 100644 index 00000000000..314703db450 --- /dev/null +++ b/catalyst_voices/lib/pages/registration/pictures/account_completed_picture.dart @@ -0,0 +1,15 @@ +import 'package:catalyst_voices_assets/catalyst_voices_assets.dart'; +import 'package:flutter/material.dart'; + +class AccountCompletedPicture extends StatelessWidget { + const AccountCompletedPicture({ + super.key, + }); + + @override + Widget build(BuildContext context) { + return CatalystImage.asset( + VoicesAssets.images.welcomeIllustration.path, + ); + } +} diff --git a/catalyst_voices/lib/pages/registration/registration_details_panel.dart b/catalyst_voices/lib/pages/registration/registration_details_panel.dart index 33b9304f079..6fe0c6023bf 100644 --- a/catalyst_voices/lib/pages/registration/registration_details_panel.dart +++ b/catalyst_voices/lib/pages/registration/registration_details_panel.dart @@ -1,3 +1,4 @@ +import 'package:catalyst_voices/pages/registration/account_completed/account_completed_panel.dart'; import 'package:catalyst_voices/pages/registration/create_keychain/create_keychain_panel.dart'; import 'package:catalyst_voices/pages/registration/finish_account/finish_account_creation_panel.dart'; import 'package:catalyst_voices/pages/registration/get_started/get_started_panel.dart'; @@ -26,7 +27,7 @@ class RegistrationDetailsPanel extends StatelessWidget { CreateKeychainStep(:final stage) => CreateKeychainPanel(stage: stage), FinishAccountCreationStep() => const FinishAccountCreationPanel(), WalletLinkStep(:final stage) => WalletLinkPanel(stage: stage), - AccountCompletedStep() => const Placeholder(), + AccountCompletedStep() => const AccountCompletedPanel(), }; }, ); diff --git a/catalyst_voices/lib/pages/registration/registration_dialog.dart b/catalyst_voices/lib/pages/registration/registration_dialog.dart index c9449974ec9..4fe7c02d9fc 100644 --- a/catalyst_voices/lib/pages/registration/registration_dialog.dart +++ b/catalyst_voices/lib/pages/registration/registration_dialog.dart @@ -7,6 +7,7 @@ import 'package:catalyst_voices/pages/registration/registration_exit_confirm_dia import 'package:catalyst_voices/pages/registration/registration_info_panel.dart'; import 'package:catalyst_voices/widgets/widgets.dart'; import 'package:catalyst_voices_blocs/catalyst_voices_blocs.dart'; +import 'package:catalyst_voices_models/catalyst_voices_models.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -56,9 +57,15 @@ class _RegistrationDialogState extends State onPopInvokedWithResult: (didPop, result) { unawaited(_confirmedExit(context, didPop: didPop)); }, - child: const VoicesTwoPaneDialog( - left: RegistrationInfoPanel(), - right: RegistrationDetailsPanel(), + child: BlocSelector( + selector: (state) => state.step is! AccountCompletedStep, + builder: (context, showCloseButton) { + return VoicesTwoPaneDialog( + left: const RegistrationInfoPanel(), + right: const RegistrationDetailsPanel(), + showCloseButton: showCloseButton, + ); + }, ), ), ); diff --git a/catalyst_voices/lib/pages/registration/registration_info_panel.dart b/catalyst_voices/lib/pages/registration/registration_info_panel.dart index a0fe5bf14c1..5d320a93ef9 100644 --- a/catalyst_voices/lib/pages/registration/registration_info_panel.dart +++ b/catalyst_voices/lib/pages/registration/registration_info_panel.dart @@ -1,5 +1,6 @@ import 'package:catalyst_voices/pages/registration/bloc_unlock_password_builder.dart'; import 'package:catalyst_voices/pages/registration/create_keychain/bloc_seed_phrase_builder.dart'; +import 'package:catalyst_voices/pages/registration/pictures/account_completed_picture.dart'; import 'package:catalyst_voices/pages/registration/pictures/keychain_picture.dart'; import 'package:catalyst_voices/pages/registration/pictures/keychain_with_password_picture.dart'; import 'package:catalyst_voices/pages/registration/pictures/password_picture.dart'; @@ -131,7 +132,10 @@ class RegistrationInfoPanel extends StatelessWidget { ), CreateKeychainStep(:final stage) => buildKeychainStageHeader(stage), WalletLinkStep(:final stage) => buildWalletLinkStageHeader(stage), - AccountCompletedStep() => _HeaderStrings(title: 'TODO'), + AccountCompletedStep() => _HeaderStrings( + title: context.l10n.registrationCompletedTitle, + subtitle: context.l10n.registrationCompletedSubtitle, + ), }; } } @@ -194,7 +198,7 @@ class _RegistrationPicture extends StatelessWidget { CreateKeychainStep(:final stage) => buildKeychainStagePicture(stage), FinishAccountCreationStep() => const KeychainWithPasswordPicture(), WalletLinkStep(:final stage) => buildWalletLinkStagePicture(stage), - AccountCompletedStep() => const KeychainPicture(), + AccountCompletedStep() => const AccountCompletedPicture(), }; } } diff --git a/catalyst_voices/lib/pages/registration/widgets/next_step.dart b/catalyst_voices/lib/pages/registration/widgets/next_step.dart index aec6fb46286..ce7bec1065c 100644 --- a/catalyst_voices/lib/pages/registration/widgets/next_step.dart +++ b/catalyst_voices/lib/pages/registration/widgets/next_step.dart @@ -4,7 +4,7 @@ import 'package:catalyst_voices_localization/catalyst_voices_localization.dart'; import 'package:flutter/material.dart'; class NextStep extends StatelessWidget { - final String data; + final String? data; const NextStep( this.data, { @@ -15,6 +15,7 @@ class NextStep extends StatelessWidget { Widget build(BuildContext context) { final theme = Theme.of(context); final textColor = theme.colors.textOnPrimaryLevel0; + final data = this.data; return Column( mainAxisSize: MainAxisSize.min, @@ -22,12 +23,14 @@ class NextStep extends StatelessWidget { const SizedBox(height: 8), VoicesTextDivider(child: Text(context.l10n.yourNextStep)), const SizedBox(height: 12), - Text( - data, - style: theme.textTheme.bodySmall?.copyWith(color: textColor), - textAlign: TextAlign.center, - ), - const SizedBox(height: 12), + if (data != null) ...[ + Text( + data, + style: theme.textTheme.bodySmall?.copyWith(color: textColor), + textAlign: TextAlign.center, + ), + const SizedBox(height: 12), + ], ], ); } diff --git a/catalyst_voices/lib/widgets/modals/voices_desktop_dialog.dart b/catalyst_voices/lib/widgets/modals/voices_desktop_dialog.dart index 45a2c1ab7f8..c3677d45f03 100644 --- a/catalyst_voices/lib/widgets/modals/voices_desktop_dialog.dart +++ b/catalyst_voices/lib/widgets/modals/voices_desktop_dialog.dart @@ -49,11 +49,13 @@ class VoicesSinglePaneDialog extends StatelessWidget { class VoicesTwoPaneDialog extends StatelessWidget { final Widget left; final Widget right; + final bool showCloseButton; const VoicesTwoPaneDialog({ super.key, required this.left, required this.right, + this.showCloseButton = true, }); @override @@ -84,7 +86,7 @@ class VoicesTwoPaneDialog extends StatelessWidget { ), ], ), - const _DialogCloseButton(), + if (showCloseButton) const _DialogCloseButton(), ], ), ); diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/2.0x/welcome_illustration.webp b/catalyst_voices/packages/catalyst_voices_assets/assets/images/2.0x/welcome_illustration.webp new file mode 100644 index 00000000000..6a77b37df42 Binary files /dev/null and b/catalyst_voices/packages/catalyst_voices_assets/assets/images/2.0x/welcome_illustration.webp differ diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/3.0x/welcome_illustration.webp b/catalyst_voices/packages/catalyst_voices_assets/assets/images/3.0x/welcome_illustration.webp new file mode 100644 index 00000000000..df106312d3d Binary files /dev/null and b/catalyst_voices/packages/catalyst_voices_assets/assets/images/3.0x/welcome_illustration.webp differ diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/registration_summary_keychain.png b/catalyst_voices/packages/catalyst_voices_assets/assets/images/registration_summary_keychain.png new file mode 100644 index 00000000000..ea84b5e0b81 Binary files /dev/null and b/catalyst_voices/packages/catalyst_voices_assets/assets/images/registration_summary_keychain.png differ diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/registration_summary_roles.png b/catalyst_voices/packages/catalyst_voices_assets/assets/images/registration_summary_roles.png new file mode 100644 index 00000000000..99d7058f8ae Binary files /dev/null and b/catalyst_voices/packages/catalyst_voices_assets/assets/images/registration_summary_roles.png differ diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/registration_summary_wallet.png b/catalyst_voices/packages/catalyst_voices_assets/assets/images/registration_summary_wallet.png new file mode 100644 index 00000000000..71930e817d5 Binary files /dev/null and b/catalyst_voices/packages/catalyst_voices_assets/assets/images/registration_summary_wallet.png differ diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/welcome_illustration.webp b/catalyst_voices/packages/catalyst_voices_assets/assets/images/welcome_illustration.webp new file mode 100644 index 00000000000..bdf8b391ebf Binary files /dev/null and b/catalyst_voices/packages/catalyst_voices_assets/assets/images/welcome_illustration.webp differ diff --git a/catalyst_voices/packages/catalyst_voices_assets/lib/generated/assets.gen.dart b/catalyst_voices/packages/catalyst_voices_assets/lib/generated/assets.gen.dart index 01b06ab9df3..764fa237035 100644 --- a/catalyst_voices/packages/catalyst_voices_assets/lib/generated/assets.gen.dart +++ b/catalyst_voices/packages/catalyst_voices_assets/lib/generated/assets.gen.dart @@ -1221,6 +1221,18 @@ class $AssetsImagesGen { AssetGenImage get proposalBackground2 => const AssetGenImage('assets/images/proposal_background_2.webp'); + /// File path: assets/images/registration_summary_keychain.png + AssetGenImage get registrationSummaryKeychain => + const AssetGenImage('assets/images/registration_summary_keychain.png'); + + /// File path: assets/images/registration_summary_roles.png + AssetGenImage get registrationSummaryRoles => + const AssetGenImage('assets/images/registration_summary_roles.png'); + + /// File path: assets/images/registration_summary_wallet.png + AssetGenImage get registrationSummaryWallet => + const AssetGenImage('assets/images/registration_summary_wallet.png'); + /// File path: assets/images/role_drep.webp AssetGenImage get roleDrep => const AssetGenImage('assets/images/role_drep.webp'); @@ -1249,6 +1261,10 @@ class $AssetsImagesGen { AssetGenImage get taskIllustration => const AssetGenImage('assets/images/task_illustration.webp'); + /// File path: assets/images/welcome_illustration.webp + AssetGenImage get welcomeIllustration => + const AssetGenImage('assets/images/welcome_illustration.webp'); + /// File path: assets/images/x.svg SvgGenImage get x => const SvgGenImage('assets/images/x.svg'); @@ -1274,6 +1290,9 @@ class $AssetsImagesGen { linkedinMono, proposalBackground1, proposalBackground2, + registrationSummaryKeychain, + registrationSummaryRoles, + registrationSummaryWallet, roleDrep, roleInfoDrep, roleInfoProposer, @@ -1281,6 +1300,7 @@ class $AssetsImagesGen { roleProposer, roleVoter, taskIllustration, + welcomeIllustration, x, xMono ]; diff --git a/catalyst_voices/packages/catalyst_voices_blocs/lib/src/registration/registration_state.dart b/catalyst_voices/packages/catalyst_voices_blocs/lib/src/registration/registration_state.dart index eac2bd99e50..7f3ec4ce46c 100644 --- a/catalyst_voices/packages/catalyst_voices_blocs/lib/src/registration/registration_state.dart +++ b/catalyst_voices/packages/catalyst_voices_blocs/lib/src/registration/registration_state.dart @@ -44,7 +44,7 @@ final class RegistrationState extends Equatable { CreateKeychainStep(:final stage) => getCreateKeychainProgress(stage), FinishAccountCreationStep() => 1.0, WalletLinkStep(:final stage) => getWalletLinkProgress(stage), - AccountCompletedStep() => null, + AccountCompletedStep() => 1.0, }; } diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart index cf7738485b6..5fa4047215e 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart @@ -1111,7 +1111,7 @@ abstract class VoicesLocalizations { /// An error text on text field on delete keychain dialog /// /// In en, this message translates to: - /// **'Error. Please type \'Remove keychain\' to remove your account from this device.'** + /// **'Error. Please type \'Remove Keychain\' to remove your account from this device.'** String get deleteKeychainDialogErrorText; /// A removing phrase on delete keychain dialog @@ -1360,6 +1360,78 @@ abstract class VoicesLocalizations { /// **'Catalyst keychain removed'** String get keychainDeletedDialogInfo; + /// No description provided for @registrationCompletedTitle. + /// + /// In en, this message translates to: + /// **'Catalyst account setup'** + String get registrationCompletedTitle; + + /// No description provided for @registrationCompletedSubtitle. + /// + /// In en, this message translates to: + /// **'Completed!'** + String get registrationCompletedSubtitle; + + /// No description provided for @registrationCompletedSummaryHeader. + /// + /// In en, this message translates to: + /// **'Summary'** + String get registrationCompletedSummaryHeader; + + /// No description provided for @registrationCompletedKeychainTitle. + /// + /// In en, this message translates to: + /// **'Catalyst Keychain created'** + String get registrationCompletedKeychainTitle; + + /// No description provided for @registrationCompletedKeychainInfo. + /// + /// In en, this message translates to: + /// **'You created a Catalyst Keychain, backed up its seed phrase and set an unlock password.'** + String get registrationCompletedKeychainInfo; + + /// No description provided for @registrationCompletedWalletTitle. + /// + /// In en, this message translates to: + /// **'Cardano {walletName} wallet selected'** + String registrationCompletedWalletTitle(String walletName); + + /// No description provided for @registrationCompletedWalletInfo. + /// + /// In en, this message translates to: + /// **'You selected your {walletName} wallet as primary wallet for your voting power.'** + String registrationCompletedWalletInfo(String walletName); + + /// No description provided for @registrationCompletedRolesTitle. + /// + /// In en, this message translates to: + /// **'Catalyst roles selected'** + String get registrationCompletedRolesTitle; + + /// No description provided for @registrationCompletedRolesInfo. + /// + /// In en, this message translates to: + /// **'You linked your Cardano wallet and selected Catalyst roles via a signed transaction.'** + String get registrationCompletedRolesInfo; + + /// No description provided for @registrationCompletedRoleRegistration. + /// + /// In en, this message translates to: + /// **'role registration'** + String get registrationCompletedRoleRegistration; + + /// No description provided for @registrationCompletedDiscoveryButton. + /// + /// In en, this message translates to: + /// **'Open Discovery Dashboard'** + String get registrationCompletedDiscoveryButton; + + /// No description provided for @registrationCompletedAccountButton. + /// + /// In en, this message translates to: + /// **'Review my account'** + String get registrationCompletedAccountButton; + /// No description provided for @createKeychainSeedPhraseSubtitle. /// /// In en, this message translates to: diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart index f183349f047..0d92ba67fc0 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart @@ -590,7 +590,7 @@ class VoicesLocalizationsEn extends VoicesLocalizations { String get deleteKeychainDialogInputLabel => 'Confirm removal'; @override - String get deleteKeychainDialogErrorText => 'Error. Please type \'Remove keychain\' to remove your account from this device.'; + String get deleteKeychainDialogErrorText => 'Error. Please type \'Remove Keychain\' to remove your account from this device.'; @override String get deleteKeychainDialogRemovingPhrase => 'Remove Keychain'; @@ -719,6 +719,46 @@ class VoicesLocalizationsEn extends VoicesLocalizations { @override String get keychainDeletedDialogInfo => 'Catalyst keychain removed'; + @override + String get registrationCompletedTitle => 'Catalyst account setup'; + + @override + String get registrationCompletedSubtitle => 'Completed!'; + + @override + String get registrationCompletedSummaryHeader => 'Summary'; + + @override + String get registrationCompletedKeychainTitle => 'Catalyst Keychain created'; + + @override + String get registrationCompletedKeychainInfo => 'You created a Catalyst Keychain, backed up its seed phrase and set an unlock password.'; + + @override + String registrationCompletedWalletTitle(String walletName) { + return 'Cardano $walletName wallet selected'; + } + + @override + String registrationCompletedWalletInfo(String walletName) { + return 'You selected your $walletName wallet as primary wallet for your voting power.'; + } + + @override + String get registrationCompletedRolesTitle => 'Catalyst roles selected'; + + @override + String get registrationCompletedRolesInfo => 'You linked your Cardano wallet and selected Catalyst roles via a signed transaction.'; + + @override + String get registrationCompletedRoleRegistration => 'role registration'; + + @override + String get registrationCompletedDiscoveryButton => 'Open Discovery Dashboard'; + + @override + String get registrationCompletedAccountButton => 'Review my account'; + @override String get createKeychainSeedPhraseSubtitle => 'Write down your 12 Catalyst 
security words'; diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart index b60bb8d8449..fe098fea69a 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart @@ -590,7 +590,7 @@ class VoicesLocalizationsEs extends VoicesLocalizations { String get deleteKeychainDialogInputLabel => 'Confirm removal'; @override - String get deleteKeychainDialogErrorText => 'Error. Please type \'Remove keychain\' to remove your account from this device.'; + String get deleteKeychainDialogErrorText => 'Error. Please type \'Remove Keychain\' to remove your account from this device.'; @override String get deleteKeychainDialogRemovingPhrase => 'Remove Keychain'; @@ -719,6 +719,46 @@ class VoicesLocalizationsEs extends VoicesLocalizations { @override String get keychainDeletedDialogInfo => 'Catalyst keychain removed'; + @override + String get registrationCompletedTitle => 'Catalyst account setup'; + + @override + String get registrationCompletedSubtitle => 'Completed!'; + + @override + String get registrationCompletedSummaryHeader => 'Summary'; + + @override + String get registrationCompletedKeychainTitle => 'Catalyst Keychain created'; + + @override + String get registrationCompletedKeychainInfo => 'You created a Catalyst Keychain, backed up its seed phrase and set an unlock password.'; + + @override + String registrationCompletedWalletTitle(String walletName) { + return 'Cardano $walletName wallet selected'; + } + + @override + String registrationCompletedWalletInfo(String walletName) { + return 'You selected your $walletName wallet as primary wallet for your voting power.'; + } + + @override + String get registrationCompletedRolesTitle => 'Catalyst roles selected'; + + @override + String get registrationCompletedRolesInfo => 'You linked your Cardano wallet and selected Catalyst roles via a signed transaction.'; + + @override + String get registrationCompletedRoleRegistration => 'role registration'; + + @override + String get registrationCompletedDiscoveryButton => 'Open Discovery Dashboard'; + + @override + String get registrationCompletedAccountButton => 'Review my account'; + @override String get createKeychainSeedPhraseSubtitle => 'Write down your 12 Catalyst 
security words'; diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb b/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb index 9e75ac287b4..723ddae0cbd 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb @@ -710,7 +710,7 @@ "@deleteKeychainDialogInputLabel": { "description": "An input label on delete keychain dialog" }, - "deleteKeychainDialogErrorText": "Error. Please type 'Remove keychain' to remove your account from this device.", + "deleteKeychainDialogErrorText": "Error. Please type 'Remove Keychain' to remove your account from this device.", "@deleteKeychainDialogErrorText": { "description": "An error text on text field on delete keychain dialog" }, @@ -819,6 +819,32 @@ "@keychainDeletedDialogInfo": { "description": "An info on keychain deleted dialog" }, + "registrationCompletedTitle": "Catalyst account setup", + "registrationCompletedSubtitle": "Completed!", + "registrationCompletedSummaryHeader": "Summary", + "registrationCompletedKeychainTitle": "Catalyst Keychain created", + "registrationCompletedKeychainInfo": "You created a Catalyst Keychain, backed up its seed phrase and set an unlock password.", + "registrationCompletedWalletTitle": "Cardano {walletName} wallet selected", + "@registrationCompletedWalletTitle": { + "placeholders": { + "walletName": { + "type": "String" + } + } + }, + "registrationCompletedWalletInfo": "You selected your {walletName} wallet as primary wallet for your voting power.", + "@registrationCompletedWalletInfo": { + "placeholders": { + "walletName": { + "type": "String" + } + } + }, + "registrationCompletedRolesTitle": "Catalyst roles selected", + "registrationCompletedRolesInfo": "You linked your Cardano wallet and selected Catalyst roles via a signed transaction.", + "registrationCompletedRoleRegistration": "role registration", + "registrationCompletedDiscoveryButton": "Open Discovery Dashboard", + "registrationCompletedAccountButton": "Review my account", "createKeychainSeedPhraseSubtitle": "Write down your 12 Catalyst \u2028security words", "createKeychainSeedPhraseBody": "Make sure you create an offline backup of your recovery phrase as well.", "createKeychainSeedPhraseDownload": "Download Catalyst key",