import React, { useState } from 'react'; import { Head, router } from '@inertiajs/react'; import AdminLayout from '@/Layouts/AdminLayout'; import { ShieldAlert, AlertTriangle, CheckCircle, XCircle, Filter, Flag, Eye, Plus, UserX, Settings, FileText, MessageSquare } from 'lucide-react'; import { Badge } from '@/components/ui/badge'; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; export default function SafetyHub({ reports, rules, moderation_queue }) { const [selectedReport, setSelectedReport] = useState(null); const [isDialogOpen, setIsDialogOpen] = useState(false); const [resolutionAction, setResolutionAction] = useState('warn'); const [adminNotes, setAdminNotes] = useState(''); const handleResolve = (e) => { e.preventDefault(); router.post(`/admin/safety/reports/${selectedReport.id}/resolve`, { action: resolutionAction, admin_notes: adminNotes }, { onSuccess: () => { setIsDialogOpen(false); } }); }; const handleModQueue = (id, action) => { router.post(`/admin/safety/reports/${id}/resolve`, { action }, { onSuccess: () => { setIsDialogOpen(false); } }); }; return (
{/* Header Row */}

Trust & Safety Escalation Center

Manage user abuse reports, content moderation queues, and customize automatic fraud filters.

{/* Column 1 & 2: Abuse Reports & Content Queue */}
{/* Section 1: Abuse Reports */}

Active Incident Reports

Escalated complaints filed by employers or workers

{reports?.length || 0} Open Tickets
{reports.map((report) => (
{report.severity} Severity {report.id} Reporter: {report.reporter}

{report.reason}

{report.description}

Reported User: {report.reported_user}
{report.created_at}
))}
{/* Section 2: Content Moderation Queue */}

Profile Content Vetting Queue

Bio updates or pictures flagged for manual review

{moderation_queue.map((item) => (
{item.id} • {item.type} {item.user} {item.flag}
{item.content.startsWith('http') ? ( Flagged asset ) : item.content}
))}
{/* Column 3: Auto-Flag Detection Rules */}

Auto-Detection Rules

Parameters triggering system automated flags

{rules.map((rule) => (
{rule.name} {rule.status}

{rule.trigger}

))}
{/* Keyword Abuse escalating info */}
Direct Chat Abuse Triggered Logs

System triggered 14 keyword warning notices to employers for sharing email/phone details in chats prior to hiring offer completions today.

{/* Investigation Dialog Modal */} Incident Investigation: {selectedReport?.id}
{selectedReport?.reason}

{selectedReport?.description}