Skip to content

feat(payment-requests): Send Request button, empty Name field, ended requests leave the deck - #1242

Merged
bmc08gt merged 2 commits into
mainfrom
feat/group-request-tweaks
Nov 9, 2026
Merged

bmc08gt merged 2 commits into
mainfrom
feat/group-request-tweaks

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

Three group-request changes from the spec in code-payments/flipcash-client-orchestrator#125.

Create button. The summary's button reads "Send Request" for every amount and selection. PaymentRequestPeople.total(perPerson:) and buttonTitle(perPerson:) had no other callers and are removed.

Name screen. While the title is still the weekday default, the field opens empty with "Monday Request" (or that day's equivalent) as its placeholder, and Done stays disabled until something is typed. Going back without Done keeps the default. A saved custom title still pre-fills the field. The draft now holds a PaymentRequestName (default plus optional custom title) instead of a plain string.

Ended requests leave the deck. deckOrder returns OPEN requests only, so COMPLETED, CLOSED and EXPIRED requests drop out of the stack and the expanded list. This replaces the 24-hour greyed state, so the deck's 0.4 opacities and the ring and paid badge's isEnded/isClosed looks are removed. Ended requests still show in the timeline, Request details and Request Money history.

  • PaymentRequestDeckPresence now holds the outgoing deck when a request leaves. A request that completed stays in place with its ring at full for 300 ms, then the remaining cards close the gap with the deck's settle spring. Closed and expired requests leave without the hold, and Reduce Motion skips it. When the last request leaves, the stack fades out as before.
  • The chat screen keeps a deck clock that wakes at the nearest ends_at (GroupPaymentRequest.nextExpiry) or after a minute, whichever comes first, so an expiring request leaves at its deadline rather than at the next once-a-minute refresh.
  • An expanded list that loses its last card collapses, unless a details sheet opened from it is still up.

The chat refetch still reads the first RESOLVED page: that is how a held OPEN copy learns it ended when a live update was missed. Only its comment changed.

Tests: PaymentRequestSpecTests covers spec cases 3, 9, 14, 15, 49–51 and 58–62, and case 13's expectation drops the CLOSED request to match "Ended requests leave the deck".

…requests leave the deck

- The summary's create button reads "Send Request" for every amount and
  selection.
- The Name screen opens empty with the weekday default as its placeholder
  while that default stands. Done stays disabled until something is typed,
  and going back keeps the default. A saved title still pre-fills.
- The deck holds OPEN requests only. A completed request holds its place
  with the ring full for 300 ms, then the remaining cards close the gap;
  a closed or expired one leaves at once. The chat wakes at the nearest
  ends_at instead of the next minute, and an expanded list that loses its
  last card collapses. The greyed ended look and the 24-hour retention are
  gone; the timeline, details, and history still show ended requests.

Spec: code-payments/flipcash-client-orchestrator#125
@bmc08gt bmc08gt self-assigned this Nov 9, 2026
…deck ring and badge

Only the deck draws PaymentRequestRing and paidBadge, and it holds OPEN requests only, so isEnded and isClosed were always false.
@bmc08gt
bmc08gt merged commit 540f8a7 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