Files
formbricks-formbricks/packages/ui/DeleteDialog/index.tsx
2024-06-27 08:53:47 +00:00

56 lines
1.3 KiB
TypeScript

"use client";
import { Button } from "../Button";
import { Modal } from "../Modal";
interface DeleteDialogProps {
open: boolean;
setOpen: (open: boolean) => void;
deleteWhat: string;
onDelete: () => void;
text?: string;
isDeleting?: boolean;
isSaving?: boolean;
useSaveInsteadOfCancel?: boolean;
onSave?: () => void;
children?: React.ReactNode;
disabled?: boolean;
}
export const DeleteDialog = ({
open,
setOpen,
deleteWhat,
onDelete,
text,
isDeleting,
isSaving,
useSaveInsteadOfCancel = false,
onSave,
children,
disabled,
}: DeleteDialogProps) => {
return (
<Modal open={open} setOpen={setOpen} title={`Delete ${deleteWhat}`}>
<p>{text || "Are you sure? This action cannot be undone."}</p>
<div>{children}</div>
<div className="mt-4 space-x-2 text-right">
<Button
loading={isSaving}
variant="secondary"
onClick={() => {
if (useSaveInsteadOfCancel && onSave) {
onSave();
}
setOpen(false);
}}>
{useSaveInsteadOfCancel ? "Save" : "Cancel"}
</Button>
<Button variant="warn" onClick={onDelete} loading={isDeleting} disabled={disabled}>
Delete
</Button>
</div>
</Modal>
);
};