mirror of
https://github.com/formbricks/formbricks.git
synced 2026-01-06 13:49:54 -06:00
56 lines
1.3 KiB
TypeScript
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>
|
|
);
|
|
};
|