import React, { useState } from 'react'; import { Head, router } from '@inertiajs/react'; import AdminLayout from '@/Layouts/AdminLayout'; import { Scale, MessageSquare, Download, BadgeDollarSign, AlertCircle, CheckCircle, FileText, ArrowRight, ArrowUpRight, User, ShieldCheck, Send } from 'lucide-react'; import { Badge } from '@/components/ui/badge'; export default function DisputesHub({ tickets }) { const [selectedTicket, setSelectedTicket] = useState(tickets[0] || null); // Notes / Resolution states const [internalNote, setInternalNote] = useState(''); const [resolutionAction, setResolutionAction] = useState('refund_employer'); const [resolutionSummary, setResolutionSummary] = useState(''); const handleAddNote = (e) => { e.preventDefault(); if (!internalNote.trim()) return; router.post(`/admin/disputes/${selectedTicket.id}/add-note`, { note: internalNote }, { onSuccess: () => { if (selectedTicket) { selectedTicket.admin_notes += "\n• " + internalNote; } setInternalNote(''); } }); }; const handleResolve = (e) => { e.preventDefault(); router.post(`/admin/disputes/${selectedTicket.id}/resolve`, { resolution: resolutionSummary, action_taken: resolutionAction }, { onSuccess: () => { if (selectedTicket) { selectedTicket.status = 'Resolved'; } } }); }; return (
{/* Header Row */}

Contract & Payment Dispute Resolution Center

Audit employer-worker chat history transcripts, review visa fee dispute receipts, and settle escrow refund transfers.

{/* Column 1: Disputes List */}
Open Dispute Tickets
{tickets.map((ticket) => (
setSelectedTicket(ticket)} className={`p-4 rounded-xl border cursor-pointer transition-all ${ selectedTicket?.id === ticket.id ? 'bg-emerald-50/50 border-[#0F6E56] shadow-sm' : 'bg-white border-slate-100 hover:bg-slate-50' }`} >
{ticket.id} {ticket.status}

{ticket.subject}

AED {ticket.amount_aed} {ticket.created_at}
))}
{/* Column 2: Audit Logs & Chat Logs */}
{selectedTicket ? (
{/* Chat Log Audit */}

Direct Chat logs Transcript

Official authenticated conversation audit log

{/* Conversation thread */}
{selectedTicket.chat_logs.map((log, i) => { const isEmployer = log.sender === 'Employer'; return (
{log.sender} • {log.time}

{log.message}

); })}
Logs Digitally Secured by UAE Vetting Compliance
{/* Evidence & Resolution Tools */}
{/* Evidence Files */}

Evidence Files

{selectedTicket.evidence?.length > 0 ? (
{selectedTicket.evidence.map((file, i) => (
{file.name} ({file.type}) View File
))}
) : (

No attachment proofs uploaded.

)}
{/* Admin Notes */}

Internal Compliance Notes

{selectedTicket.admin_notes}

setInternalNote(e.target.value)} />
{/* Resolution Form */} {selectedTicket.status !== 'Resolved' && (

Settle Ticket Resolution

Submit official dispute settlement outcome