import React from 'react'; import { Head, Link, useForm } from '@inertiajs/react'; import EmployerLayout from '../../../Layouts/EmployerLayout'; import { useTranslation } from '../../../lib/LanguageContext'; import { ArrowLeft, Clock, CheckCircle, AlertCircle, CornerDownRight, Send, Terminal, UserCheck, Lock, UploadCloud, X, Volume2 } from 'lucide-react'; export default function Show({ ticket, replies }) { const { t } = useTranslation(); const { data, setData, post, processing, reset, errors } = useForm({ message: '', voice_note: null, }); const handleSubmit = (e) => { e.preventDefault(); post(`/employer/support/${ticket.id}/reply`, { onSuccess: () => reset('message', 'voice_note'), }); }; 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 (
{/* Back button */} {t('back_to_support', 'Back to Help & Support')} {/* Ticket main card */}
{ticket.ticket_number} {getPriorityBadge(ticket.priority)} {getStatusBadge(ticket.status)}
{t('raised_on', 'Raised on:')} {ticket.created_at}
{ticket.reason && (
Support Category: {ticket.reason}
)}

{ticket.subject}

{ticket.description}
{ticket.voice_note_url && (
)}
{/* Replies header */}

{t('ticket_replies', 'Discussion History')} ({replies.length})

{/* Replies list */}
{replies.map((reply) => { const isSystemDev = reply.is_developer_response; const isAdmin = reply.is_admin; return (
{isSystemDev ? (
) : (
{reply.sender_name.charAt(0)}
)} {reply.sender_name}
{reply.created_at}
{reply.message && (
{reply.message}
)} {reply.voice_note_url && (
)}
); })} {replies.length === 0 && (
{t('no_replies_yet', 'No replies posted yet. Our team is investigating.')}
)}
{/* Reply Form */} {ticket.status !== 'closed' ? (

{t('post_a_reply', 'Post a Reply')}

{t('post_a_reply_desc', 'Need to add info or follow up? Type your response below.')}