import React, { useState } from 'react';
import { Head, Link, useForm } from '@inertiajs/react';
import AdminLayout from '@/Layouts/AdminLayout';
import {
ArrowLeft,
Clock,
CheckCircle,
AlertCircle,
Send,
Terminal,
User,
Mail,
LifeBuoy,
Shield,
Sparkles,
Loader2
} from 'lucide-react';
import axios from 'axios';
import { toast } from 'sonner';
export default function Show({ ticket, replies }) {
const replyForm = useForm({
message: '',
is_developer_response: false,
close_ticket: false,
});
const statusForm = useForm({
status: ticket.status,
});
const handleReplySubmit = (e) => {
e.preventDefault();
replyForm.post(`/admin/tickets/${ticket.id}/reply`, {
onSuccess: () => {
replyForm.reset('message', 'close_ticket');
toast.success('Reply posted successfully.');
}
});
};
const handleStatusChange = (newStatus) => {
statusForm.setData('status', newStatus);
statusForm.post(`/admin/tickets/${ticket.id}/status`, {
onSuccess: () => {
toast.success('Ticket status updated successfully.');
}
});
};
const getStatusColor = (status) => {
switch (status) {
case 'open': return 'bg-blue-50 text-blue-700 border-blue-200';
case 'in_progress': return 'bg-amber-50 text-amber-700 border-amber-200';
case 'resolved': return 'bg-emerald-50 text-emerald-700 border-emerald-200';
case 'closed': return 'bg-slate-100 text-slate-600 border-slate-200';
default: return 'bg-slate-50 text-slate-600';
}
};
return (
Respond directly to the customer as admin or software developer.
This ticket has been marked closed. Change status above to reopen and reply.
User account information associated with ticket