aboutsummaryrefslogtreecommitdiffstats
path: root/packages/excalidraw/components/ActiveConfirmDialog.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/excalidraw/components/ActiveConfirmDialog.tsx')
-rw-r--r--packages/excalidraw/components/ActiveConfirmDialog.tsx35
1 files changed, 35 insertions, 0 deletions
diff --git a/packages/excalidraw/components/ActiveConfirmDialog.tsx b/packages/excalidraw/components/ActiveConfirmDialog.tsx
new file mode 100644
index 0000000..699fbc6
--- /dev/null
+++ b/packages/excalidraw/components/ActiveConfirmDialog.tsx
@@ -0,0 +1,35 @@
+import { actionClearCanvas } from "../actions";
+import { t } from "../i18n";
+import { atom, useAtom } from "../editor-jotai";
+import { useExcalidrawActionManager } from "./App";
+import ConfirmDialog from "./ConfirmDialog";
+
+export const activeConfirmDialogAtom = atom<"clearCanvas" | null>(null);
+
+export const ActiveConfirmDialog = () => {
+ const [activeConfirmDialog, setActiveConfirmDialog] = useAtom(
+ activeConfirmDialogAtom,
+ );
+ const actionManager = useExcalidrawActionManager();
+
+ if (!activeConfirmDialog) {
+ return null;
+ }
+
+ if (activeConfirmDialog === "clearCanvas") {
+ return (
+ <ConfirmDialog
+ onConfirm={() => {
+ actionManager.executeAction(actionClearCanvas);
+ setActiveConfirmDialog(null);
+ }}
+ onCancel={() => setActiveConfirmDialog(null)}
+ title={t("clearCanvasDialog.title")}
+ >
+ <p className="clear-canvas__content"> {t("alerts.clearReset")}</p>
+ </ConfirmDialog>
+ );
+ }
+
+ return null;
+};