fix(canvas): retain prompt visibility for selected canvas nodes after generation

This commit is contained in:
HouYunFei
2026-07-28 10:15:53 +08:00
parent bde33e7816
commit 6aa9c8bddc
3 changed files with 5 additions and 3 deletions
@@ -37,11 +37,11 @@ export function CanvasNodePromptPanel({ node, isRunning, onPromptChange, onConfi
const hasTextContent = node.type === CanvasNodeType.Text && Boolean(node.metadata?.content?.trim());
const hasImageContent = node.type === CanvasNodeType.Image && Boolean(node.metadata?.content);
const isEditingExistingContent = hasTextContent || hasImageContent;
const [prompt, setPrompt] = useState(isEditingExistingContent ? "" : node.metadata?.prompt || "");
const [prompt, setPrompt] = useState(node.metadata?.prompt || "");
// 仅在切换到其它节点时重置输入框;同一节点生成完成后(内容写回自身导致 isEditingExistingContent 变化)保留用户输入
// 仅在切换到其它节点时恢复对应提示词;同一节点生成完成后继续保留当前输入
useEffect(() => {
setPrompt(isEditingExistingContent ? "" : node.metadata?.prompt || "");
setPrompt(node.metadata?.prompt || "");
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [node.id]);