import { useState } from 'react' import axios from 'axios' import { ticketsApi } from '@/api/tickets' import { toast } from '@/lib/toast' import type { PSATicketSearchResult, PSATicketStatusItem } from '@/types/integrations' import type { PSATicketStatusUpdate } from '@/types/tickets' interface Props { ticket: PSATicketSearchResult currentStatusId: number | null currentStatusName: string | null statuses: PSATicketStatusItem[] onStatusUpdated: (ticketId: number, newStatus: string, newStatusId: number) => void } export function TicketDetailHeader({ ticket, currentStatusId, currentStatusName, statuses, onStatusUpdated }: Props) { const [updating, setUpdating] = useState(false) async function handleStatusChange(statusId: number) { if (!ticket.id) return setUpdating(true) try { const result: PSATicketStatusUpdate = await ticketsApi.updateStatus(Number(ticket.id), statusId) onStatusUpdated(result.ticket_id, result.new_status, result.new_status_id) toast.success(`Status updated to ${result.new_status}`) } catch (err) { const detail = axios.isAxiosError(err) ? (err.response?.data as { detail?: string })?.detail : undefined toast.error(detail || 'Failed to update status') } finally { setUpdating(false) } } return (
{ticket.company_name}
)}