Skip to content

feat(claim): claim flow UI improvements (#432-#435) - #522

Merged
phertyameen merged 1 commit into
bridgelet-org:mainfrom
halimasbanna-sketch:feat/claim-flow-ui-improvements
Aug 29, 2026
Merged

feat(claim): claim flow UI improvements (#432-#435)#522
phertyameen merged 1 commit into
bridgelet-org:mainfrom
halimasbanna-sketch:feat/claim-flow-ui-improvements

Conversation

@halimasbanna-sketch

Copy link
Copy Markdown
Contributor

Summary

Resolves four issues related to the claim flow UI in frontend/app/claim/[token]/.

Changes

#435 — Already-claimed error state

  • Split ClaimedPanel into two distinct sub-states: "claimed by you" (green success confirmation) and "claimed by someone else" (neutral informational).
  • ClaimView gains a claimedByMe boolean, written to sessionStorage by markTokenClaimed() when a successful claim is made in the current session.
  • loadClaimView reads sessionStorage on a 409 response to determine which sub-state to show.
  • No re-claim action is offered in either case. A support email link is shown for disputes.

#434 — Expired-link error state

  • ExpiredPanel now uses an amber colour scheme (not red) to visually differentiate expiry from failures.
  • Copy updated to clearly state that funds are automatically returned to the sender — no money is lost.
  • No claim action is rendered when the status is EXPIRED.

#433 — Auto-sweep confirmation UI

  • After clicking Claim now → Confirm & send, a sweep-in-progress spinner state is shown (role="status") distinct from the initial claim step.
  • A final success card then appears with the destination wallet address and the amount sent.
  • CLAIMING panel updated with a "Funds are moving to your wallet" heading.
  • PARTIAL_SWEEP panel shows "Finalizing your transfer" copy distinct from CLAIMING.

#432 — Existing-wallet connect path

  • AvailablePanel now shows WalletConnect (Freighter) alongside the manual address entry — not hidden behind a toggle.
  • Both paths go through a confirmation step (address + amount review) before the sweep fires.
  • WalletConnect gains an onRejected callback so connection failures surface as contextual amber notices, keeping the manual path accessible.

Files changed

  • frontend/lib/claim-view.ts — new fields + markTokenClaimed / wasClaimedByMe
  • frontend/components/claim-status-card.tsx — updated panels for all four issues
  • frontend/components/wallet-connect.tsxonRejected prop
  • frontend/app/claim/[token]/claim-page-client.tsx — passes new props, calls markTokenClaimed
  • frontend/components/clainStatusCard.test.tsx — updated and new tests

Closes

Closes #432
Closes #433
Closes #434
Closes #435

…elet-org#435

bridgelet-org#435: Distinguish 'claimed by you' vs 'claimed by someone else' in ClaimedPanel.
Uses sessionStorage to detect if this browser session performed the claim.
No re-claim action is offered in either case; disputed claims link to support.

bridgelet-org#434: Restyle ExpiredPanel with amber (not red) theme to visually differentiate
it from FAILED. Add copy explaining funds are automatically returned to the sender.
Confirm no claim action is rendered in the expired state.

bridgelet-org#433: Add 'funds are moving' sweep-in-progress state (distinct from claim
initiation) and a final success card showing destination address + amount.
CLAIMING panel updated with clearer 'funds are moving' heading. PARTIAL_SWEEP
panel shows 'finalizing' copy distinct from CLAIMING.

bridgelet-org#432: Surface WalletConnect (Freighter) option alongside the manual address
entry in AvailablePanel so existing-wallet holders have a first-class path.
Both paths now go through a confirmation step before the sweep fires, showing
the address and amount for review. WalletConnect gains an onRejected callback
so wallet-connect failures are surfaced as contextual (non-alarming) messages
rather than a generic error, keeping the manual entry path accessible.

Tests updated in clainStatusCard.test.tsx to cover all new states and flows.
@drips-wave

drips-wave Bot commented Aug 28, 2026

Copy link
Copy Markdown

@halimasbanna-sketch Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@vercel

vercel Bot commented Aug 28, 2026

Copy link
Copy Markdown

@halimasbanna-sketch is attempting to deploy a commit to the aminubabafatima8-gmailcom's projects Team on Vercel.

A member of the Team first needs to authorize it.

@phertyameen
phertyameen merged commit 53822fc into bridgelet-org:main Aug 29, 2026
1 check failed
@phertyameen

Copy link
Copy Markdown
Contributor

Merged to \main\ as part of a consolidated integration (branch \merge-final, now pushed as commit \5155235\ on main).

Validation on main:

  • Frontend CI: green
  • Lighthouse CI: green
  • Mobile CI: Lint & Type Check, Unit Tests, and Android/iOS prebuild all green

Note: the Mobile CI Android/iOS native debug build jobs still fail on pre-existing repo issues unrelated to this PR (react-native-reanimated vs RN 0.81 compile error, and the macos-14 runner's Xcode 15.4 vs RN's required Xcode >= 16.1). Tracked as follow-up work, not blocked by this change.

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.

Already-claimed error state Expired-link error state Auto-sweep confirmation UI Existing-wallet connect path for claiming

2 participants