"use client"; import { ColumnDef } from "@tanstack/react-table"; import { DetailDwgReceiptItem } from "../actions"; import { formatDolceDateTime } from "../utils/date-formatter"; import { useState } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Edit } from "lucide-react"; // Comment Dialog Component function CommentDialog({ comment }: { comment: string }) { const [open, setOpen] = useState(false); return ( <> Comment

{comment || "코멘트가 없습니다."}

); } // 다국어 지원 컬럼 생성 함수 export function createDetailDrawingColumns( lng: string, // eslint-disable-next-line @typescript-eslint/no-explicit-any t: any, onEdit?: (detailDrawing: DetailDwgReceiptItem) => void ): ColumnDef[] { return [ { accessorKey: "RegisterSerialNo", header: t("detailDrawing.columns.serialNo"), minSize: 120, cell: ({ row }) => { const val = row.getValue("RegisterSerialNo") as number; const status = row.getValue("Status") as string; if (val === 0 || status === "EVCP Saved") { return
-
; } return
{val}
; }, }, { accessorKey: "DrawingRevNo", header: t("detailDrawing.columns.revNo"), minSize: 100, cell: ({ row }) => { return
{row.getValue("DrawingRevNo")}
; }, }, { accessorKey: "Status", header: t("detailDrawing.columns.status"), minSize: 120, cell: ({ row }) => { return
{row.getValue("Status")}
; }, }, { accessorKey: "CategoryENM", header: t("detailDrawing.columns.category"), minSize: 120, cell: ({ row }) => { // 항상 CategoryENM 필드를 보여줌 return
{row.getValue("CategoryENM")}
; }, }, // RegisterKind 로 DrawingUsage를 알 수 있으므로 주석 처리 // { // accessorKey: "DrawingUsage", // header: t("detailDrawing.columns.drawingUsage"), // minSize: 100, // cell: ({ row }) => { // // API 응답의 DrawingUsage는 코드값이므로 직접 매핑하여 번역 // const usageCode = row.getValue("DrawingUsage") as string; // const translated = translateDrawingUsage(usageCode, lng); // return
{translated}
; // }, // }, { accessorKey: "RegisterKindENM", header: t("detailDrawing.columns.registerKind"), minSize: 180, cell: ({ row }) => { // 항상 RegisterKindENM 필드를 보여줌 return
{row.getValue("RegisterKindENM") || row.original.RegisterKind}
; }, }, { accessorKey: "CreateUserNM", header: t("detailDrawing.columns.createdBy"), minSize: 150, cell: ({ row }) => { const userENM = row.original.CreateUserENM; const userNM = row.getValue("CreateUserNM") as string; // eslint-disable-next-line @typescript-eslint/no-explicit-any const localUserName = (row.original as any).userName; if (localUserName) return
{localUserName}
; return
{lng === "en" ? (userENM || userNM) : (userNM || userENM)}
; }, }, { accessorKey: "RegisterDesc", header: "Comment", minSize: 200, maxSize: 200, cell: ({ row }) => { const comment = row.getValue("RegisterDesc") as string; return ; }, }, { id: "actions", header: t("detailDrawing.columns.actions"), minSize: 100, cell: ({ row }) => { const status = row.getValue("Status") as string; const isEditable = status === "Standby"; return (
); }, }, { accessorKey: "CreateDt", header: t("detailDrawing.columns.createdAt"), minSize: 250, cell: ({ row }) => { const date = row.getValue("CreateDt") as string; return
{formatDolceDateTime(date)}
; }, }, ]; }