"use client"; import { useState } from "react"; import { CompanyDeleteState } from "@/types/company"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, } from "@/components/ui/dialog"; import { LoadingSpinner } from "@/components/common/LoadingSpinner"; import { AlertTriangle } from "lucide-react"; interface CompanyDeleteDialogProps { deleteState: CompanyDeleteState; isLoading: boolean; error: string | null; onClose: () => void; onConfirm: () => Promise; onClearError: () => void; } /** * 회사 삭제 확인 다이얼로그 컴포넌트 */ export function CompanyDeleteDialog({ deleteState, isLoading, error, onClose, onConfirm, onClearError, }: CompanyDeleteDialogProps) { const [isDeleting, setIsDeleting] = useState(false); // 다이얼로그가 열려있지 않으면 렌더링하지 않음 if (!deleteState.isOpen || !deleteState.targetCompany) return null; const { targetCompany } = deleteState; // 삭제 확인 처리 const handleConfirm = async () => { setIsDeleting(true); onClearError(); try { const success = await onConfirm(); if (success) { // 성공 시 다이얼로그 닫기 onClose(); } } catch (err) { // 에러는 부모 컴포넌트에서 처리 } finally { setIsDeleting(false); } }; // 취소 처리 const handleCancel = () => { onClearError(); onClose(); }; return ( 회사 삭제 확인 선택한 회사를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.
{/* 삭제할 회사 정보 표시 */}
회사명 {targetCompany.company_name}
회사 코드 {targetCompany.company_code}
등록자 {targetCompany.writer}
등록일 {new Date(targetCompany.regdate).toLocaleDateString("ko-KR", { year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", })}
{/* 경고 메시지 */} {/*

삭제 시 주의사항

• 해당 회사와 연관된 모든 데이터가 함께 삭제될 수 있습니다.
• 삭제된 데이터는 복구할 수 없습니다.
• 신중하게 검토 후 진행해주세요.

*/} {/* 에러 메시지 */} {error && (

{error}

)}
); }