'use client'; import { useParams } from 'next/navigation'; import { useQuery } from '@tanstack/react-query'; import { transmittalService } from '@/lib/services/transmittal.service'; import { Transmittal } from '@/types/transmittal'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import { ArrowLeft, RefreshCw, Printer } from 'lucide-react'; import Link from 'next/link'; import { format } from 'date-fns'; import { toast } from 'sonner'; export default function TransmittalDetailPage() { const params = useParams(); const uuid = params.uuid as string; const { data: transmittal, isLoading, error, } = useQuery({ queryKey: ['transmittal', uuid], queryFn: () => transmittalService.getByUuid(uuid), enabled: !!uuid, }); const handlePrint = () => { toast.info('PDF Export is coming soon...'); // TODO: Implement PDF download }; if (isLoading) { return (
); } if (error || !transmittal) { return (
Failed to load transmittal details.
); } return (
{/* Header */}

{transmittal.correspondence?.correspondenceNumber || transmittal.transmittalNo}

{transmittal.correspondence?.revisions?.find((r) => r.isCurrent)?.title || transmittal.subject}

{/* Info Card */} Transmittal Information

Purpose

{transmittal.purpose || 'OTHER'}

Date

{format(new Date(transmittal.correspondence?.createdAt || transmittal.createdAt), 'dd MMM yyyy')}

Generated From

{transmittal.correspondence ? ( {transmittal.correspondence.correspondenceNumber} ) : ( - )}
{transmittal.remarks && (

Remarks

{transmittal.remarks}

)}
{/* Items Table */} Documents Type Document ID/No. Description {transmittal.items?.map((item, idx) => ( {item.itemType} {item.documentNumber || `ID: ${item.itemId}`} {item.description || '-'} ))} {(!transmittal.items || transmittal.items.length === 0) && ( No items in this transmittal )}
); }