From 89274bffa596ffdfc4275fb8d11cdb02ff9a2d02 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Mon, 13 Oct 2025 00:22:54 +0000 Subject: (최겸) 기술영업 import 수정 2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../table/contact-possible-items-table.tsx | 203 +++++++++++---------- 1 file changed, 102 insertions(+), 101 deletions(-) (limited to 'lib/contact-possible-items/table') diff --git a/lib/contact-possible-items/table/contact-possible-items-table.tsx b/lib/contact-possible-items/table/contact-possible-items-table.tsx index 3828e26c..a46f71ea 100644 --- a/lib/contact-possible-items/table/contact-possible-items-table.tsx +++ b/lib/contact-possible-items/table/contact-possible-items-table.tsx @@ -1,102 +1,103 @@ -"use client" - -import React from "react" -import { DataTable } from "@/components/data-table/data-table" -import { ContactPossibleItemsTableToolbarActions } from "./contact-possible-items-table-toolbar-actions" -import { getColumns } from "./contact-possible-items-table-columns" -import { ContactPossibleItemDetail } from "../service" -import { DeleteContactPossibleItemsDialog } from "./delete-contact-possible-items-dialog" -import { useDataTable } from "@/hooks/use-data-table" -import { DataTableAdvancedToolbar } from "@/components/data-table/data-table-advanced-toolbar" -import { type DataTableAdvancedFilterField } from "@/types/table" - -// 필터 필드 정의 -const advancedFilterFields: DataTableAdvancedFilterField[] = [ - { - id: "contactName", - label: "담당자명", - type: "text", - placeholder: "담당자명으로 검색...", - }, - { - id: "vendorName", - label: "벤더명", - type: "text", - placeholder: "벤더명으로 검색...", - }, - { - id: "vendorCode", - label: "벤더코드", - type: "text", - placeholder: "벤더코드로 검색...", - }, - { - id: "itemCode", - label: "아이템코드", - type: "text", - placeholder: "아이템코드로 검색...", - }, - { - id: "workType", - label: "공종", - type: "text", - placeholder: "공종으로 검색...", - }, -] - -interface ContactPossibleItemsTableProps { - contactPossibleItemsPromise: Promise<{ - data: ContactPossibleItemDetail[] - pageCount: number - total: number - }> -} - -export function ContactPossibleItemsTable({ - contactPossibleItemsPromise, -}: ContactPossibleItemsTableProps) { - const { data, pageCount, total } = React.use(contactPossibleItemsPromise) - - const [rowAction, setRowAction] = React.useState(null) - - const columns = React.useMemo( - () => getColumns({ setRowAction }), - [setRowAction] - ) - - const { table } = useDataTable({ - data, - columns, - pageCount, - rowCount: total, - }) - - return ( -
- {/* 메인 테이블 */} - - - - - - - setRowAction(null)} - contactPossibleItems={ - rowAction?.type === "delete" && rowAction.row - ? [rowAction.row.original] - : [] - } - showTrigger={false} - onSuccess={() => setRowAction(null)} - /> -
- ) +"use client" + +import React from "react" +import { DataTable } from "@/components/data-table/data-table" +import { ContactPossibleItemsTableToolbarActions } from "./contact-possible-items-table-toolbar-actions" +import { getColumns } from "./contact-possible-items-table-columns" +import { ContactPossibleItemDetail } from "../service" +import { DeleteContactPossibleItemsDialog } from "./delete-contact-possible-items-dialog" +import { useDataTable } from "@/hooks/use-data-table" +import { DataTableAdvancedToolbar } from "@/components/data-table/data-table-advanced-toolbar" +import { type DataTableAdvancedFilterField } from "@/types/table" + +// 필터 필드 정의 +const advancedFilterFields: DataTableAdvancedFilterField[] = [ + { + id: "contactName", + label: "담당자명", + type: "text", + placeholder: "담당자명으로 검색...", + }, + { + id: "vendorName", + label: "벤더명", + type: "text", + placeholder: "벤더명으로 검색...", + }, + { + id: "vendorCode", + label: "벤더코드", + type: "text", + placeholder: "벤더코드로 검색...", + }, + { + id: "itemCode", + label: "아이템코드", + type: "text", + placeholder: "아이템코드로 검색...", + }, + { + id: "workType", + label: "공종", + type: "text", + placeholder: "공종으로 검색...", + }, +] + +interface ContactPossibleItemsTableProps { + promises: Promise< + [ + Awaited> + ] + > +} + +export function ContactPossibleItemsTable({ + promises, +}: ContactPossibleItemsTableProps) { + const [{ data, pageCount, total }] = React.use(promises) + + const [rowAction, setRowAction] = React.useState(null) + + const columns = React.useMemo( + () => getColumns({ setRowAction }), + [setRowAction] + ) + + const { table } = useDataTable({ + data, + columns, + pageCount, + rowCount: total, + enableAdvancedFilter: true, + }) + + return ( +
+ {/* 메인 테이블 */} + + + + + + + setRowAction(null)} + contactPossibleItems={ + rowAction?.type === "delete" && rowAction.row + ? [rowAction.row.original] + : [] + } + showTrigger={false} + onSuccess={() => setRowAction(null)} + /> +
+ ) } \ No newline at end of file -- cgit v1.2.3