'use client'; import { Transmittal } from '@/types/transmittal'; import { DataTable } from '@/components/common/data-table'; import { ColumnDef } from '@tanstack/react-table'; import { Button } from '@/components/ui/button'; import { Eye } from 'lucide-react'; import Link from 'next/link'; import { format } from 'date-fns'; import { Badge } from '@/components/ui/badge'; interface TransmittalListProps { data: Transmittal[]; } export function TransmittalList({ data }: TransmittalListProps) { if (!data) return null; const columns: ColumnDef[] = [ { id: 'transmittalNo', header: 'Transmittal No.', cell: ({ row }) => { const no = row.original.correspondence?.correspondenceNumber || row.original.transmittalNo || '-'; return {no}; }, }, { id: 'subject', header: 'Subject', cell: ({ row }) => { const currentRev = row.original.correspondence?.revisions?.find((r) => r.isCurrent); const subject = currentRev?.title || row.original.subject || '-'; return (
{subject}
); }, }, { accessorKey: 'purpose', header: 'Purpose', cell: ({ row }) => {row.getValue('purpose') || 'OTHER'}, }, { accessorKey: 'items', header: 'Items', cell: ({ row }) => { const items = row.original.items || []; return {items.length} items; }, }, { id: 'createdAt', header: 'Date', cell: ({ row }) => { const dateStr = row.original.correspondence?.createdAt || row.original.createdAt; if (!dateStr) return '-'; return format(new Date(dateStr), 'dd MMM yyyy'); }, }, { id: 'actions', cell: ({ row }) => { const item = row.original; return ( ); }, }, ]; return ; }