diff --git a/components/ui/modal/confirm-dialog.tsx b/components/ui/modal/confirm-dialog.tsx new file mode 100644 index 0000000..9e27cd7 --- /dev/null +++ b/components/ui/modal/confirm-dialog.tsx @@ -0,0 +1,79 @@ +"use client" + +import { Loader2 } from "lucide-react" +import { cn } from "@/lib/utils" +import { Modal } from "./modal" + +export interface ConfirmDialogProps { + open: boolean + onClose: () => void + onConfirm: () => void + title?: string + message?: string + confirmLabel?: string + cancelLabel?: string + variant?: "default" | "destructive" + loading?: boolean + children?: React.ReactNode +} + +export function ConfirmDialog({ + open, + onClose, + onConfirm, + title = "Confirm", + message, + confirmLabel = "Confirm", + cancelLabel = "Cancel", + variant = "default", + loading = false, + children, +}: ConfirmDialogProps) { + return ( + {} : onClose} + title={title} + size="sm" + showCloseButton={!loading} + > +
+ {message && ( +

{message}

+ )} + {children} +
+ + +
+
+
+ ) +} diff --git a/components/ui/modal/index.ts b/components/ui/modal/index.ts index 9398d4e..7ff1a08 100644 --- a/components/ui/modal/index.ts +++ b/components/ui/modal/index.ts @@ -1 +1,2 @@ export { Modal } from "./modal" +export { ConfirmDialog } from "./confirm-dialog"