Skip to content

Add DisputeRaiseModal — a11y, empty state, interactive states, unit t… - #368

Open
blockchainrafik wants to merge 1 commit into
Goldii-locks:mainfrom
blockchainrafik:main
Open

Add DisputeRaiseModal — a11y, empty state, interactive states, unit t…#368
blockchainrafik wants to merge 1 commit into
Goldii-locks:mainfrom
blockchainrafik:main

Conversation

@blockchainrafik

Copy link
Copy Markdown

Add DisputeRaiseModal — a11y, empty state, interactive states, unit tests

Changes

app/components/DisputeRaiseModal.tsx (new)

  • Confirmation modal for raising a milestone dispute
  • EmptyStatePlaceholder rendered when milestoneIndex is null — descriptive heading, supporting text, "Waiting for selection" status badge
  • role="dialog", aria-modal="true", aria-labelledby, aria-describedby, role="alert" on warning banner, aria-live="polite" on empty state, aria-label + aria-disabled on all buttons, Escape key + Tab focus trap + backdrop click to close
  • Hover, focus-visible, active, and disabled states on all interactive elements using project design tokens (hover:bg-danger-soft/20, hover:border-danger-soft, active:scale-[0.97], focus-visible:ring-danger-soft / ring-accent-soft, disabled:opacity-40 disabled:cursor-not-allowed)
  • ButtonSpinner + pending label during in-flight state; TxStatusBanner wired to disputeState

__tests__/dispute-raise-modal.test.tsx (new)

  • ~100 assertions across 10 describe blocks
  • Covers: open/closed guard, empty-state node rendering and layout classes, confirmation body, milestoneLabel helper, full ARIA attribute compliance, every interactive Tailwind class, callback wiring, isPending behaviour, amount display, TxStatusBanner visibility

Closes #330
Closes #331
Closes #333
Closes #339

@drips-wave

drips-wave Bot commented Aug 30, 2026

Copy link
Copy Markdown

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant