"use client"; import { format } from "date-fns"; import { ko } from "date-fns/locale"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { Eye, Download } from "lucide-react"; import { useRouter } from "next/navigation"; import { complianceSurveyTemplates } from "@/db/schema/compliance"; interface ComplianceResponsesListProps { template: typeof complianceSurveyTemplates.$inferSelect; responses: Array<{ id: number; basicContractId: number; templateId: number; status: string; completedAt: Date | null; reviewedBy: number | null; reviewedAt: Date | null; reviewNotes: string | null; createdAt: Date; updatedAt: Date; answersCount: number; }>; } export function ComplianceResponsesList({ template, responses }: ComplianceResponsesListProps) { const router = useRouter(); const getStatusBadge = (status: string) => { switch (status) { case "COMPLETED": return 완료; case "IN_PROGRESS": return 진행중; case "REVIEWED": return 검토완료; default: return {status}; } }; if (responses.length === 0) { return (

아직 응답이 없습니다.

); } return (
응답 ID 계약 ID 상태 답변 수 완료일 검토일 생성일 작업 {responses.map((response) => ( #{response.id} {response.basicContractId} {getStatusBadge(response.status)} {response.answersCount}개 {response.completedAt ? format(new Date(response.completedAt), 'yyyy-MM-dd HH:mm', { locale: ko }) : "-" } {response.reviewedAt ? format(new Date(response.reviewedAt), 'yyyy-MM-dd HH:mm', { locale: ko }) : "-" } {response.createdAt ? format(new Date(response.createdAt), 'yyyy-MM-dd HH:mm', { locale: ko }) : "-" }
{response.status === "COMPLETED" && ( )}
))}
); }