"use client";
import * as React from "react";
import { Button } from "@/components/ui/button";
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from "@/components/ui/dialog";
import { Drawer, DrawerTrigger, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, DrawerFooter, DrawerClose } from "@/components/ui/drawer";
import { Trash, Loader } from "lucide-react";
import { useMediaQuery } from "@/hooks/use-media-query";
import { deleteGeneralEvaluations } from "@/lib/general-check-list/service";
import { toast } from "sonner";
import { useRouter } from "next/navigation";
export function DeleteEvaluationsDialog({
evaluations,
showTrigger = true,
onSuccess,
...props
}: {
evaluations: { id: number; serialNumber: string }[];
showTrigger?: boolean;
onSuccess?: () => void;
open?: boolean;
onOpenChange?: (v: boolean) => void;
}) {
const [pending, startTransition] = React.useTransition();
const isDesktop = useMediaQuery("(min-width:640px)");
const router = useRouter();
const deleteText = evaluations.length === 1 ? "항목" : "항목들";
const handleDelete = () => {
startTransition(async () => {
const res = await deleteGeneralEvaluations(evaluations.map((e) => e.id));
if (res.success) {
toast.success(res.message);
router.refresh();
props.onOpenChange?.(false);
onSuccess?.();
} else {
toast.error(res.message);
}
});
};
const Content = (
<>
삭제 확인
선택된 {evaluations.length}개의 {deleteText}을(를) 삭제합니다. 이 작업은 되돌릴 수 없습니다.
>
);
if (isDesktop) {
return (
);
}
// Mobile Drawer
return (
{showTrigger && (
)}
삭제 확인
선택된 {evaluations.length}개의 {deleteText}을(를) 삭제합니다. 이 작업은 되돌릴 수 없습니다.
);
}