From 53493bbf476607233a5a9b012ec60144e3667bfe Mon Sep 17 00:00:00 2001 From: Tanish Manku Date: Mon, 25 Aug 2025 14:41:06 -0700 Subject: [PATCH] Clear edit mode when model doesn't support mask --- .../apps/editor3d/app/src/pages/PageEdit/PageEdit.tsx | 9 +++++++-- .../editor3d/app/src/pages/PageEdit/stores/EditState.ts | 9 ++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/frontend/apps/editor3d/app/src/pages/PageEdit/PageEdit.tsx b/frontend/apps/editor3d/app/src/pages/PageEdit/PageEdit.tsx index 9fa373d227..30afe3a030 100644 --- a/frontend/apps/editor3d/app/src/pages/PageEdit/PageEdit.tsx +++ b/frontend/apps/editor3d/app/src/pages/PageEdit/PageEdit.tsx @@ -20,7 +20,7 @@ import { ModelSelector, useModelSelectorStore, } from "@storyteller/ui-model-selector"; -import { getModelByLabel, lookupModelByTauriId, ModelInfo } from "@storyteller/model-list"; +import { lookupModelByTauriId, ModelInfo } from "@storyteller/model-list"; import { useImageEditCompleteEvent } from "@storyteller/tauri-events"; import { HistoryStack, ImageBundle } from "./HistoryStack"; import { ModelTag } from "libs/model-list/src/lib/ModelTag"; @@ -265,7 +265,12 @@ const PageEdit = () => { const modelConfig = lookupModelByTauriId(selectedModelInfo!.tauri_id); const supportsMaskedInpainting = modelConfig?.tags?.includes(ModelTag.MaskedInpainting) ?? false; - console.log("Model supports instructive edit:", supportsMaskedInpainting); + + if (!supportsMaskedInpainting && (store.activeTool !== "select" || store.lineNodes.length > 0)) { + // TODO: Implement a new mode for unsupported masking and hide the nodes layer instead of clearing + store.setActiveTool("select"); + store.clearLineNodes(); + } /* * diff --git a/frontend/apps/editor3d/app/src/pages/PageEdit/stores/EditState.ts b/frontend/apps/editor3d/app/src/pages/PageEdit/stores/EditState.ts index 282fc9978f..d6731c1b04 100644 --- a/frontend/apps/editor3d/app/src/pages/PageEdit/stores/EditState.ts +++ b/frontend/apps/editor3d/app/src/pages/PageEdit/stores/EditState.ts @@ -810,7 +810,14 @@ export const useEditStore = create((set, get, store) => ({ }, // Toolbar actions - setActiveTool: (tool: ActiveEditTool) => set({ activeTool: tool }), + setActiveTool: (tool: ActiveEditTool) => { + // Avoid triggering state change if the tool is same + if (tool === get().activeTool) { + return; + } + + set({ activeTool: tool }) + }, setEditOperation: (mode: EditOperation) => set({ editOperation: mode }), setBrushColor: (color: string) => set({ brushColor: color }), setBrushSize: (size: number) => set({ brushSize: size }),