Skip to content

feat: add dispute resolution submission form with evidence upload (Closes #32) - #41

Open
waterWang wants to merge 1 commit into
workman-labs:devfrom
waterWang:feat/dispute-resolution-form-32
Open

feat: add dispute resolution submission form with evidence upload (Closes #32)#41
waterWang wants to merge 1 commit into
workman-labs:devfrom
waterWang:feat/dispute-resolution-form-32

Conversation

@waterWang

Copy link
Copy Markdown

Description

Implements a Dispute Resolution Submission Form with Evidence Upload — a self-contained form page at /dispute that lets users file a dispute against a booking.

New components

Component Description
DisputeForm.tsx Main form with structured fields: dispute reason (select), description (textarea with char counter), desired resolution, appointment ID, contact email
EvidenceDropzone.tsx Multi-file evidence upload using react-dropzone — supports images, PDF, and TXT files, up to 10 files at 10 MB each
Textarea.tsx New reusable UI component in components/ui/
Select.tsx Added error prop support for validation display

Key features

  • Client-side validation: yup schema with react-hook-form — all fields validated before submission
  • Multi-file evidence upload: drag & drop or click to select (images, PDF, TXT), per-file cards with remove button, size display, and limit enforcement
  • Progress feedback: submitting spinner, success state with reference ID, error banner with retry
  • Responsive: matches the existing design system (navy/gold/terra/sand/ink, rounded cards, Inter font)
  • Accessible: focus-visible outlines, aria labels on remove buttons, semantic form structure

Verification

  • npm run typecheck — passes (0 errors)
  • npm run lint — passes (0 errors, 9 pre-existing warnings)
  • npm run build — passes, /dispute statically generated

Closes #32

…oses workman-labs#32)

- New DisputeForm component with structured fields: dispute reason, description, desired resolution, contact email
- New EvidenceDropzone component for multi-file evidence upload (images, PDF, TXT)
- Client-side validation with yup + react-hook-form
- Progress feedback with submitting/success/error states
- Responsive design matching the existing design system (navy/gold/terra/sand/ink)
- New /dispute route in Next.js App Router
- Textarea UI component extracted for reuse
- Select error prop support added
@vercel

vercel Bot commented Aug 1, 2026

Copy link
Copy Markdown

@waterWang is attempting to deploy a commit to the Meshack Yaro 's projects Team on Vercel.

A member of the Team first needs to authorize it.

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.

Dispute Resolution Submission Form with Evidence Upload

1 participant