Skip to content

feat(wallet): add recurring Stellar payment review screen - #1203

Merged
llinsss merged 1 commit into
DogStark:mainfrom
cleank0de:feature/recurring-stellar-payment-review
Oct 26, 2026
Merged

llinsss merged 1 commit into
DogStark:mainfrom
cleank0de:feature/recurring-stellar-payment-review

Conversation

@cleank0de

Copy link
Copy Markdown
Contributor

Summary

Implements a recurring Stellar payment review screen allowing users to inspect upcoming payment intents, execution schedules, spending caps, and cancellation status before transactions are signed.

Changes

  1. Types (src/types/recurringPayment.ts):

    • Defined RecurringPaymentIntent, RecurringPaymentFrequency, and RecurringPaymentStatus capturing upcoming recurring schedules, per-execution amounts, spending caps, usage, next execution time, and backend authorization flags.
  2. API Client (src/lib/api/recurringPaymentAPI.ts):

    • Implemented recurringPaymentAPI with methods to fetch recurring intents, cancel an upcoming recurring schedule before signing, and record backend consent decisions.
    • Kept authorization and consent ownership strictly on the backend.
  3. Hook (src/hooks/useRecurringPaymentReview.ts):

    • Manages state for recurring payment intents, active selection, loading states, cancellation requests, backend consent actions, and privacy masking.
    • Integrated with useAnnouncement for live region screen-reader announcements.
  4. Component (src/components/Wallet/RecurringPaymentReview.tsx):

    • Renders a list and detailed inspection panel for recurring payment schedules.
    • Displays per-execution amounts, spending cap usage, next execution timestamps, and backend consent/denial badges.
    • Includes in-place confirmation modal for cancelling upcoming recurring payment intents before any transaction is signed.
    • Blocks proceeding to sign if backend consent is denied or unauthorized.
    • Features privacy-by-default toggle to mask/reveal sensitive destination keys and amount figures.
    • Full keyboard navigation (Enter/Space selection, focus indicators) and ARIA semantics (role="region", role="listbox", role="option", role="alert", role="dialog").
  5. Pages & Routes:

    • Integrated RecurringPaymentReview into src/pages/wallet.tsx as a dedicated tab (recurring).
    • Added dedicated route src/pages/wallet/recurring-review.tsx for direct navigation.
  6. Tests:

    • Added src/components/Wallet/RecurringPaymentReview.test.tsx covering primary flows, empty state, consent-denied blocking, schedule cancellation, privacy masking, keyboard navigation, and proceeding to transaction signing.
    • Added src/hooks/__tests__/useRecurringPaymentReview.test.ts covering initial state, toggling privacy mask, fetching intents, error handling, cancellation, and consent recording.

Closes #1122

@cleank0de
cleank0de force-pushed the feature/recurring-stellar-payment-review branch from d0349ec to 25d9293 Compare October 25, 2026 07:35
@llinsss
llinsss merged commit 7b1ee29 into DogStark:main Oct 26, 2026
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.

[Frontend] Add a recurring Stellar payment review screen

2 participants