Skip to content

feat(frontend): onboarding, skeleton loaders, scam interstitial, tx detail modal - #504

Merged
Viky207 merged 2 commits into
Viky207:mainfrom
Qavahpaul:feat/477-480-ux-improvements
Oct 23, 2026
Merged

Viky207 merged 2 commits into
Viky207:mainfrom
Qavahpaul:feat/477-480-ux-improvements

Conversation

@Qavahpaul

Copy link
Copy Markdown
Contributor

Summary

Implements four frontend UX issues in one PR.

  • [UI/UX] Design and implement onboarding flow for new users #477 Onboarding — OnboardingModal (mounted in root layout) shows on first visit: What is QuickEx → Connect wallet (Freighter/Lobstr with install links) → Claim username (live availability check via checkUsernameAvailability). Back/Skip at every step, completion or dismissal stores quickex-onboarded: true. Focus-trapped dialog, ESC to skip, progress announced to screen readers, bottom-sheet on mobile.
  • [UI/UX] Add loading skeleton screens to replace spinner placeholders #478 Skeletons — DashboardSkeleton, TransactionRowSkeleton, TransactionTableSkeleton (grey animate-pulse, aria-hidden with an sr-only status). Replaces all spinners on dashboard and history pages, including the Suspense fallbacks.
  • [UI/UX] Improve scam alert UX — contextual warnings on suspicious links #479 Scam alerts — High-confidence signals (or alerts with no confidence given, to fail safe) show a blocking ScamInterstitial (alertdialog, focus-trapped, underlying page inert, pay buttons disabled) with the signal type, ≤60-word copy and a required "I understand the risk — proceed" confirmation. Low-confidence signals show a dismissable banner with a "Why this warning?" tooltip. Shown/dismissed/proceeded events go through a new trackEvent helper (window.dataLayer + quickex:analytics DOM event). ScamAlert now accepts optional signal and confidence fields.
  • [UI/UX] Add transaction detail modal with blockchain explorer link #480 Tx detail modal — History rows can be clicked and opened with Enter/Space and open TransactionDetailModal showing hash, amount + asset, sender, recipient, memo, fee, ledger, timestamp, plus a "View on Stellar Expert" link that opens in a new tab. Closes with ESC, a backdrop click or ×. ActivityFeedItem gains optional fee/ledger fields, mapped from the backend when it sends them. Unit test added.

Notes

  • I couldn't run lint, type-check or tests locally (no Node in the environment), so please let CI check them.
  • Fee and ledger show "—" until the backend transactions endpoint returns them.

Closes #477
Closes #478
Closes #479
Closes #480

… tx detail modal

- Add 3-step OnboardingModal shown on first visit (quickex-onboarded in localStorage)
- Replace dashboard/history spinners with DashboardSkeleton and TransactionTableSkeleton
- Blocking ScamInterstitial for high-confidence signals, banner with 'Why this warning?' tooltip for low-confidence, analytics events on dismiss/proceed
- Clickable, keyboard-activatable history rows opening TransactionDetailModal with Stellar Expert link, plus unit test

Closes Viky207#477
Closes Viky207#478
Closes Viky207#479
Closes Viky207#480
@drips-wave

drips-wave Bot commented Oct 22, 2026

Copy link
Copy Markdown

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

@Viky207
Viky207 merged commit 36fd4ca into Viky207:main Oct 23, 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

2 participants