Skip to content

fix: keep transfer swipe spinning - #690

Merged
piotr-iohk merged 2 commits into
masterfrom
fix/transfer-swipe-spinner
Aug 28, 2026
Merged

fix: keep transfer swipe spinning#690
piotr-iohk merged 2 commits into
masterfrom
fix/transfer-swipe-spinner

Conversation

@piotr-iohk

@piotr-iohk piotr-iohk commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR keeps Swipe To Transfer parked at the end with the loading spinner after you confirm a transfer to spending, matching Android.

A recent send-retry change reset the swipe on success as well as failure. Combined with a fire-and-forget confirm on this screen, the knob snapped back immediately instead of spinning until Setting Up.

Errors still slide the control back so the transfer can be retried. Savings Confirm and Fund Manual Confirm now rethrow after toasting, so those screens can retry too.

Linked Issues/Tasks

N/A

Screenshot / Video

Before:

ios-before.mov

After:

ios-after.mov

QA Notes

Manual Tests

  • 1. Transfer → Spending Amount → Continue → Spending Confirm → swipe: the knob stays on the right with the spinner until Setting Up.
  • 2. Spending Confirm → swipe, then fail the funding (airplane mode or insufficient funds): the knob slides back and can be swiped again.
  • 3. regression: Send → Confirm → swipe: success still navigates away; a failed send still resets the swipe for retry.
  • 4. regression: Transfer → Savings Confirm → swipe: still navigates to Savings Progress.
  • 5. Transfer → Fund Manual Confirm → swipe, then fail the channel open: the knob slides back and can be swiped again.

Automated Checks

  • N/A
  • CI: standard build and test checks run by the PR bot.

Co-authored-by: Cursor <cursoragent@cursor.com>
@greptile-apps

greptile-apps Bot commented Aug 27, 2026

Copy link
Copy Markdown

Greptile Summary

The PR keeps the spending-transfer swipe control in its loading state until navigation to Setting Up and propagates spending-transfer errors so that flow can reset. It also removes SwipeButton’s global success reset, which inadvertently prevents retries in callers that handle errors internally.

  • Binds the spending confirmation swipe spinner to isPaying.
  • Keeps isPaying active after successful funding and transitions to Setting Up.
  • Resets the spending swipe by rethrowing failures.
  • Removes SwipeButton’s unconditional reset after completion.
  • Adds a changelog entry.

Confidence Score: 4/5

The retry regression in savings-transfer and manual-channel confirmation flows should be fixed before merging.

Removing SwipeButton’s normal-return reset means callers that catch their own operation errors leave the control permanently submitted, blocking another attempt.

Files Needing Attention: Bitkit/Components/SwipeButton.swift, Bitkit/Views/Transfer/SavingsConfirmView.swift, Bitkit/Views/Transfer/FundManualConfirmView.swift

Important Files Changed

Filename Overview
Bitkit/Components/SwipeButton.swift Removes success-path reset globally, leaving two error-swallowing callers permanently parked after failed operations.
Bitkit/Views/Transfer/SpendingConfirm.swift Awaits confirmation directly, drives loading from isPaying, preserves loading through success navigation, and rethrows errors for swipe reset.
changelog.d/next/690.fixed.md Documents the intended spending-transfer spinner behavior.

Reviews (1): Last reviewed commit: "fix: keep transfer swipe spinning" | Re-trigger Greptile

Comment thread Bitkit/Components/SwipeButton.swift
Co-authored-by: Cursor <cursoragent@cursor.com>
@piotr-iohk piotr-iohk self-assigned this Aug 27, 2026
@piotr-iohk
piotr-iohk requested a review from pwltr August 27, 2026 13:20

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

Tested send, transfer, boost. Looks good.

@piotr-iohk
piotr-iohk merged commit 40d6122 into master Aug 28, 2026
11 checks passed
@piotr-iohk
piotr-iohk deleted the fix/transfer-swipe-spinner branch August 28, 2026 07:22
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.

2 participants