Skip to content

fix: style "each" on the group send sheet and keep the pay sheet's amount until dismiss - #1243

Merged
bmc08gt merged 2 commits into
mainfrom
fix/group-send-sheet-each-and-pay-amount
Nov 9, 2026
Merged

bmc08gt merged 2 commits into
mainfrom
fix/group-send-sheet-each-and-pay-amount

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

Two sheet fixes from code-payments/flipcash-client-orchestrator#126 (group-send step 3, group-requests "Paying a share" step 5).

Group send confirm sheet: "each" was amount-sized. GroupSendConfirmSheet drew eachLabel ("$1.00 each") as one .appDisplayLarge string. It now matches ChatCashCardCell.amountLine: "each" follows the amount at half its size, medium weight, in textSecondary (the total line's color). Amount and "each" are one Text, so they shrink together on one line. GroupSendViewModel exposes the bare amount (eachAmountLabel) and isSplitAcrossSelection in place of the joined string. One recipient still shows only the amount.

Swipe to Pay sheet blanked its amount before dismissing. The presenter in PaymentRequestDetailsScreen.swift built the amount from PaymentRequestPayment.share, which is nil once the share reads paid. submit() refreshes the request before returning .success, so the amount went blank during the checkmark hold and dismiss. prepare() now stores the request and share it found payable in sheetSnapshot, and the sheet renders from that snapshot whatever the live request does afterwards. The chat strip opens the same presenter, so both entry points are covered. PaymentRequestPaymentCurrencyTests covers the snapshot outliving a refresh that marks the share paid.

The confirm sheet drew "$1.00 each" as one `.appDisplayLarge` string, so
"each" was as large as the amount. It now follows the chat cash card's
amount line: "each" at half the amount's size, medium weight, in
`textSecondary`, the total line's color. The line is one `Text`, so the
amount and "each" shrink together on one line.

`GroupSendViewModel` exposes the bare amount (`eachAmountLabel`) and
`isSplitAcrossSelection` instead of a joined string. One recipient
still shows only the amount.

Refs code-payments/flipcash-client-orchestrator#126
The Swipe to Pay sheet read its amount from `PaymentRequestPayment.share`,
which is nil once the share reads paid. `submit()` refreshes the request
before returning success, so the amount went blank during the checkmark
hold and dismiss.

`prepare()` now stores the request and share it found payable in
`sheetSnapshot`, and the presenter renders the sheet from that snapshot,
whatever the live request does afterwards. The chat strip opens the same
presenter, so both entry points are covered.

Refs code-payments/flipcash-client-orchestrator#126
@bmc08gt bmc08gt self-assigned this Nov 9, 2026
@bmc08gt
bmc08gt merged commit a5ae3af into main Nov 9, 2026
4 checks passed
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