import { t } from "../i18n"; import type { DialogProps } from "./Dialog"; import { Dialog } from "./Dialog"; import "./ConfirmDialog.scss"; import DialogActionButton from "./DialogActionButton"; import { useSetAtom } from "jotai"; import { isLibraryMenuOpenAtom } from "./LibraryMenu"; import { useExcalidrawContainer, useExcalidrawSetAppState } from "./App"; import { jotaiScope } from "../jotai"; interface Props extends Omit { onConfirm: () => void; onCancel: () => void; confirmText?: string; cancelText?: string; } const ConfirmDialog = (props: Props) => { const { onConfirm, onCancel, children, confirmText = t("buttons.confirm"), cancelText = t("buttons.cancel"), className = "", ...rest } = props; const setAppState = useExcalidrawSetAppState(); const setIsLibraryMenuOpen = useSetAtom(isLibraryMenuOpenAtom, jotaiScope); const { container } = useExcalidrawContainer(); return ( {children}
{ setAppState({ openMenu: null }); setIsLibraryMenuOpen(false); onCancel(); container?.focus(); }} /> { setAppState({ openMenu: null }); setIsLibraryMenuOpen(false); onConfirm(); container?.focus(); }} actionType="danger" />
); }; export default ConfirmDialog;