"use client" import * as React from "react" import { useRouter } from "next/navigation" import { Trash2, FileText } from "lucide-react" import { toast } from "sonner" import { Button } from "@/components/ui/button" import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "@/components/ui/dialog" import { disposeTemplates } from "../actions" import { AddGeneralContractTemplateDialog } from "./add-general-contract-template-dialog" interface GeneralContractTemplateToolbarActionsProps { selectedRows?: any[] onSelectionChange?: (selectedRows: any[]) => void } export function GeneralContractTemplateToolbarActions({ selectedRows = [], onSelectionChange }: GeneralContractTemplateToolbarActionsProps) { const router = useRouter() const [isModifyOpen, setIsModifyOpen] = React.useState(false) const [isDisposeOpen, setIsDisposeOpen] = React.useState(false) const [isContractStatusOpen, setIsContractStatusOpen] = React.useState(false) // 폐기 버튼 클릭 const handleDispose = () => { if (selectedRows.length === 0) { toast.error("폐기할 문서를 선택해주세요.") return } setIsDisposeOpen(true) } // 계약현황 버튼 클릭 const handleContractStatus = () => { if (selectedRows.length === 0) { toast.error("확인할 문서를 선택해주세요.") return } if (selectedRows.length > 1) { toast.error("한 번에 하나의 문서만 확인할 수 있습니다.") return } // 일반계약관리 페이지로 이동 router.push(`/evcp/general-contracts`) } // 실제 폐기 처리 const handleConfirmDispose = async () => { try { // 폐기할 템플릿 ID들 추출 const templateIds = selectedRows.map(row => row.id) // Server Action 호출 const result = await disposeTemplates(templateIds) toast.success(result.message) setIsDisposeOpen(false) // 페이지 새로고침 또는 테이블 업데이트 window.location.reload() } catch (error) { console.error('폐기 처리 오류:', error) toast.error(error instanceof Error ? error.message : "폐기 처리 중 오류가 발생했습니다.") } } return ( <>