Skip to content

fix: usdt confirm details fit above swipe to pay - #1062

Merged
ovitrif merged 2 commits into
masterfrom
fix/confirm-details-fit
Oct 21, 2026
Merged

ovitrif merged 2 commits into
masterfrom
fix/confirm-details-fit

Conversation

@ovitrif

@ovitrif ovitrif commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #1060
Twin: synonymdev/bitkit-android#1637

This PR makes the expanded USDT confirm fit the longest set of details (contact, address and invoice note on a Paykit request): the fee hint now scrolls with the details under Hide Details, and Swipe To Pay stays pinned.

Description

  • Moves the fee hint ("All fees are paid in USDT. Final fee may be lower.") from the pinned area above Swipe To Pay into the scrolling details, right under Hide Details, so the two never collide.
  • Keeps the hint at the bottom of the details area when everything fits, as before, and lets it follow Hide Details when the details overflow and scroll; Swipe To Pay stays pinned either way.
  • Adds that check to usdt-send-review-and-details.xml.

Out of Scope

  • UsdtSendView.swift collapsed confirm, Amount and submitted states: unchanged.

Design

Bitkit - Refactor v63 › Send (USDT) › Confirm Details USDT. The frame shows a direct send without the Contact and Invoice Note rows; this PR keeps its order (details, Hide Details, fee hint, Swipe To Pay) and makes it scroll when a Paykit request adds those rows.

Preview

Before, 3.0.1, a plain send without the Contact row (address masked):

After, regtest with a local test hook supplying the quote, contact and invoice note: details open, then scrolled to the fee hint:

Details open Scrolled to fee hint

i1060.mp4

After, a plain send whose details fit: the hint stays at the bottom and a gentle drag up moves nothing:

QA Notes

Journeys

  • updated usdt-send-review-and-details.xml — the fee hint sits below Hide Details and scrolls with the details, with Swipe To Pay pinned
  • updated paykit-quoted-usdt.xml — a USDT request with contact and a long invoice note: details scroll past Hide Details to the fee note, with Swipe To Pay pinned

Manual Tests

  • Open a Paykit request paid in USDT with an invoice note, continue to review and tap Show Details → Contact, Address and Invoice Note scroll with Hide Details and the fee hint above a pinned Swipe To Pay, nothing overlaps — an incoming Payment Request needs the fixture issuer from journeys/README.md plus a USDT quote, which needs the local USDT fixture

Automated Checks

N/A

@ovitrif ovitrif self-assigned this Oct 20, 2026
@ovitrif ovitrif changed the title fix: fit usdt confirm details above a pinned swipe fix: usdt confirm details fit above swipe to pay Oct 20, 2026
@ovitrif
ovitrif marked this pull request as ready for review October 21, 2026 00:12
@ovitrif
ovitrif requested review from a team, ben-kaufman and pwltr and removed request for a team October 21, 2026 00:12
@ovitrif

ovitrif commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

QA on an iPhone 17 Pro simulator (iOS 27.0), regtest debug build of this branch with a local-only hook that supplies the quote, contact and invoice note:

  • Payment Request confirm with Contact, Address and Invoice Note: the details scroll, the Hide Details pill and the fee hint follow them about 30 pt apart, and Swipe To Pay stays pinned.
  • Plain send whose details fit: the fee hint sits at the bottom above Swipe To Pay as before, and a gentle drag up moves nothing; a drag down moves the whole sheet, which is the sheet's own dismiss gesture.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-21T00:13:48.539339Z e50e54c Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@greptile-apps

greptile-apps Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 4/5

[Low impact] The change stays within the expanded USDT send confirmation screen.

The PR appears safe to merge, with a non-blocking gap in the journey check.

Findings

  1. P2 Crowded details go untested ▶

Summary

Moves the expanded USDT fee note into the scrolling details and leaves Swipe To Pay pinned.

  • Expanded USDT details now scroll with the fee note above pinned Swipe To Pay.

Reviews (1) · Last reviewed commit: "fix: fit usdt confirm details above a pi..." · Reviewed by Greptile

Comment thread journeys/usdt-send-review-and-details.xml
@ovitrif

ovitrif commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

Pushed 895c04a: journeys/paykit-quoted-usdt.xml gains the step its Android twin added in synonymdev/bitkit-android#1637, with identical wording. It covers a USDT request with a contact and a long invoice note: Show Details, scroll past Hide Details to the fee note, and Swipe To Pay stays pinned. That is the overflow case this PR fixes; the existing review journey runs on a plain send whose details may fit. The Journeys list in the description now names it. No app code changed.

@talosmachina talosmachina 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.

No findings. Moves the USDT fee note into the scrolling details under Hide Details so it can no longer collide with the pinned Swipe To Pay, and adds that check to two journeys. Reviewed 895c04a, light tier.

What I checked, and 2 candidates I ruled out

Read in full: confirmation(_:) in UsdtSendView.swift, and the two journey edits.
CI: SwiftFormat and validate green; unit and integration tests still running. Swift is not built on this box.

Ruled out

  • Note no longer at the bottom when details fit: the content VStack keeps .frame(minHeight: geometry.size.height) and the note follows Spacer(minLength: 0), so it still sits at the bottom when nothing overflows.
  • Conflict with #1064 on the same file: the two branches merge cleanly (git merge-tree).

Merge confidence: 4/5, the unit tests are still running; the change is layout, which journeys cover rather than tests.

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Code scan at 895c04a: no issues found.

  • Layout: the fee note sits after a flexible spacer inside the min-height scroll column. When the details fit, it sits at the bottom; when they overflow, it follows Hide Details. Swipe to pay stays pinned outside the scroll.
  • Show/Hide: each toggle scrolls back to the top, so the amount header is visible.
  • Reachability: amount, Pay from, Network, Payment, Fee, Address, Contact and Note all stay reachable by scrolling. Nothing is clipped.
  • Parity: same structure, journey text and changelog sentence as synonymdev/bitkit-android#1637.
  • Journeys: usdt-send-review-and-details.xml and paykit-quoted-usdt.xml updated. The new Paykit step covers Greptile's resolved thread.

Device gate (partial): 895c04a — not run yet. Pending: a Paykit USDT request with a contact and a wrapped note → Show Details → scroll and Hide Details, with no overlap and Swipe pinned. Then a plain send on a short screen with large text (iPhone SE with the largest Dynamic Type on iOS).

Device results will follow in a separate review.

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Device results, part 1, on the USDT fixture (iPhone 17 simulator, 895c04a). Plain USDT send of 1.00:

  • Default text: the details fit. The fee note sits at the bottom, 24 pt above Swipe To Pay. Hide Details brings the illustration back.
  • Accessibility Large: the details overflow. Scrolled to the end, the fee note follows Hide Details with a 24 pt gap and no overlap, and Swipe stays pinned and fully visible. After Hide and Show Details again, the amount header is visible both times.
  • Largest text (AX5): same result. The fee note wraps to three lines with no overlap, and Swipe stays pinned. No iPhone SE simulator exists, so this stands in for compact plus largest text.
  • Journey: the changed action in usdt-send-review-and-details.xml passed.

Not from this PR: at AX5, the "Swipe To Pay" title runs under the knob. SwipeButton isn't in this diff, and I haven't compared it on master yet.

Device gate (partial): 895c04a — 4 checks passed, 0 failed. Pending: the new action in paykit-quoted-usdt.xml, a linked contact's USDT request with a wrapping note. The only open request on the test wallet comes from a contact that no longer publishes a USDT endpoint, so the next run will create a fresh request from the Android device.

@ovitrif

ovitrif commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

@jvsena42 thanks for the device pass.

at AX5, the "Swipe To Pay" title runs under the knob. SwipeButton isn't in this diff

Right, this PR doesn't touch SwipeButton, so it stays out of scope here. If master shows the same at AX5, it belongs in its own issue.

The Paykit journey step (a USDT request with a contact and a wrapping note) is the one left; it waits for your fresh request from the Android device.

@pwltr pwltr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Approved. Moving the fee explanation into the scrolling details fixes the overlap while keeping Swipe To Pay pinned. The explanation stays at the bottom when details fit and remains reachable when they overflow. Payment logic and the collapsed review are unchanged.

@ovitrif
ovitrif merged commit 1297e5d into master Oct 21, 2026
20 of 21 checks passed
@ovitrif
ovitrif deleted the fix/confirm-details-fit branch October 21, 2026 13:27
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.

bug: hide details is crowded by the fee hint on payment request confirm

4 participants