Skip to content

Fix Next button overlapping wallet list in Choose Wallets to Add#6091

Closed
j0ntz wants to merge 2 commits into
developfrom
jon/create-wallet-button-overlap
Closed

Fix Next button overlapping wallet list in Choose Wallets to Add#6091
j0ntz wants to merge 2 commits into
developfrom
jon/create-wallet-button-overlap

Conversation

@j0ntz

@j0ntz j0ntz commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

CHANGELOG

Does this branch warrant an entry to the CHANGELOG?

  • Yes
  • No

Dependencies

none

Requirements

If you have made any visual changes to the GUI. Make sure you have:

  • Tested on iOS device
  • Tested on Android device
  • Tested on small-screen device (iPod Touch)
  • Tested on large-screen device (tablet)

Description

Fixes the Next button overlapping/hiding the last row(s) of the wallet list on the "Choose Wallets to Add" scene, reported from both the onboarding wallet-selection flow and the logged-in "+" add-wallet flow.

Both entry points already render the same shared component, CreateWalletSelectCryptoScene, registered under two route names (createWalletSelectCryptoNewAccount for onboarding, createWalletSelectCrypto for the logged-in "+" button) in Main.tsx. The bug was a double-absolute-positioning defect inside that one component: the Next button was rendered via SceneButtons with absolute={!isMaestro()} while already being a child of SceneWrapper's dockProps.children, which itself renders inside its own absolutely-positioned, keyboard-aware dock. Making the button additionally position: absolute took it out of the dock's layout flow, so the dock's measured height collapsed and the scene under-reserved scroll clearance for it, letting the last row(s) end up behind the button when scrolled to the end. The isMaestro() branch meant Maestro exercised a different, correctly-docked layout than production, so this class of bug was invisible to automated tests.

Fix: switch to KavButtons, the same primitive every other scene in this codebase uses inside dockProps.children (e.g. RampCreateScene, SwapCreateScene, GiftCardPurchaseScene), and drop the now-unneeded manual paddingBottom compensation since the dock's real height is now measured correctly.

Followup: KavButtons' primary-only path renders the button at layout="fullWidth", which stretches it edge to edge. Feedback on the task was that the button should not span the full screen width. Switched to EdgeButton directly with layout="solo" (documented as safe to use standalone), which renders the same narrow, centered pill the scene originally had before this PR, and removed KavButtons from this scene entirely. EdgeButton's own usePendingPress hook manages the pending/spinner/error state internally when onPress returns a promise, so the scene-owned isNextPending state and try/catch/finally wrapper added for the earlier Bugbot finding are no longer needed and were removed.

Asana task: https://app.asana.com/0/1215088146871429/1211940991169286


Note

Low Risk
UI-only layout fix on a single shared create-wallet scene; no auth, payments, or data-path changes.

Overview
Fixes the Next button covering the last wallet rows on Choose Wallets to Add (CreateWalletSelectCryptoScene), used from both onboarding and the logged-in add-wallet flow.

The docked footer previously used SceneButtons with absolute={!isMaestro()} inside SceneWrapper’s dockProps, which already lays out an absolutely positioned dock—so the button left normal layout, the dock’s height collapsed, and the list didn’t reserve enough bottom space. The change replaces that with an in-flow EdgeButton (layout="solo") and drops the extra FlatList paddingBottom compensation so inset sizing matches the real dock height.

Reviewed by Cursor Bugbot for commit 0f3aa75. Bugbot is set up for automated code reviews on this repo. Configure here.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@j0ntz

j0ntz commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

📸 Test evidence

list top fixed

list top fixed

list bottom fixed

list bottom fixed

Captured by the agent's in-app test run (build-and-test).

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c140312. Configure here.

Comment thread src/components/scenes/CreateWalletSelectCryptoScene.tsx
The Next button on CreateWalletSelectCryptoScene (shared by both the
onboarding and logged-in "+" add-wallet flows) was double-absolutely
positioned: SceneWrapper already renders dockProps.children inside its
own absolutely-positioned, keyboard-aware dock, but the button itself
was also given position:absolute via SceneButtons' absolute prop. That
took the button out of the dock's layout flow, so the dock's measured
height collapsed and the scene under-reserved scroll clearance for it,
letting the button cover the last row(s) when scrolled to the end.

The absolute prop was only forced on outside of Maestro, so automated
UI tests exercised a different, correctly-docked layout and never
caught the regression.

Switch to KavButtons, the same primitive every other scene uses inside
dockProps.children, and drop the now-unneeded manual paddingBottom
compensation since the dock's real height is now measured correctly.
@j0ntz
j0ntz force-pushed the jon/create-wallet-button-overlap branch from c140312 to 2d895aa Compare July 24, 2026 00:57
Switches from KavButtons (fullWidth) to EdgeButton with layout="solo",
matching the button's original non-full-width appearance and letting
EdgeButton's built-in usePendingPress hook manage the pending/error
state instead of a hand-rolled scene state.
@j0ntz

j0ntz commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

📸 Test evidence (button width fix)

button narrow top

button narrow top

button narrow bottom

button narrow bottom

Captured by the agent's in-app test run (build-and-test).

@j0ntz

j0ntz commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #6105, which consolidates this and 11 other small GUI task branches into one PR/branch per the umbrella task's instructions.

@j0ntz j0ntz closed this Jul 24, 2026
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.

1 participant