Skip to content

Redesign send screen#458

Merged
dewabisma merged 57 commits into
feat/v3from
beast/redesign-send-screen
Apr 28, 2026
Merged

Redesign send screen#458
dewabisma merged 57 commits into
feat/v3from
beast/redesign-send-screen

Conversation

@dewabisma

Copy link
Copy Markdown
Collaborator

Summary

  • Send screen now becomes multi screen process
  • Refactor repeating address checkphrase with avatar into reusable widget
  • Many more

Screenshots

  • Select recipient screen
Simulator Screenshot - iPhone 8 - 2026-04-22 at 22 30 31
  • Select recipient screen with selected
Simulator Screenshot - iPhone 8 - 2026-04-22 at 22 30 37
  • Input amount screen
Simulator Screenshot - iPhone 8 - 2026-04-22 at 22 30 44
  • Input amount screen with valid amount
Simulator Screenshot - iPhone 8 - 2026-04-22 at 22 30 47
  • Review send screen
Simulator Screenshot - iPhone 8 - 2026-04-22 at 22 30 50
  • Tx submitted screen
Simulator Screenshot - iPhone 8 - 2026-04-22 at 22 30 52

- 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
- remove fragile postFrame
- Add color tokens to theme
- remove duplicate map index implementation
@dewabisma dewabisma requested a review from n13 April 22, 2026 14:36
Comment thread mobile-app/lib/v2/components/address_checkphrase_with_initial.dart
Comment thread mobile-app/lib/v2/screens/send/send_screen_logic.dart
@n13

n13 commented Apr 23, 2026

Copy link
Copy Markdown
Collaborator

I've gone through the full diff carefully. Here's my review of PR #458 - Redesign send screen:


Overall

Great refactor! Breaking the monolithic SendSheet bottom sheet into a proper multi-screen flow (SelectRecipient -> InputAmount -> ReviewSend -> TxSubmitted) is a solid architecture improvement. The extraction of AddressCheckphraseWithInitial and AmountDisplayWithConversion into reusable widgets is aligned with DRY principles, and the exchange rate decimal fix (3,96 -> 3.96) squashes a real bug.


n13's Review Comment

The comment on line 12 of address_checkphrase_with_initial.dart -- "we have checksum initials?" -- is a valid question. The old AddressPickerSheet used AccountGradientImage (a unique gradient circle derived from the account ID) as the avatar. The new AddressCheckphraseWithInitial replaces that with text initials extracted from the checksum (e.g. "Rainbow-Sunset" -> "RS"). This loses visual uniqueness -- any two addresses whose checksum words start with the same letters will have identical avatars. The gradient approach was more robust for distinguishing addresses at a glance. Worth considering keeping AccountGradientImage here, or using it as a fallback background behind the initials.


Issues Found

1. Force-unwrap crash risk in _openReview()

In InputAmountScreen, _recipientChecksum! is force-unwrapped. The button is disabled when _recipientChecksum == null, but there's a potential race window between the async checksum lookup completing and the user tapping the button.

// input_amount_screen.dart, inside _openReview
recipientChecksum: _recipientChecksum!,

2. Global InputDecorationTheme change could break other screens

The app_theme.dart changes set fillColor: Colors.transparent, contentPadding: EdgeInsets.zero, and isDense: true globally. Any existing text fields in the app that relied on the previous defaults (filled surface color, default padding) will be affected.

3. AddressFormattingService.formatAddress default change is a breaking SDK change

The defaults changed from prefix: 5, postFix: 5 to prefix: 6, postFix: 6. This affects every call site using the defaults across the entire codebase, including the SDK consumers.

4. isSend changed from required to optional with default true

In txAmountDisplayProvider, isSend went from required bool to bool isSend = true. This silently changes behavior: any call site that previously omitted isSend would get a compile error, now it silently defaults to showing a "-" prefix. Verify all call sites are intentional.

5. sendSectionLabel iPad size not scaled

Both defaultTheme and iPad constructors define sendSectionLabel with fontSize: 20. Other styles like paragraph scale from 16 -> 20 for iPad. Looks like an oversight.

6. Network fee not shown on InputAmountScreen

The old SendSheet displayed the network fee on the form step. The new InputAmountScreen fetches the fee but only shows it on the ReviewSendScreen. Users can't see the fee before proceeding -- minor UX regression.

7. Raw TextStyle instead of theme in _recipientCard

The "SEND TO" label in InputAmountScreen._recipientCard() uses a raw TextStyle(...) instead of a theme text style. This is inconsistent with the rest of the codebase's theming pattern and won't scale with iPad sizing.


Minor Notes

  • The _amountController in SelectRecipientScreen is only set from QR scan but passed to InputAmountScreen as initialAmount -- naming is slightly misleading since it's not visible on the select screen itself.
  • The deep navigation stack (4 screens pushed) is cleaned up correctly via popUntil in TxSubmittedScreen -- nice.
  • The activityGroupLabel -> receiveLabel swap works because both had identical style definitions. Clean.

@n13 n13 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review added

@dewabisma

Copy link
Copy Markdown
Collaborator Author

No 2,3,4 is intentional.

1. Force-unwrap crash risk in _openReview()

I will handle this better, seems AI not happy with my stingy approach.

5. sendSectionLabel iPad size not scaled

Whoopsss missed it.

6. Network fee not shown on InputAmountScreen

This is how the design is, I will tell Sejal about it. I think it worths further discussion.

7. Raw TextStyle instead of theme in _recipientCard

Whoops another miss

@n13

n13 commented Apr 24, 2026

Copy link
Copy Markdown
Collaborator

4 still sounds kinda bad though - why is isend = true the default? Why not make it explicit which one to use in each situation as it was? ... why the change? Is there a particular reason?

Overall doesn't make much of a difference, it's not super important certainly not a blocker, but curious.

I use defaults when there's an existing function and I am adding a parameter but don't want to change the existing code.

Or when there's a logical default for the object to be in just because it's much more common, but send/receive seems 50/50....

@dewabisma

Copy link
Copy Markdown
Collaborator Author

4 still sounds kinda bad though - why is isend = true the default? Why not make it explicit which one to use in each situation as it was? ... why the change? Is there a particular reason?

Overall doesn't make much of a difference, it's not super important certainly not a blocker, but curious.

I use defaults when there's an existing function and I am adding a parameter but don't want to change the existing code.

Or when there's a logical default for the object to be in just because it's much more common, but send/receive seems 50/50....

Okay, it seems having default not appropriate here since send and receive can be 50/50. I agree with that point.

@n13 n13 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review: Redesign Send Screen

Great refactor — breaking the monolithic bottom-sheet send flow into a proper multi-screen navigation (Select Recipient → Input Amount → Review → Tx Submitted) is a solid architectural improvement. The new AmountDisplayWithConversion and AddressCheckphraseWithInitial reusable widgets are good extractions. Fixing the exchange rate decimal separators (commas → dots) is a nice catch.

DRY Concerns

  1. _fetchEstimatedFee / _fetchFee duplication in InputAmountScreen — These two methods share ~80% identical code (call balancesService.getBalanceTransferFee, guard on RegularAccount, set _networkFee and _blockHeight, handle errors identically). Consider extracting a single _fetchFee({BigInt? amount, String? recipient}) that defaults to the estimated params when amount/recipient aren't provided.

  2. Recipient display built 3 different waysInputAmountScreen._recipientCard, ReviewSendScreen._heroCard, and TxSubmittedScreen each build their own checksum + address display. The new AddressCheckphraseWithInitial widget exists but isn't used in any of these three screens. If the layouts differ slightly, consider parameterizing AddressCheckphraseWithInitial rather than re-building it from scratch each time.

  3. ReviewSendScreen shows address twice — The hero card displays TO + address, and the summary section below also has a _summaryRow(label: 'TO', value: shortAddr). The user sees the recipient address in two places stacked on top of each other.

Architectural Notes

  • Screen-to-screen data passing via constructor argsInputAmountScreen accepts 4 params, ReviewSendScreen accepts 6 params, all passed forward through Navigator pushes. For this linear flow, consider a shared send-flow state object (e.g. a ChangeNotifier or a scoped Riverpod provider) to avoid threading data through every constructor. This will become more important if the flow grows.

  • InputAmountScreen uses ScaffoldBase(child: ...) but the next PR renames this to mainContent — Fine since these are stacked PRs, just noting for awareness.

  • Good call keeping SendScreenLogic as a pure logic helper and reusing it here.

Overall a clean decomposition — the main actionable items are the fee-fetching duplication and the missed reuse of AddressCheckphraseWithInitial.

@n13 n13 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, but please check if the above items are worth addressing - doesn't seem critical though.

@n13

n13 commented Apr 27, 2026

Copy link
Copy Markdown
Collaborator
image Also this

@dewabisma dewabisma merged commit d48dc67 into feat/v3 Apr 28, 2026
dewabisma added a commit that referenced this pull request Apr 28, 2026
* 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>
dewabisma added a commit that referenced this pull request Apr 28, 2026
* 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>
@dewabisma dewabisma deleted the beast/redesign-send-screen branch May 3, 2026 08:02
dewabisma added a commit that referenced this pull request May 4, 2026
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants