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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions