'use client'; import { useState } from 'react'; import { useParams } from 'next/navigation'; import { useTransmittal } from '@/hooks/use-transmittal'; import { useWorkflowHistory } from '@/hooks/use-workflow-history'; 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 { IntegratedBanner } from '@/components/workflow/integrated-banner'; import { WorkflowLifecycle } from '@/components/workflow/workflow-lifecycle'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; 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 [pendingAttachmentIds, setPendingAttachmentIds] = useState([]); const { transmittal, isLoading, error } = useTransmittal(uuid); const { data: workflowHistory, isLoading: historyLoading, error: historyError, } = useWorkflowHistory(transmittal?.workflowInstanceId); 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.
); } const transmittalDocNo = transmittal.correspondence?.correspondenceNumber ?? transmittal.transmittalNo ?? ''; const transmittalSubject = transmittal.subject ?? ''; const transmittalStatus = transmittal.workflowInstanceId ? (transmittal.workflowState ?? 'SUBMITTED') : 'DRAFT'; return (
{/* ADR-021: Integrated Banner — wired with live workflow data (v1.8.7) */} {/* Navigation Header */}
{/* Tabs — Details / Workflow */} รายละเอียด Workflow {/* 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 )}
{/* ADR-021: WorkflowLifecycle — wired with history data (v1.8.7) */}
); }