Skip to content

fix: disable dispute voting UI after outcome is finalized - #556

Open
LockedTerminal wants to merge 1 commit into
WHEELBACK:mainfrom
LockedTerminal:fix/dispute-voting-disable-after-finalized
Open

fix: disable dispute voting UI after outcome is finalized#556
LockedTerminal wants to merge 1 commit into
WHEELBACK:mainfrom
LockedTerminal:fix/dispute-voting-disable-after-finalized

Conversation

@LockedTerminal

Copy link
Copy Markdown
Contributor

Closes #230

  • Replace the bare conditional {!resolved && <actions>} with an explicit ternary that renders a 'Outcome finalized — voting is closed' notice when dispute.outcome !== null, ensuring the finalized state is actively communicated rather than silently absent.
  • Add dispute-card--finalized modifier class to the card so the finalized state can be styled (slight opacity reduction) and targeted in tests.
  • Add finalized notice CSS: .dispute-card__finalized-notice renders in a muted background pill; .dispute-card__finalized-icon for the checkmark.
  • Vote buttons are not rendered at all when resolved, preventing any accidental submission of a now-meaningless on-chain vote transaction.
  • Add DisputeVotingPanel.test.tsx with 9 tests covering:
    • vote buttons present when dispute is open
    • vote buttons absent when dispute is finalized
    • 'Outcome finalized' notice visible when resolved
    • OutcomeBadge shown with correct label (claimant / counterparty)
    • finalized notice has role=status for screen reader accessibility
    • dispute-card--finalized class present/absent as expected
    • mixed open+finalized dispute list renders correctly
      _
  • Tests added or updated
  • ABI snapshot updated if contract sources changed (abis/ and COMEBACKHERE-contracts/)
  • Screenshots attached if UI changed
  • Documentation updated if needed

Notes

  • For contract changes, verify ABI snapshot hygiene with make check-abi-snapshots.
  • For UI changes, include screenshots or screen recordings to help reviewers.

closes #454

Closes WHEELBACK#230

- Replace the bare conditional `{!resolved && <actions>}` with an
  explicit ternary that renders a 'Outcome finalized — voting is closed'
  notice when `dispute.outcome !== null`, ensuring the finalized state
  is actively communicated rather than silently absent.
- Add `dispute-card--finalized` modifier class to the card so the
  finalized state can be styled (slight opacity reduction) and targeted
  in tests.
- Add finalized notice CSS: .dispute-card__finalized-notice renders in a
  muted background pill; .dispute-card__finalized-icon for the checkmark.
- Vote buttons are not rendered at all when resolved, preventing any
  accidental submission of a now-meaningless on-chain vote transaction.
- Add DisputeVotingPanel.test.tsx with 9 tests covering:
  - vote buttons present when dispute is open
  - vote buttons absent when dispute is finalized
  - 'Outcome finalized' notice visible when resolved
  - OutcomeBadge shown with correct label (claimant / counterparty)
  - finalized notice has role=status for screen reader accessibility
  - dispute-card--finalized class present/absent as expected
  - mixed open+finalized dispute list renders correctly
@drips-wave

drips-wave Bot commented Aug 29, 2026

Copy link
Copy Markdown

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

Development

Successfully merging this pull request may close these issues.

fix: DisputeVotingPanel does not disable voting after outcome is finalized Add real-time updates to DisputeVoting weight tracking

1 participant