From d91e67a5adfb2ccca17c0e61e05d0047259c08bf Mon Sep 17 00:00:00 2001 From: HouYunFei <1844025705@qq.com> Date: Mon, 20 Jul 2026 11:34:46 +0800 Subject: [PATCH] feat(canvas): retain prompt input after node generation completion --- CHANGELOG.md | 1 + web/src/components/canvas/canvas-node-prompt-panel.tsx | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e01537..cca1ee9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ + [新增] 左侧画布面板新增「提示词库」Tab,按来源折叠分组。 + [修复] 处于「提示词库/资产」Tab 时拖动画布元素卡顿,面板内容不再随节点更新重渲染。 + [新增] 提示词来源增加自定义脚本抓取功能、支持新增来源。 ++ [优化] 画布节点生成完成后,输入框保留提示词内容,不再自动清空。 ## v0.9.0 - 2026-07-17 diff --git a/web/src/components/canvas/canvas-node-prompt-panel.tsx b/web/src/components/canvas/canvas-node-prompt-panel.tsx index 6aa83ad..3bc55dc 100644 --- a/web/src/components/canvas/canvas-node-prompt-panel.tsx +++ b/web/src/components/canvas/canvas-node-prompt-panel.tsx @@ -39,9 +39,11 @@ export function CanvasNodePromptPanel({ node, isRunning, onPromptChange, onConfi const isEditingExistingContent = hasTextContent || hasImageContent; const [prompt, setPrompt] = useState(isEditingExistingContent ? "" : node.metadata?.prompt || ""); + // 仅在切换到其它节点时重置输入框;同一节点生成完成后(内容写回自身导致 isEditingExistingContent 变化)保留用户输入 useEffect(() => { setPrompt(isEditingExistingContent ? "" : node.metadata?.prompt || ""); - }, [isEditingExistingContent, node.id]); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [node.id]); const updatePrompt = (value: string) => { setPrompt(value); @@ -52,7 +54,6 @@ export function CanvasNodePromptPanel({ node, isRunning, onPromptChange, onConfi const text = prompt.trim(); if (!text || isRunning) return; onGenerate(node.id, mode, text); - setPrompt(""); }; return (