diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-17 10:50:52 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-17 10:50:52 +0000 |
| commit | 2ef02e27dbe639876fa3b90c30307dda183545ec (patch) | |
| tree | e132ae7f3dd774e1ce767291c2849be4a63ae762 /lib/tech-vendors/contacts-table/contact-table-columns.tsx | |
| parent | fb276ed3db86fe4fc0c0fcd870fd3d085b034be0 (diff) | |
(최겸) 기술영업 변경사항 적용
Diffstat (limited to 'lib/tech-vendors/contacts-table/contact-table-columns.tsx')
| -rw-r--r-- | lib/tech-vendors/contacts-table/contact-table-columns.tsx | 45 |
1 files changed, 13 insertions, 32 deletions
diff --git a/lib/tech-vendors/contacts-table/contact-table-columns.tsx b/lib/tech-vendors/contacts-table/contact-table-columns.tsx index fece5013..b8f4e7a2 100644 --- a/lib/tech-vendors/contacts-table/contact-table-columns.tsx +++ b/lib/tech-vendors/contacts-table/contact-table-columns.tsx @@ -4,48 +4,35 @@ import * as React from "react" import { type DataTableRowAction } from "@/types/table" import { type ColumnDef } from "@tanstack/react-table" import { Ellipsis } from "lucide-react" -import { toast } from "sonner" -import { getErrorMessage } from "@/lib/handle-error" import { formatDate } from "@/lib/utils" -import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Checkbox } from "@/components/ui/checkbox" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, - DropdownMenuRadioGroup, - DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" -import { DataTableColumnHeader } from "@/components/data-table/data-table-column-header" -import { VendorContact, vendors } from "@/db/schema/vendors" -import { modifyVendor } from "../service" +import { TechVendorContact } from "@/db/schema/techVendors" import { DataTableColumnHeaderSimple } from "@/components/data-table/data-table-column-simple-header" -import { vendorContactsColumnsConfig } from "@/config/vendorContactsColumnsConfig" - - - +import { techVendorContactsColumnsConfig } from "@/config/techVendorContactsColumnsConfig" interface GetColumnsProps { - setRowAction: React.Dispatch<React.SetStateAction<DataTableRowAction<VendorContact> | null>>; + setRowAction: React.Dispatch<React.SetStateAction<DataTableRowAction<TechVendorContact> | null>>; } /** * tanstack table 컬럼 정의 (중첩 헤더 버전) */ -export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorContact>[] { +export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<TechVendorContact>[] { // ---------------------------------------------------------------- // 1) select 컬럼 (체크박스) // ---------------------------------------------------------------- - const selectColumn: ColumnDef<VendorContact> = { + const selectColumn: ColumnDef<TechVendorContact> = { id: "select", header: ({ table }) => ( <Checkbox @@ -74,12 +61,10 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorC // ---------------------------------------------------------------- // 2) actions 컬럼 (Dropdown 메뉴) // ---------------------------------------------------------------- - const actionsColumn: ColumnDef<VendorContact> = { + const actionsColumn: ColumnDef<TechVendorContact> = { id: "actions", enableHiding: false, cell: function Cell({ row }) { - const [isUpdatePending, startUpdateTransition] = React.useTransition() - return ( <DropdownMenu> <DropdownMenuTrigger asChild> @@ -95,7 +80,6 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorC <DropdownMenuItem onSelect={() => { setRowAction({ row, type: "update" }) - }} > Edit @@ -118,10 +102,10 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorC // ---------------------------------------------------------------- // 3) 일반 컬럼들을 "그룹"별로 묶어 중첩 columns 생성 // ---------------------------------------------------------------- - // 3-1) groupMap: { [groupName]: ColumnDef<VendorContact>[] } - const groupMap: Record<string, ColumnDef<VendorContact>[]> = {} + // 3-1) groupMap: { [groupName]: ColumnDef<TechVendorContact>[] } + const groupMap: Record<string, ColumnDef<TechVendorContact>[]> = {} - vendorContactsColumnsConfig.forEach((cfg) => { + techVendorContactsColumnsConfig.forEach((cfg) => { // 만약 group가 없으면 "_noGroup" 처리 const groupName = cfg.group || "_noGroup" @@ -130,7 +114,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorC } // child column 정의 - const childCol: ColumnDef<VendorContact> = { + const childCol: ColumnDef<TechVendorContact> = { accessorKey: cfg.id, enableResizing: true, header: ({ column }) => ( @@ -142,19 +126,16 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorC type: cfg.type, }, cell: ({ row, cell }) => { - - if (cfg.id === "createdAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal, "KR") + return formatDate(dateVal) } if (cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal, "KR") + return formatDate(dateVal) } - // code etc... return row.getValue(cfg.id) ?? "" }, @@ -166,7 +147,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorC // ---------------------------------------------------------------- // 3-2) groupMap에서 실제 상위 컬럼(그룹)을 만들기 // ---------------------------------------------------------------- - const nestedColumns: ColumnDef<VendorContact>[] = [] + const nestedColumns: ColumnDef<TechVendorContact>[] = [] // 순서를 고정하고 싶다면 group 순서를 미리 정의하거나 sort해야 함 // 여기서는 그냥 Object.entries 순서 |
