Skip to content

Feat/474 477 stroops tests swap lazy keyboard nav - #721

Merged
Calebux merged 2 commits into
zintarh:mainfrom
kelvin1john0901-blip:feat/474-477-stroops-tests-swap-lazy-keyboard-nav
Oct 1, 2026
Merged

Calebux merged 2 commits into
zintarh:mainfrom
kelvin1john0901-blip:feat/474-477-stroops-tests-swap-lazy-keyboard-nav

Conversation

@kelvin1john0901-blip

@kelvin1john0901-blip kelvin1john0901-blip commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

#474 — Stroops edge-case tests

  • src/utils/tests/stellarAmount.edge.test.ts — 50+ test cases for toStroops, fromStroops, isValidStellarAmount, formatStellarAmount, covering null/undefined, wrong types,
    empty strings, whitespace, negatives, scientific notation, overflow, boundary round-trips
  • src/utils/tests/stellarAmounts.edge.test.ts — same depth for parseAmountToStroops, xlmToStroops, stroopsToXlm, formatXlm from stellarAmounts.ts

#475 — Lazy-load Swap

  • app/components/TokenSwap.tsx — the actual swap form
  • app/components/LazyTokenSwap.tsx — React.lazy + Suspense wrapper with a CLS-free animated skeleton placeholder
  • app/[locale]/swap/page.tsx — route that uses LazyTokenSwap

#476 — Keyboard nav for Token Swap
Built directly into TokenSwap.tsx: Tab order, Enter submits, Escape clears amount, Arrow keys work on selects natively, aria-live announces direction/asset changes, focus moves to
error on failure and back to input on success, aria-busy/aria-invalid states.

#477 — Keyboard nav for Withdraw Flow
app/[locale]/withdraw/page.tsx rewritten: all inline style={{…}} props replaced with Tailwind classes, added Escape to clear amount, aria-busy on submit, better aria-label that
reads the current amount, aria-live="polite" on success banner, and isWithdrawing ordering fix.

closes #474
closes #475
closes #476
closes #477

- test(utils): add comprehensive edge-case tests for stellarAmount and
  stellarAmounts utilities covering null/undefined inputs, unexpected
  data types, boundary values, overflow/underflow, and round-trip
  invariants — closes zintarh#474

- feat(swap): implement TokenSwap component with full keyboard navigation
  (Tab order, Enter to submit, Escape to clear, Arrow keys on selects,
  focus management on success/error, aria-live announcements) — closes zintarh#476

- feat(swap): lazy-load TokenSwap via React.lazy + Suspense with a
  CLS-free skeleton placeholder to reduce initial bundle size — closes zintarh#475

- feat(withdraw): replace all inline styles with Tailwind utility classes;
  complete keyboard navigation (Enter submits, Escape clears, programmatic
  focus management on connect/error/success, aria-busy, aria-invalid,
  aria-live regions) — closes zintarh#477
@vercel

vercel Bot commented Sep 28, 2026

Copy link
Copy Markdown

@kelvin1john0901-blip is attempting to deploy a commit to the zintarh Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Sep 28, 2026

Copy link
Copy Markdown

@kelvin1john0901-blip 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

@Calebux
Calebux merged commit 89de849 into zintarh:main Oct 1, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants