From 36dd60ca6fce7712b35e6d7c1b9602710f442ada Mon Sep 17 00:00:00 2001 From: dujinkim Date: Wed, 28 May 2025 12:26:28 +0000 Subject: (최겸) 기술영업 해양 rfq 개발v1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/tbe-tech/table/tbe-table-toolbar-actions.tsx | 68 ++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 lib/tbe-tech/table/tbe-table-toolbar-actions.tsx (limited to 'lib/tbe-tech/table/tbe-table-toolbar-actions.tsx') diff --git a/lib/tbe-tech/table/tbe-table-toolbar-actions.tsx b/lib/tbe-tech/table/tbe-table-toolbar-actions.tsx new file mode 100644 index 00000000..d3502032 --- /dev/null +++ b/lib/tbe-tech/table/tbe-table-toolbar-actions.tsx @@ -0,0 +1,68 @@ +"use client" + +import * as React from "react" +import { type Table } from "@tanstack/react-table" +import { Download } from "lucide-react" +import { toast } from "sonner" +import { useRouter } from "next/navigation" + +import { exportTableToExcel } from "@/lib/export" +import { Button } from "@/components/ui/button" + +import { InviteVendorsDialog } from "@/lib/rfqs-tech/tbe-table/invite-vendors-dialog" +import { VendorWithTbeFields } from "@/config/vendorTbeColumnsConfig" + +interface VendorsTableToolbarActionsProps { + table: Table + rfqId: number +} + +export function VendorsTableToolbarActions({ table, rfqId }: VendorsTableToolbarActionsProps) { + const router = useRouter() + + const invitationPossibleVendors = React.useMemo(() => { + const selectedRows = table.getSelectedRowModel().rows; + const vendors = selectedRows.map(row => row.original); + + const rfqIds = new Set(vendors.map(vendor => vendor.rfqId)); + if (rfqIds.size > 1) { + toast.error("동일한 rfq에 대해 초대가 가능합니다"); + return []; + } + + return vendors.filter(vendor => vendor.technicalResponseStatus === null); + }, [table.getSelectedRowModel().rows]); + + const selectedRfqId = invitationPossibleVendors[0]?.rfqId ?? 0; + console.log("selectedRfqId", selectedRfqId) + + return ( +
+ {invitationPossibleVendors.length > 0 && ( + { + table.toggleAllRowsSelected(false); + router.refresh(); + }} + showTrigger={true} + /> + )} + +
+ ) +} \ No newline at end of file -- cgit v1.2.3