diff options
Diffstat (limited to 'lib/projects/table/projects-table-columns.tsx')
| -rw-r--r-- | lib/projects/table/projects-table-columns.tsx | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/lib/projects/table/projects-table-columns.tsx b/lib/projects/table/projects-table-columns.tsx index 6926429a..95eeae85 100644 --- a/lib/projects/table/projects-table-columns.tsx +++ b/lib/projects/table/projects-table-columns.tsx @@ -3,8 +3,10 @@ import * as React from "react" import { type DataTableRowAction } from "@/types/table" import { type ColumnDef } from "@tanstack/react-table" +import { Eye } from "lucide-react" import { formatDate } from "@/lib/utils" +import { Button } from "@/components/ui/button" import { DataTableColumnHeaderSimple } from "@/components/data-table/data-table-column-simple-header" import { Project } from "@/db/schema" @@ -12,13 +14,35 @@ import { projectsColumnsConfig } from "@/config/projectsColumnsConfig" interface GetColumnsProps { setRowAction: React.Dispatch<React.SetStateAction<DataTableRowAction<Project> | null>> + onDetailClick: (project: Project) => void } /** * tanstack table 컬럼 정의 (중첩 헤더 버전) */ -export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Project>[] { +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function getColumns({ setRowAction, onDetailClick }: GetColumnsProps): ColumnDef<Project>[] { + // 상세보기 버튼 컬럼 + const detailColumn: ColumnDef<Project> = { + id: "action", + header: "상세보기", + size: 100, + cell: ({ row }) => { + const project = row.original + return ( + <Button + variant="ghost" + size="sm" + onClick={() => onDetailClick(project)} + className="h-8 w-8 p-0" + > + <Eye className="h-4 w-4" /> + <span className="sr-only">상세보기</span> + </Button> + ) + }, + } // ---------------------------------------------------------------- // 3) 일반 컬럼들을 "그룹"별로 묶어 중첩 columns 생성 @@ -82,9 +106,10 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Project }) // ---------------------------------------------------------------- - // 4) 최종 컬럼 배열: select, nestedColumns, actions + // 4) 최종 컬럼 배열: detailColumn, nestedColumns // ---------------------------------------------------------------- return [ + detailColumn, ...nestedColumns, ] }
\ No newline at end of file |
