"use client"; import { CorrespondenceRevision } from "@/types/correspondence"; import { DataTable } from "@/components/common/data-table"; import { ColumnDef } from "@tanstack/react-table"; import { StatusBadge } from "@/components/common/status-badge"; import { Button } from "@/components/ui/button"; import { Eye, Edit, FileText } from "lucide-react"; import Link from "next/link"; import { format } from "date-fns"; interface CorrespondenceListProps { data: CorrespondenceRevision[]; } export function CorrespondenceList({ data }: CorrespondenceListProps) { const columns: ColumnDef[] = [ { accessorKey: "correspondence.correspondenceNumber", header: "Document No.", cell: ({ row }) => ( {row.original.correspondence?.correspondenceNumber} ), }, { accessorKey: "revisionLabel", header: "Rev", cell: ({ row }) => ( {row.original.revisionLabel || row.original.revisionNumber} ), }, { accessorKey: "title", header: "Subject", cell: ({ row }) => (
{row.original.title}
), }, { accessorKey: "correspondence.originator.organizationCode", header: "From", cell: ({ row }) => ( {row.original.correspondence?.originator?.organizationCode || '-'} ), }, { accessorKey: "createdAt", header: "Created", cell: ({ row }) => format(new Date(row.getValue("createdAt")), "dd MMM yyyy"), }, { accessorKey: "status.statusName", header: "Status", cell: ({ row }) => , }, { id: "actions", cell: ({ row }) => { const item = row.original; // Edit/View link goes to the DOCUMENT detail (correspondence.id) // Ideally we might pass ?revId=item.id to view specific revision, but detail page defaults to latest. // For editing, we edit the document. const docId = item.correspondence.id; const statusCode = item.status?.statusCode; return (
{statusCode === "DRAFT" && ( )}
); }, }, ]; return (
); }