"use client" import * as React from "react" import { Loader, FileCheck } 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 { confirmDocuments } from "../service" interface ConfirmDocumentsDialogProps extends React.ComponentPropsWithoutRef { rfqId: number showTrigger?: boolean onSuccess?: () => void } export function ConfirmDocumentsDialog({ rfqId, showTrigger = true, onSuccess, ...props }: ConfirmDocumentsDialogProps) { const [isConfirmPending, startConfirmTransition] = React.useTransition() const isDesktop = useMediaQuery("(min-width: 640px)") function onConfirm() { startConfirmTransition(async () => { const result = await confirmDocuments(rfqId) if (!result.success) { toast.error(result.message) return } props.onOpenChange?.(false) toast.success(result.message) onSuccess?.() }) } if (isDesktop) { return ( {showTrigger ? ( ) : null} 문서를 확정하시겠습니까? 이 작업은 RFQ의 모든 첨부문서를 확정하고 상태를 "Doc. Confirmed"로 변경합니다. 확정 후에는 문서 수정이 제한될 수 있습니다. ) } return ( {showTrigger ? ( ) : null} 문서를 확정하시겠습니까? 이 작업은 RFQ의 모든 첨부문서를 확정하고 상태를 "Doc. Confirmed"로 변경합니다. 확정 후에는 문서 수정이 제한될 수 있습니다. ) }