import React, { useState, useCallback } from "react"; import { Dialog } from "../../packages/excalidraw/components/Dialog"; import { TextField } from "../../packages/excalidraw/components/TextField"; import { FilledButton } from "../../packages/excalidraw/components/FilledButton"; import { useSetAtom } from "jotai"; import { saveAsDialogAtom } from "../app-jotai"; import { useUIAppState } from "../../packages/excalidraw/context/ui-appState"; interface SaveAsDialogProps { onCanvasSaveAs: (name: string) => void; } export const SaveAsDialog: React.FC = ({ onCanvasSaveAs, }) => { const appState = useUIAppState(); const [name, setName] = useState(appState.name || "Untitled Canvas"); const setSaveAsDialog = useSetAtom(saveAsDialogAtom); const handleSaveAs = useCallback(() => { if (name.trim()) { onCanvasSaveAs(name.trim()); setSaveAsDialog({ isOpen: false }); } }, [name, onCanvasSaveAs, setSaveAsDialog]); const handleClose = useCallback(() => { setSaveAsDialog({ isOpen: false }); }, [setSaveAsDialog]); return (
e.key === "Enter" && handleSaveAs()} />
); };