From 04a7275143bd03eb2e6cbf73c4d25e6c314d651e Mon Sep 17 00:00:00 2001 From: syntaxbullet Date: Sun, 5 Jul 2026 09:38:59 +0200 Subject: [PATCH] refactor(App): streamline generate tool state management --- view/App.tsx | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/view/App.tsx b/view/App.tsx index cbfae84..ee2b9ee 100644 --- a/view/App.tsx +++ b/view/App.tsx @@ -29,21 +29,23 @@ export function App({ app }: AppProps) { const viewportActivityIsland = useViewportActivityIsland(viewport); const imageImport = useImageImport(app.store); const [layersOpen, setLayersOpen] = useState(false); - const [generateOpen, setGenerateOpen] = useState(false); const previousGenerateTool = useRef("select"); const transformTarget = transformSession?.target ?? selectedTransformTarget(document, selection); const activeArtboard = document.artboards.find((artboard) => artboard.id === selection.artboardId) ?? document.artboards[0]; + const generateOpen = tools.activeTool === "generate"; + + useEffect(() => { + if (tools.activeTool !== "generate") previousGenerateTool.current = tools.activeTool; + }, [tools.activeTool]); const openGenerate = useCallback(() => { const activeTool = app.store.getState().editor.tools.activeTool; if (activeTool !== "generate") previousGenerateTool.current = activeTool; app.store.dispatch(commandIds.toolSetActive, { tool: "generate" }); setLayersOpen(false); - setGenerateOpen(true); }, [app.store]); const closeGenerate = useCallback(() => { - setGenerateOpen(false); if (app.store.getState().editor.tools.activeTool === "generate") { app.store.dispatch(commandIds.toolSetActive, { tool: previousGenerateTool.current }); } @@ -80,12 +82,6 @@ export function App({ app }: AppProps) { const key = event.key.toLowerCase(); const keybindEvent = keybindEventFromKeyboardEvent(event); - if (key === "g") { - toggleGenerate(); - event.preventDefault(); - return; - } - const toolConsumed = handleToolKey({ event: keybindEvent, dispatch: app.store.dispatch }); if (toolConsumed) { event.preventDefault();