From e0dfb55c5457aec489fc084c4567e791b4c65eb1 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Wed, 26 Mar 2025 00:37:41 +0000 Subject: 3/25 까지의 대표님 작업사항 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/ui/action-dialog.tsx | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 components/ui/action-dialog.tsx (limited to 'components/ui/action-dialog.tsx') diff --git a/components/ui/action-dialog.tsx b/components/ui/action-dialog.tsx new file mode 100644 index 00000000..9927bcc5 --- /dev/null +++ b/components/ui/action-dialog.tsx @@ -0,0 +1,54 @@ +"use client" + +import * as React from "react" +import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogClose } from "@/components/ui/dialog" +import { Button } from "@/components/ui/button" +import { Loader } from "lucide-react" + +interface ActionConfirmDialogProps { + open: boolean + onOpenChange: (open: boolean) => void + title: string + description?: string + confirmLabel?: string + confirmVariant?: "default" | "destructive" | "outline" | "secondary" | "ghost" + onConfirm: () => Promise | void + isLoading?: boolean +} + +export function ActionConfirmDialog({ + open, + onOpenChange, + title, + description, + confirmLabel = "Confirm", + confirmVariant = "destructive", + onConfirm, + isLoading, +}: ActionConfirmDialogProps) { + return ( + + + + {title} + {description ? {description} : null} + + + + + + + + + + ) +} \ No newline at end of file -- cgit v1.2.3