Files
formbricks/apps/web/components/shared/AlertDialog.tsx
Joe 25b84102a7 Check for unsaved changes in Survey Editor before changing pages (#409)
* fix: remove environmentsNavbar on survey editor

* objects deep comparision utility function

* feat: confirm on window reload or close

* feat: confirm save on back

* feat: custom alert dialog

* remove radixui alert dialog

* replaced shadcn alert with new custom alert dialog

* fix: save button varient to darkCTA

* fix: moved beforeunload logic to surveymenubar

* fix: remove deepequal function

* installed lodash

* fix: survey not comparing on change

* fix: isqual import
2023-06-22 08:44:04 +02:00

46 lines
1.0 KiB
TypeScript

"use client";
import Modal from "@/components/shared/Modal";
import { Button } from "@formbricks/ui";
interface AlertDialogProps {
open: boolean;
setOpen: (open: boolean) => void;
confirmWhat: string;
onDiscard: () => void;
text?: string;
useSaveInsteadOfCancel?: boolean;
onSave?: () => void;
}
export default function AlertDialog({
open,
setOpen,
confirmWhat,
onDiscard,
text,
useSaveInsteadOfCancel = false,
onSave,
}: AlertDialogProps) {
return (
<Modal open={open} setOpen={setOpen} title={`Confirm ${confirmWhat}`}>
<p>{text || "Are you sure? This action cannot be undone."}</p>
<div className="my-4 space-x-2 text-right">
<Button variant="warn" onClick={onDiscard}>
Discard
</Button>
<Button
variant="darkCTA"
onClick={() => {
if (useSaveInsteadOfCancel && onSave) {
onSave();
}
setOpen(false);
}}>
{useSaveInsteadOfCancel ? "Save" : "Cancel"}
</Button>
</div>
</Modal>
);
}