Skip to content

Issue/516 515 530 512 modal loading - #606

Merged
Ada-Girly881 merged 2 commits into
Ada-Girly881:testnet-implementationfrom
dorismaduegbunam:issue/516-515-530-512-modal-loading
Sep 2, 2026
Merged

Issue/516 515 530 512 modal loading#606
Ada-Girly881 merged 2 commits into
Ada-Girly881:testnet-implementationfrom
dorismaduegbunam:issue/516-515-530-512-modal-loading

Conversation

@dorismaduegbunam

Copy link
Copy Markdown
Contributor

closes #516
closes #515
closes #530
closes #512

Summary of changes in this branch (issue/516-515-530-512-modal-loading):

  1. Modal needs a focus trap and scroll lock audit #516 - Modal focus trap and scroll lock audit

    • Created shared useFocusLock hook for focus trapping and scroll locking
    • Updated Modal component to use the shared hook
    • Updated Header mobile menu to reuse the shared hook
    • Added useReduceMotion hook for prefers-reduced-motion support
    • Updated Skeleton component to respect prefers-reduced-motion
  2. No confirmation step before irreversible actions #515 - No confirmation step before irreversible actions

    • Created ConfirmDialog component built on existing Modal
    • Updated BotListingCard to require confirmation for buy and cancel actions
    • ConfirmDialog shows exact amounts, bot name, and resulting state
    • Supports Escape key and focus trap
  3. Long addresses and usernames are truncated with no full value available #530 - Long addresses and usernames truncated with no full value

    • Extracted shared truncateAddress module into frontend/src/lib/truncateAddress.ts
    • Updated Header to use shared truncateAddress with click-to-copy functionality
    • Updated LeaderboardTable to use shared truncateAddress with full value title and aria-label
    • Added full address available to screen readers and clipboard
  4. No skeleton or loading state on the dashboard #512 - No skeleton or loading state on the dashboard

    • Created loading.tsx for dashboard route
    • Added skeletons keyed to each query's isLoading state
    • Distinguished "loading" from "zero" in numeric displays
    • Skeleton respects prefers-reduced-motion
    • Dashboard shows skeletons during queries instead of false empty state

…ll lock

- Extract shared focus lock behavior into useFocusLock hook
- Update Modal to use shared hook for focus trap and scroll lock
- Update Header mobile menu to reuse useFocusLock
- Add useReduceMotion hook for prefers-reduced-motion support
- Add truncateAddress shared module
- Add ConfirmDialog built on Modal for confirmation steps
…teps, update Header and Leaderboard with shared truncateAddress

- Add ConfirmDialog built on Modal with focus trap and Escape support
- Update BotListingCard to require confirmation for buy and cancel actions, showing amounts and bot info
- Update Header to use shared truncateAddress and add copy-to-clipboard functionality
- Update LeaderboardTable to use shared truncateAddress with full value title and aria-label
- Update Modal.tsx to use shared useFocusLock hook
- Update Skeleton to respect prefers-reduced-motion
- Update dashboard page with loading skeletons and loading/zero distinction
@vercel

vercel Bot commented Sep 2, 2026

Copy link
Copy Markdown

@dorismaduegbunam is attempting to deploy a commit to the Ada's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Sep 2, 2026

Copy link
Copy Markdown

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

@Ada-Girly881
Ada-Girly881 merged commit f6b066d into Ada-Girly881:testnet-implementation Sep 2, 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