Redesign onboarding#465
Conversation
- remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color
- Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color
- Rename button component to quantus button - Update button styling - Add success variant
- Updated styling for tx item - Update color text
It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader
…into beast/redesign-home-screen
…us-Network/quantus-apps into beast/redesign-receive-screen
…us-Network/quantus-apps into beast/redesign-receive-screen
- remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation
…us-Network/quantus-apps into beast/improve-scaffold-base
…tus-Network/quantus-apps into beast/redesign-account-management
…m/Quantus-Network/quantus-apps into beast/settings-screen
…twork/quantus-apps into beast/redesign-home-screen-again
…/Quantus-Network/quantus-apps into beast/redesign-onboarding
n13
left a comment
There was a problem hiding this comment.
Code Review: Redesign Onboarding
Nice wrap-up to the series. The new OnboardingLoadingScreenV2 with animated fade-in, the redesigned welcome screen with OnboardingBackground, and the consolidated SettingsCautionScaffoldData factory constructors all tie the design system together cleanly.
DRY Concerns
-
Bottom bar duplication between
RecoveryPhraseScreenandNewWalletRecoveryPhraseScreen— Both screens build a nearly identical bottom bar with the same layout: a row with two buttons (copy mnemonic + primary action), wrapped inScaffoldBaseBottomContent. The copy logic (clipboard write, timer-based "Copied!" state, icon swap) is duplicated verbatim. Extract aRecoveryPhraseBottomBarwidget (or at least the copy button) that both screens can share. -
SettingsCautionScaffoldData.recoveryPhrase()and.walletReset()factory constructors — Excellent DRY improvement. The hardcoded strings that were duplicated inRecoveryPhraseConfirmationScreenandResetConfirmationScreenare now centralized. Well done.
Architectural Notes
-
OnboardingLoadingScreenV2has a fixed 4-second timer —Future.delayed(Duration(seconds: 4))then navigates forward. If wallet initialization is faster than 4 seconds, the user waits unnecessarily. If it's slower, the user hits the next screen before the wallet is ready. Consider tying the navigation to an actual readiness signal (e.g.await walletInitFuture) with a minimum display time, rather than a pure fixed delay. -
Wallet creation business logic in
NewWalletRecoveryPhraseScreen._continue— This method does mnemonic generation, HD wallet creation, account derivation, settings persistence, notification registration, and navigation. That's a lot of business logic in a widget. Consider extracting this into a service method (e.g.WalletCreationService.createNewWallet(name)) that returns the created account, keeping the screen focused on UI concerns only. This would also make the logic testable. -
AccountReadyOverviewOriginenum expansion — RenamingcreationtonewAccountInWalletandimporttonewWalletFromImport, and addingnewWalletFromCreate, makes the intent much clearer. Good naming. -
OnboardingBackgroundas a shared widget — Clean extraction. Both the welcome screen and loading screen can use the same background without duplicating the image + gradient stack.
Overall this is a solid series of PRs. The main recurring theme across all six: extract shared UI patterns more aggressively (recipient display in send flow, bottom-bar copy logic in recovery phrase screens, settings row content layout) and keep business logic out of widget _continue methods.
|
Looks very good! These 2 should be fixed, the rest up to you: (we do not want a fixed timer)
|
…apps into beast/redesign-onboarding
…roper image for receive qr
PR #465 Review — Redesign OnboardingOverall this is a polished UI redesign with a clean service extraction. Two real concerns, one nitpick, and one regression in Must Fix1.
|
|
Also the wallet service is quite strange, can we maybe do this instead: Use mock classes for services.. AI: Here's how import 'dart:async';
import 'package:quantus_sdk/quantus_sdk.dart';
import 'package:resonance_network_wallet/services/referral_service.dart';
class WalletCreationService {
WalletCreationService({
SettingsService? settingsService,
AccountsService? accountsService,
ReferralService? referralService,
}) : _settings = settingsService ?? SettingsService(),
_accounts = accountsService ?? AccountsService(),
_referral = referralService ?? ReferralService();
final SettingsService _settings;
final AccountsService _accounts;
final ReferralService _referral;
Future<Account> createNewWallet({
required String name,
required String mnemonic,
required int walletIndex,
required String accountId,
required List<Account> existingAccounts,
}) async {
await _settings.setMnemonic(mnemonic, walletIndex);
final existingRoot = existingAccounts
.where((a) => a.walletIndex == walletIndex && a.index == 0)
.firstOrNull;
if (existingRoot != null) return existingRoot;
final account = Account(walletIndex: walletIndex, index: 0, name: name, accountId: accountId);
await _accounts.addAccount(account);
unawaited(_referral.submitAddressToBackend().catchError((e, st) {
print('Referral submission failed for new wallet: $e\n$st');
}));
return account;
}
}Two wins in the same change:
The test then mocks the real services. Add to the test file's top: @GenerateNiceMocks([
MockSpec<SettingsService>(),
MockSpec<AccountsService>(),
MockSpec<ReferralService>(),
])
import 'wallet_creation_service_test.mocks.dart';…and run test('persists mnemonic, adds root account, and submits referral when no root exists', () async {
final settings = MockSettingsService();
final accounts = MockAccountsService();
final referral = MockReferralService();
when(referral.submitAddressToBackend()).thenAnswer((_) async {});
final service = WalletCreationService(
settingsService: settings,
accountsService: accounts,
referralService: referral,
);
await service.createNewWallet(
name: 'Account 1',
mnemonic: 'abandon abandon ...',
walletIndex: 0,
accountId: 'abc',
existingAccounts: const [],
);
verify(settings.setMnemonic('abandon abandon ...', 0)).called(1);
verify(accounts.addAccount(argThat(
isA<Account>().having((a) => a.accountId, 'accountId', 'abc'),
))).called(1);
verify(referral.submitAddressToBackend()).called(1);
});If you'd rather skip codegen, hand-rolled fakes work too — but in that case keep them as Bottom line for the PRAdd this to the must-fix list: collapse |
PR #465 Re-Review — Redesign OnboardingTwo new commits since last round ( Previously-Flagged Issues — StatusMust-Fix #1 —
|
n13
left a comment
There was a problem hiding this comment.
I think GTG, AI nits up to you
* Redesign home screen (#447) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: add myr to fiat currency * Redesign activity screen and tx detail sheet (#453) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: add myr to fiat currency * chore: formatting and extract magic number * feat: fix naming issues, add new tx to send filter also * Redesign send screen (#458) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: send confirm * Improve scaffold base (#460) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * fix: review issues * Beast/settings screen (#463) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * feat: finish updating button icon styling * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * wip: setting screens style update * feat: finish about screen * feat: finish help and support screen * feat: finish account type screen * feat: finish preference settings - fix pos button bug - finish currency picker * feat: finish wallet preference menu - Done all flow - Need to refactor DRY violation * feat: handle DRY violation * fix: fixing review issues * fix: review issues * fix: review issues * fix: review issues * fix: review issues * Beast/redesign account management (#461) * wormhole: bring over miner UI from #407 (no SDK/rust) Ports all miner-app changes from PR #407 (illuzen/wormhole) onto a fresh branch off main, including the wormhole rewards setup flow, balance card, withdrawal screen, new wallet/state/transfer-tracking services, macOS icons/entitlements, and pubspec updates. Deliberately excludes every quantus_sdk change (Dart + Rust + cargokit), the CI workflow carve-outs for cargokit, and the unrelated mobile-app/pubspec.lock bump. The SDK will be rebuilt from scratch to support a new UX for entering the wormhole inner hash, so miner-app will not compile on this branch until that work lands. * AI cleanup * Fix migration bug (#459) * fix migration bug add migration debug code * lint * remove migration test button * update comment * remove stats polling - no longer used * format * melos format again * feat: finish updating button icon styling * Build 100, Version 1.3.5 - Podfile fix for firebase, setting iOS version to 15 - upload file fix - force apple version of rsync * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * ndk upgrade as per gradle * change gitignore to track android required resources * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * Miner release (#462) * clean up code, remove features we don't need yet * remove unused code * info popup on mining * UX fixes * format * N13/pos v2 check pending (#420) * added pos mode v1 * add pos service * format * fix yellow underline * Payment mode says 'Pay' * format * add watch * add changes back in * new charge fix, printouts, wait button added * copy button for debug * update rust crates to new chain version (planck) * minor fix for dev accounts * check pending first version * format * fix linter errors * removing duplicate code add pending transaction polling service, using it in transaction submission and also on pos screen * format * clear mining rewards on logout rename mining rewards testnet rewards * search for pending by extrinsic hash * xcode stuff * xcode stuff * fix miner build * miner app 0.4.0 * fix miner MacOS build workflow * explicit team id so CI can build app * Update Release.entitlements * use defaults for flutter secure storage * format * restore entitlements - fix miner CI build * Redesign send screen (#458) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: send confirm * Improve scaffold base (#460) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * fix: review issues * fix: DRY violation --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com> * fix: DRY violation, wrong border color --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com> * Beast/redesign home screen again (#464) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * feat: finish updating button icon styling * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * wip: setting screens style update * feat: finish about screen * feat: finish help and support screen * feat: finish account type screen * feat: finish preference settings - fix pos button bug - finish currency picker * feat: finish wallet preference menu - Done all flow - Need to refactor DRY violation * feat: handle DRY violation * fix: fixing review issues * fix: review issues * fix: review issues * fix: review issues * feat: finish updating homepage balance view * feat: finish activity tx item update * fix: review issues * Redesign onboarding (#465) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * feat: finish updating button icon styling * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * wip: setting screens style update * feat: finish about screen * feat: finish help and support screen * feat: finish account type screen * feat: finish preference settings - fix pos button bug - finish currency picker * feat: finish wallet preference menu - Done all flow - Need to refactor DRY violation * feat: handle DRY violation * fix: fixing review issues * fix: review issues * fix: review issues * fix: review issues * feat: finish updating homepage balance view * feat: finish activity tx item update * feat: update splash * feat: update onboarding welcome * feat: finish oboarding redesign * fix: review issues * fix: build * fix: not passing colors * feat: remove fixed timer loading, refactor create wallet logic, add proper image for receive qr * feat: make reusable component for recovery phrase * fix: PR review issues * Improve currency implementation (#470) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * feat: finish updating button icon styling * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * wip: setting screens style update * feat: finish about screen * feat: finish help and support screen * feat: finish account type screen * feat: finish preference settings - fix pos button bug - finish currency picker * feat: finish wallet preference menu - Done all flow - Need to refactor DRY violation * feat: handle DRY violation * fix: fixing review issues * fix: review issues * fix: review issues * fix: review issues * feat: finish updating homepage balance view * feat: finish activity tx item update * feat: update splash * feat: update onboarding welcome * feat: finish oboarding redesign * fix: review issues * fix: build * fix: not passing colors * feat: remove fixed timer loading, refactor create wallet logic, add proper image for receive qr * feat: adding currency conversion in send flow * feat: implement real currency conversion * chore: formatting * fix: formatting amount * feat: make reusable component for recovery phrase * fix: PR review issues * fix: PR review issues - App will hard‑error on first launch when there's no cached rates yet - data.cast<String, double>() will TypeError when the API returns a whole number - Silent catch (_) swallows parse failures (violates the project "fail early" rule) - getRate throws but the docstring promises a fallback - _setMax() non‑flipped path is asymmetric with the flipped path - Hidden balance + flipped mode appends QUAN to the masked text - Other small fixes * feat: properly handle localization of number decimal * chore: formatting * fix: exchange rates consumption and cache handling, also fixed chain history service merge conflict * feat: properly throw on broken convert fiat to quan * fix round 4 issues * more cases --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com> * fix: PR review issues * chore: formatting * fix: remove silent fallback in _toggleFlip QUAN->Fiat round-trip The catch (_) silently swallowed parse failures, violating the project's "fail early / no fallback code" rule. Round-trip is now stable after the exchange-rate fiat rounding fix, so any genuine failure should surface. * fix: failing tests * chore: formatting --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com>
Summary
Updated onboarding screens to follow figma design. This screen reuse the recovery phrase screens also before we show the account ready screen.
Screenshots