Skip to content

fix(tip): render token/amount sheets over the tip card - #1230

Merged
bmc08gt merged 2 commits into
code/cashfrom
fix/tip-sheets-over-bill
Aug 13, 2026
Merged

fix(tip): render token/amount sheets over the tip card#1230
bmc08gt merged 2 commits into
code/cashfrom
fix/tip-sheets-over-bill

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Problem

When opening the token selection (or custom amount) sheet from the Send-a-Tip modal, the sheet rendered behind the tip card and modal instead of over it — so it was effectively unusable.

Root cause: those sheets are hosted by the root NavDisplay, but BillOverlay (the tip card + modal) was an app-root sibling painted on top of that NavDisplay. Since the base screen and the sheet live in the same NavDisplay, no simple reorder could sandwich the bill between them.

Approach

  • Host the bill as a NavDisplay entry decorator (NavBillOverlayEntryDecorator) drawn over each non-sheet entry, instead of an app-root sibling. The bill still floats above the current screen, but it's skipped for the sheet entry, so NavDisplay paints the sheet's overlay scene above the bill-bearing base entry. Sheets opened over the bill now render on top as normal, gesture-driven sheets — in one window (a Popup was tried first but broke the nested sheet NavDisplay's back dispatcher). Opening a sheet doesn't change the base entry, so the bill's animation state stays stable.
  • Scrim continuity: the bill's scrim decision is keyed off the tab beneath any presented sheet, so it stays constant across the sheet (no fade). When a plain bill dim is already present, the sheet no longer stacks its own dim, no longer disables its drag gesture, and no longer redraws the bill scrim on top (which had been dismissing the bill when you picked a token / closed the sheet). Normal sheets (no bill) are unaffected — all of this is gated on the bill scrim being active.
  • Also includes the Send-a-Tip modal relayout: the token pill moves from a separate "of <token>" row into the modal header next to the title.

Verification (on device, debug build)

  • Token picker and custom-amount sheets render above the tip card + modal, no gap above the title bar, no crash
  • Drag-to-dismiss and other sheet gestures work
  • Selecting a token updates the pill and returns to the modal with the card intact
  • Dismiss via X / drag / selection all return to the tip modal (bill no longer wrongly dismissed)
  • Backdrop dim stays constant when opening/closing the sheets (no scrim fade)
  • Confirmed the pre-fix build reproduces the bug (sheet stuck behind the card)

Relocate the tip token selector from a separate "of <token>" row beneath the
presets up into the modal header next to the title, and square the pill's
dropdown icon (width -> size) so the chevron isn't stretched.
…d it

Sheets opened from the tip modal (token selection, custom amount) are hosted by
the root NavDisplay, which BillOverlay is painted on top of as an app-root
sibling — so they appeared behind the tip card and modal.

Host the bill (and its scrim) as a NavDisplay entry decorator on non-sheet
entries instead of an app-root sibling: the bill still floats above the current
screen, but a sheet's overlay scene is painted above the base entry, so tip
sheets now render over the card as normal, gesture-driven sheets. This avoids a
separate window (a Popup broke the nested sheet NavDisplay's back dispatcher).

Keep the bill's scrim decision keyed off the tab beneath any sheet so it stays
constant across the sheet (no fade), and when a plain bill dim is already
present the sheet no longer stacks its own dim, disables its drag, or redraws
the bill scrim on top (which had been dismissing the bill).
@github-actions github-actions Bot added area: payments Payments, transfers, intents, billing area: ui Compose UI, theme, components, resources type: fix Bug fix labels Aug 13, 2026
@bmc08gt
bmc08gt merged commit e91a13a into code/cash Aug 13, 2026
3 checks passed
@bmc08gt
bmc08gt deleted the fix/tip-sheets-over-bill branch August 13, 2026 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: payments Payments, transfers, intents, billing area: ui Compose UI, theme, components, resources type: fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant