"use client" import * as React from "react" import { type RfqDetailView } from "./rfq-detail-column" import { type Row } from "@tanstack/react-table" import { Loader, Trash } from "lucide-react" import { toast } from "sonner" import { useMediaQuery } from "@/hooks/use-media-query" import { Button } from "@/components/ui/button" import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog" import { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, } from "@/components/ui/drawer" import { deleteRfqDetail } from "@/lib/procurement-rfqs/services" interface DeleteRfqDetailDialogProps extends React.ComponentPropsWithoutRef { detail: RfqDetailView | null showTrigger?: boolean onSuccess?: () => void } export function DeleteVendorDialog({ detail, showTrigger = true, onSuccess, ...props }: DeleteRfqDetailDialogProps) { const [isDeletePending, startDeleteTransition] = React.useTransition() const isDesktop = useMediaQuery("(min-width: 640px)") function onDelete() { if (!detail) return startDeleteTransition(async () => { try { const result = await deleteRfqDetail(detail.id) if (!result.success) { toast.error(result.message || "삭제 중 오류가 발생했습니다") return } props.onOpenChange?.(false) toast.success("RFQ 벤더 정보가 삭제되었습니다") onSuccess?.() } catch (error) { console.error("RFQ 벤더 삭제 오류:", error) toast.error("삭제 중 오류가 발생했습니다") } }) } if (isDesktop) { return ( {showTrigger ? ( ) : null} 정말로 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다. 벤더 "{detail?.vendorName}"({detail?.vendorCode})의 RFQ 정보가 영구적으로 삭제됩니다. ) } return ( {showTrigger ? ( ) : null} 정말로 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다. 벤더 "{detail?.vendorName}"({detail?.vendorCode})의 RFQ 정보가 영구적으로 삭제됩니다. ) }