Files
Minikura/apps/web/components/confirm-dialog.tsx
T

47 lines
1.1 KiB
TypeScript

import { Button } from "@/components/ui/button";
import {
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
type ConfirmDialogProps = {
open: boolean;
title: string;
description: React.ReactNode;
confirmLabel: string;
onConfirm: () => void | Promise<void>;
onOpenChange: (open: boolean) => void;
};
export function ConfirmDialog({
open,
title,
description,
confirmLabel,
onConfirm,
onOpenChange,
}: ConfirmDialogProps) {
return (
<Dialog open={open} onOpenChange={onOpenChange}>
<DialogContent>
<DialogHeader>
<DialogTitle>{title}</DialogTitle>
<DialogDescription>{description}</DialogDescription>
</DialogHeader>
<DialogFooter>
<Button variant="outline" onClick={() => onOpenChange(false)}>
Cancel
</Button>
<Button variant="destructive" onClick={onConfirm}>
{confirmLabel}
</Button>
</DialogFooter>
</DialogContent>
</Dialog>
);
}