diff --git a/frontend/src/pages/Editor.tsx b/frontend/src/pages/Editor.tsx index 69ebc51..d31593c 100644 --- a/frontend/src/pages/Editor.tsx +++ b/frontend/src/pages/Editor.tsx @@ -526,11 +526,34 @@ export const Editor: React.FC = () => { // Disable native Excalidraw save dialogs // UIOptions is now defined outside the component + const handleBackClick = async () => { + // Save drawing and generate preview before navigating + if (excalidrawAPI.current && saveDataRef.current && savePreviewRef.current) { + const elements = excalidrawAPI.current.getSceneElementsIncludingDeleted(); + const appState = excalidrawAPI.current.getAppState(); + const files = excalidrawAPI.current.getFiles() || {}; + latestElementsRef.current = elements; + latestFilesRef.current = files; + + try { + // Save both drawing data and preview + await Promise.all([ + saveDataRef.current(elements, appState), + savePreviewRef.current(elements, appState, files) + ]); + console.log("[Editor] Saved on back navigation", { drawingId: id }); + } catch (err) { + console.error('Failed to save on back navigation', err); + } + } + navigate('/'); + }; + return (