"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 id = params.id as string; const { data: transmittal, isLoading, error } = useQuery({ queryKey: ["transmittal", id], queryFn: () => transmittalService.getById(id), enabled: !!id, }); 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.transmittalNo}

{transmittal.subject}

{/* Info Card */} Transmittal Information

Purpose

{transmittal.purpose || "OTHER"}

Date

{format(new Date(transmittal.createdAt), "dd MMM yyyy")}

Generated From

{transmittal.correspondence ? ( {transmittal.correspondence.correspondence_number} ) : ( - )}
{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 )}
); }