"use client" import * as React from "react" import { type Row } from "@tanstack/react-table" import { Loader, Trash } from "lucide-react" 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 type { PQList } from "./pq-lists-columns" interface DeletePqListsDialogProps extends React.ComponentPropsWithoutRef { pqLists: Row["original"][] showTrigger?: boolean onSuccess?: () => void } export function DeletePqListsDialog({ pqLists, showTrigger = true, onSuccess, ...props }: DeletePqListsDialogProps) { const [isDeletePending, startDeleteTransition] = React.useTransition() const isDesktop = useMediaQuery("(min-width: 640px)") function onDelete() { startDeleteTransition(async () => { // 상위 컴포넌트에서 삭제 로직을 처리하도록 콜백 호출 props.onOpenChange?.(false) onSuccess?.() }) } if (isDesktop) { return ( {showTrigger ? ( ) : null} 정말로 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다. 선택한{" "} {pqLists.length}개의 PQ 목록이 영구적으로 삭제됩니다.
삭제 시 해당 PQ 목록의 모든 하위 항목들도 함께 삭제됩니다.
) } return ( {showTrigger ? ( ) : null} 정말로 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다. 선택한{" "} {pqLists.length}개의 PQ 목록이 영구적으로 삭제됩니다.
삭제 시 해당 PQ 목록의 모든 하위 항목들도 함께 삭제됩니다.
) }