'use client'; import { useParams, useRouter, useSearchParams } from 'next/navigation'; import { ArrowLeft } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { TicketDetailHeader } from './components/TicketDetailHeader'; import { TicketOverviewCardSkeleton, TicketOverviewHeaderSkeleton, } from './components/TicketOverviewSkeleton'; import { TicketClassActionsSkeleton, TicketClassContentSkeleton, } from './components/TicketClassDetailSkeleton'; import { TicketHistoryCard } from './components/TicketHistoryCard'; import { TicketOverviewCard } from './components/TicketOverviewCard'; import { TicketRepairReportCard } from './components/TicketRepairReportCard'; import { TicketStatusActions } from './components/TicketStatusActions'; import { TicketDefectClassTabs } from './components/TicketDefectClassTabs'; import { useTicketDetailEvents } from '../hooks/useTicketDetailEvents'; import { useTicketClassDetailQuery, useTicketOverviewQuery, } from '../hooks/useTicketQueries'; export default function TicketDetailPage() { const router = useRouter(); const searchParams = useSearchParams(); const { ticketId } = useParams() as { ticketId: string }; const defectClass = searchParams.get('defect_class') ?? undefined; const overviewQuery = useTicketOverviewQuery(ticketId); const classDetailQuery = useTicketClassDetailQuery(ticketId, defectClass); const overview = overviewQuery.data; const classDetail = classDetailQuery.data; const isClassDetailLoading = Boolean( defectClass && classDetailQuery.isLoading, ); useTicketDetailEvents(ticketId, defectClass, Boolean(ticketId)); if (overviewQuery.isError) { return (
Failed to load ticket.