import React, { useState } from 'react'; import { Head, Link } from '@inertiajs/react'; import EmployerLayout from '../../../Layouts/EmployerLayout'; import { useTranslation } from '../../../lib/LanguageContext'; import { LifeBuoy, Plus, Search, Clock, CheckCircle, AlertCircle, HelpCircle, ArrowRight, MessageSquare } from 'lucide-react'; export default function Index({ tickets }) { const { t } = useTranslation(); const [searchQuery, setSearchQuery] = useState(''); const [statusFilter, setStatusFilter] = useState('all'); const filteredTickets = tickets.filter(ticket => { const matchesSearch = ticket.subject.toLowerCase().includes(searchQuery.toLowerCase()) || ticket.ticket_number.toLowerCase().includes(searchQuery.toLowerCase()); const matchesStatus = statusFilter === 'all' || ticket.status === statusFilter; return matchesSearch && matchesStatus; }); const getStatusBadge = (status) => { switch (status) { case 'open': return ( {t('ticket_status_open', 'Open')} ); case 'in_progress': return ( {t('ticket_status_in_progress', 'In Progress')} ); case 'resolved': return ( {t('ticket_status_resolved', 'Resolved')} ); case 'closed': return ( {t('ticket_status_closed', 'Closed')} ); default: return ( {status} ); } }; const getPriorityBadge = (priority) => { switch (priority) { case 'high': return ( {t('priority_high', 'High')} ); case 'medium': return ( {t('priority_medium', 'Medium')} ); case 'low': return ( {t('priority_low', 'Low')} ); default: return {priority}; } }; return (
{/* Support Intro Banner */}
{t('customer_care_center', 'Customer Care & Tech Support')}

{t('how_can_we_help', 'How can we help you today?')}

{t('support_description', 'Raise a ticket for billing queries, technical glitches, or safety concerns. Our senior engineering and operations teams respond promptly.')}

{t('create_new_ticket', 'Create New Ticket')}
{/* Filters & search */}
setSearchQuery(e.target.value)} className="w-full pl-10 pr-4 py-2 text-xs font-semibold border border-slate-200 rounded-xl bg-slate-50/50 outline-none focus:border-[#185FA5] transition-colors" />
{['all', 'open', 'in_progress', 'resolved', 'closed'].map((status) => ( ))}
{/* Tickets list */}
{filteredTickets.length > 0 ? (
{filteredTickets.map((ticket) => (
{ticket.ticket_number} {ticket.reason && ( {ticket.reason} )} {getPriorityBadge(ticket.priority)}

{ticket.subject}

{t('created_on', 'Created:')} {ticket.created_at} {t('updated_on', 'Updated:')} {ticket.updated_at}
{getStatusBadge(ticket.status)}
))}
) : (

{t('no_tickets_found', 'No support tickets found')}

{t('no_tickets_found_desc', 'If you are experiencing any billing or login issues, click the button above to raise a ticket.')}

)}
{/* FAQ section */}

{t('frequently_asked_questions', 'Frequently Asked Questions')}

{t('faq_q1', 'How long does a ticket resolution take?')}

{t('faq_a1', 'For priority high tickets, our engineering support response is typically under 2 hours. General queries resolve within 24 hours.')}

{t('faq_q2', 'What is Tadbeer contract compliance?')}

{t('faq_a2', 'All worker hirings conform to MOHRE Tadbeer rules. Contracts are electronically generated and uploaded for review.')}

); }