Skip to content

Mobile Raise Dispute CTA still shows "Coming Soon" — bring to parity with desktop sidebar #293

Description

@Benjtalkshow

components/bounty-detail/bounty-detail-mobile-cta.tsx:190 renders the Raise Dispute button as a permanently-disabled "Coming Soon" placeholder:

{canRaiseDispute && (
  <Button variant="ghost" className="w-full mt-2 text-gray-400 text-xs h-8" disabled>
    <Gavel className="size-3 mr-2" />
    Raise a Dispute (Coming Soon)
  </Button>
)}

But the flow already shipped in PRs #256 and #268: useRaiseDispute hook, RaiseDisputeDialog component, /api/disputes proxy. The desktop sidebar at components/bounty-detail/bounty-detail-sidebar-cta.tsx:248-262 wires all of this up correctly. Mobile users currently have no way to raise a dispute because of the stale stub.

What to do

Mirror the desktop sidebar pattern in bounty-detail-mobile-cta.tsx:

  • Import RaiseDisputeDialog from ./raise-dispute-dialog
  • Add a local const [disputeDialogOpen, setDisputeDialogOpen] = useState(false)
  • Replace the disabled button with an enabled Button whose onClick calls setDisputeDialogOpen(true)
  • Drop the "(Coming Soon)" label, drop the disabled prop, keep the Gavel icon and canRaiseDispute gate
  • Render <RaiseDisputeDialog open={disputeDialogOpen} onOpenChange={setDisputeDialogOpen} bountyId={bounty.id} /> near the other mobile dialogs

Acceptance criteria

  • No "Coming Soon" string in bounty-detail-mobile-cta.tsx
  • Clicking the mobile button opens the same RaiseDisputeDialog the desktop sidebar opens
  • On a small viewport, the dispute flow works end to end (open dialog, pick reason, type description, submit, see toast, redirect)
  • pnpm tsc --noEmit and pnpm lint pass

Files

  • components/bounty-detail/bounty-detail-mobile-cta.tsx
  • components/bounty-detail/raise-dispute-dialog.tsx (reference)
  • components/bounty-detail/bounty-detail-sidebar-cta.tsx (reference for the pattern)

Metadata

Metadata

Labels

Stellar WaveIssues in the Stellar wave programbugSomething isn't workingcomponentfrontendFrontend development

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions