8551823da9
* feat: update jotai in excalidraw package * feat: update jotai in excalidraw-app * fix: exports from excalidraw/jotai * fix: use isolated react hooks * test: use jotai provider in <Trans /> test * remove unused package * refactor & make safer --------- Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
46 lines
997 B
TypeScript
46 lines
997 B
TypeScript
import { atom, editorJotaiStore } from "../../editor-jotai";
|
|
import type React from "react";
|
|
|
|
export type OverwriteConfirmState =
|
|
| {
|
|
active: true;
|
|
title: string;
|
|
description: React.ReactNode;
|
|
actionLabel: string;
|
|
color: "danger" | "warning";
|
|
|
|
onClose: () => void;
|
|
onConfirm: () => void;
|
|
onReject: () => void;
|
|
}
|
|
| { active: false };
|
|
|
|
export const overwriteConfirmStateAtom = atom<OverwriteConfirmState>({
|
|
active: false,
|
|
});
|
|
|
|
export async function openConfirmModal({
|
|
title,
|
|
description,
|
|
actionLabel,
|
|
color,
|
|
}: {
|
|
title: string;
|
|
description: React.ReactNode;
|
|
actionLabel: string;
|
|
color: "danger" | "warning";
|
|
}) {
|
|
return new Promise<boolean>((resolve) => {
|
|
editorJotaiStore.set(overwriteConfirmStateAtom, {
|
|
active: true,
|
|
onConfirm: () => resolve(true),
|
|
onClose: () => resolve(false),
|
|
onReject: () => resolve(false),
|
|
title,
|
|
description,
|
|
actionLabel,
|
|
color,
|
|
});
|
|
});
|
|
}
|