"use client" import * as React from "react" import { type Table } from "@tanstack/react-table" import { Download, Upload } from "lucide-react" import { toast } from "sonner" import { exportTableToExcel } from "@/lib/export" import { Button } from "@/components/ui/button" import { InviteVendorsDialog } from "./invite-vendors-dialog" import { VendorWithTbeFields } from "@/config/vendorTbeColumnsConfig" interface VendorsTableToolbarActionsProps { table: Table rfqId: number } export function VendorsTableToolbarActions({ table,rfqId }: VendorsTableToolbarActionsProps) { // 파일 input을 숨기고, 버튼 클릭 시 참조해 클릭하는 방식 const fileInputRef = React.useRef(null) // 파일이 선택되었을 때 처리 function handleImportClick() { // 숨겨진 요소를 클릭 fileInputRef.current?.click() } // 선택된 행이 있는 경우 rfqId 확인 const uniqueRfqIds = table.getFilteredSelectedRowModel().rows.length > 0 ? [...new Set(table.getFilteredSelectedRowModel().rows.map(row => row.original.rfqId))] : []; const hasMultipleRfqIds = uniqueRfqIds.length > 1; const invitationPossibeVendors = React.useMemo(() => { return table .getFilteredSelectedRowModel() .rows .map(row => row.original) .filter(vendor => vendor.technicalResponseStatus === null); }, [table.getFilteredSelectedRowModel().rows]); return (
{invitationPossibeVendors.length > 0 && ( table.toggleAllRowsSelected(false)} hasMultipleRfqIds={hasMultipleRfqIds} /> )}
) }