"use client" import * as React from "react" import { type Table } from "@tanstack/react-table" import { Plus, Send, Download, FileSpreadsheet } from "lucide-react" import { toast } from "sonner" import { useRouter } from "next/navigation" import { useSession } from "next-auth/react" import { exportTableToExcel } from "@/lib/export" import { Button } from "@/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { BiddingListItem } from "@/db/schema" import { CreateBiddingDialog } from "./create-bidding-dialog" import { TransmissionDialog } from "./biddings-transmission-dialog" interface BiddingsTableToolbarActionsProps { table: Table paymentTermsOptions: Array<{code: string, description: string}> incotermsOptions: Array<{code: string, description: string}> } export function BiddingsTableToolbarActions({ table, paymentTermsOptions, incotermsOptions }: BiddingsTableToolbarActionsProps) { const router = useRouter() const { data: session } = useSession() const [isExporting, setIsExporting] = React.useState(false) const [isTransmissionDialogOpen, setIsTransmissionDialogOpen] = React.useState(false) const userId = session?.user?.id ? Number(session.user.id) : 1 // 선택된 입찰들 const selectedBiddings = React.useMemo(() => { return table .getFilteredSelectedRowModel() .rows .map(row => row.original) }, [table.getFilteredSelectedRowModel().rows]) // 업체선정이 완료된 입찰만 전송 가능 const canTransmit = selectedBiddings.length === 1 && selectedBiddings[0].status === 'vendor_selected' const handleExport = async () => { try { setIsExporting(true) await exportTableToExcel(table, { filename: "biddings", excludeColumns: ["select", "actions"], }) toast.success("입찰 목록이 성공적으로 내보내졌습니다.") } catch (error) { toast.error("내보내기 중 오류가 발생했습니다.") } finally { setIsExporting(false) } } return ( <>
{/* 신규 생성 */} {/* 전송하기 (업체선정 완료된 입찰만) */} {/* 개찰 (입찰 오픈) */} {/* {openEligibleBiddings.length > 0 && ( )} */} {/* Export */} 입찰 목록 내보내기
{/* 전송 다이얼로그 */} ) }