Skip to content

feat: wire up raise dispute dialog on mobile CTA - #299

Merged
Benjtalkshow merged 1 commit into
boundlessfi:mainfrom
Godfrey-Delight:feat/mobile-raise-dispute-cta
Jun 28, 2026
Merged

feat: wire up raise dispute dialog on mobile CTA#299
Benjtalkshow merged 1 commit into
boundlessfi:mainfrom
Godfrey-Delight:feat/mobile-raise-dispute-cta

Conversation

@Godfrey-Delight

@Godfrey-Delight Godfrey-Delight commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Replaced the permanently-disabled "Coming Soon" placeholder in bounty-detail-mobile-cta.tsx with a working Raise Dispute button by importing RaiseDisputeDialog and useState, adding a disputeDialogOpen state variable, and wiring the button's onClick to open the dialog. Dropped the disabled prop and "Coming Soon" text, kept the Gavel icon and canRaiseDispute gate, and rendered alongside the existing dialogs. Mobile users can now open the dialog, pick a reason, submit, see a toast, and redirect.
Closed #293

Summary by CodeRabbit

  • New Features
    • Added a mobile “Raise a Dispute” action on bounty details.
    • Users can now open a dispute dialog directly from the mobile CTA instead of seeing a coming-soon button.

Replaced the permanently-disabled "Coming Soon" placeholder in bounty-detail-mobile-cta.tsx with a working Raise Dispute button by importing RaiseDisputeDialog and useState, adding a disputeDialogOpen state variable, and wiring the button's onClick to open the dialog. Dropped the disabled prop and "Coming Soon" text, kept the Gavel icon and canRaiseDispute gate, and rendered <RaiseDisputeDialog> alongside the existing dialogs — mobile users can now open the dialog, pick a reason, submit, see a toast, and redirect.
Closed boundlessfi#293
@vercel

vercel Bot commented Jun 27, 2026

Copy link
Copy Markdown

@Godfrey-Delight is attempting to deploy a commit to the Threadflow Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jun 27, 2026

Copy link
Copy Markdown

@Godfrey-Delight 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

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Mobile bounty detail CTA now opens the existing Raise Dispute dialog instead of showing a disabled “Coming Soon” button. Local state controls the dialog open state and passes the bounty ID into the dialog.

Changes

Mobile Raise Dispute CTA

Layer / File(s) Summary
Mobile dispute dialog wiring
components/bounty-detail/bounty-detail-mobile-cta.tsx
Adds local dialog state, imports RaiseDisputeDialog, replaces the disabled mobile dispute placeholder with an enabled button, and renders the dialog with open, onOpenChange, and bounty.id.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant "bounty-detail-mobile-cta.tsx"
  participant RaiseDisputeDialog

  User->>"bounty-detail-mobile-cta.tsx": tap "Raise a Dispute"
  "bounty-detail-mobile-cta.tsx"->>"bounty-detail-mobile-cta.tsx": setDisputeDialogOpen(true)
  "bounty-detail-mobile-cta.tsx"->>RaiseDisputeDialog: render open=true and bountyId
  RaiseDisputeDialog-->>User: show dispute dialog
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

  • Issue 280 — Adds coverage for the same mobile Raise Dispute button/dialog interaction that this PR wires up.

Possibly related PRs

  • boundlessfi/bounties#241 — Updates the same mobile CTA file to replace the disabled dispute placeholder with an active dialog flow.
  • boundlessfi/bounties#256 — Implements the dispute dialog and supporting API flow that this mobile CTA now invokes.
  • boundlessfi/bounties#268 — Restores the hook behavior used by the dispute dialog flow that the mobile CTA opens.

Suggested reviewers

  • Benjtalkshow

Poem

🐰 I tapped the button, bright and true,
and up popped disputes, fresh as dew.
A hop, a click, a dialog bloom—
no more “coming soon” in the room!
Hooray for mobile, swift and spry 🥕

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: wiring the raise dispute dialog into the mobile CTA.
Linked Issues check ✅ Passed The changes match #293 by adding dialog state, enabling the mobile button, and rendering RaiseDisputeDialog.
Out of Scope Changes check ✅ Passed The PR is narrowly scoped to the mobile dispute CTA and does not introduce unrelated changes.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@components/bounty-detail/bounty-detail-mobile-cta.tsx`:
- Around line 198-203: The mobile CTA is mounting a second RaiseDisputeDialog
instance, and raise-dispute-dialog.tsx currently uses hard-coded field IDs,
which creates duplicate DOM IDs when both desktop and hidden mobile dialogs
exist. Update RaiseDisputeDialog to generate instance-scoped IDs per dialog
instance and wire those IDs through the label/input/textarea associations, then
keep the bounty-detail-mobile-cta.tsx reuse as-is. Use the RaiseDisputeDialog
component and its dispute-reason / dispute-description fields as the main places
to fix.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e4b75ac8-affe-4d7a-b2f7-2acfc2edc3b2

📥 Commits

Reviewing files that changed from the base of the PR and between 9e5dc91 and 82b7002.

📒 Files selected for processing (1)
  • components/bounty-detail/bounty-detail-mobile-cta.tsx

Comment thread components/bounty-detail/bounty-detail-mobile-cta.tsx

@Benjtalkshow Benjtalkshow left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean implementation matching the desktop sidebar pattern, all 3 local CI
checks (lint, tsc, build) pass and the diff covers every acceptance
criterion in #293. Mirror of the existing wiring at bounty-detail-sidebar-
cta.tsx, with mt-2 instead of a Separator which is the right call for
mobile. Please attach a screenshot of the mobile CTA on a bounty in
IN_PROGRESS/UNDER_REVIEW state showing the enabled Raise a Dispute button,
plus one of the RaiseDisputeDialog opened from the mobile view. Once those
land, ready to merge.

@Godfrey-Delight

Copy link
Copy Markdown
Contributor Author
image image

Hi @Benjtalkshow, the production site currently has no active bounties in IN_PROGRESS or UNDER_REVIEW state, and the local app requires env credentials I don't have access to. I've verified the implementation matches the desktop sidebar pattern exactly. Happy to provide screenshots as soon as a bounty in the required state is available, or if you can point me to a test environment I can use.

@Benjtalkshow
Benjtalkshow merged commit 9a8ef40 into boundlessfi:main Jun 28, 2026
4 of 5 checks passed
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.

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

2 participants