"use client" import * as React from "react" import { type Table } from "@tanstack/react-table" import { EyeIcon, EditIcon, FileXIcon, PrinterIcon, } from "lucide-react" import { Button } from "@/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip" import { toast } from "sonner" import { VendorPO } from "./types" interface VendorPOToolbarActionsProps { table: Table selectedRows: number[] onAction: (poId: number, action: string) => Promise onViewItems?: (po: VendorPO) => void } export function VendorPOToolbarActions({ table, selectedRows, onAction, onViewItems }: VendorPOToolbarActionsProps) { const hasSelectedRow = selectedRows.length === 1 const selectedPO = hasSelectedRow ? table.getRowModel().rows.find(row => selectedRows.includes(row.original.id))?.original : null const handleToolbarAction = async (action: string) => { if (!hasSelectedRow || !selectedPO) { toast.error("먼저 PO를 선택해주세요.") return } // view-items 액션은 특별히 처리 if (action === "view-items") { if (onViewItems) { onViewItems(selectedPO) } return } await onAction(selectedPO.id, action) } return (
{/* 주요 액션 버튼들 */} {/* 선택된 PO에 대한 PCR을 생성합니다 상세품목 현황을 확인합니다 */} {/* 승인 관련 액션 */} {/* {selectedPO?.contractStatus !== "승인완료" && ( 선택된 계약을 승인합니다 )} {selectedPO?.contractStatus === "승인완료" && ( 승인을 취소합니다 )} */} {/* 더 많은 액션 드롭다운 */} {/* 계약 관련 handleToolbarAction("contract-detail")} disabled={!hasSelectedRow} > 계약상세 handleToolbarAction("po-note")} disabled={!hasSelectedRow} > PO Note handleToolbarAction("price-index")} disabled={!hasSelectedRow} > 연동표입력 handleToolbarAction("reject-contract")} disabled={!hasSelectedRow} className="text-red-600 focus:text-red-600" > 계약거절 handleToolbarAction("print-contract")} disabled={!hasSelectedRow} > 계약서출력 */}
) }