From 2e6f9d52bbc1855c2c7127a876c0e960be1e98f1 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 1 Feb 2026 18:13:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8F=91=E9=80=81=E5=90=8E=E6=B8=85?= =?UTF-8?q?=E7=A9=BA=E9=80=89=E4=B8=AD=E7=8A=B6=E6=80=81=E5=92=8C=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E6=A1=86=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- components/canvas/CanvasChatPanel.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/components/canvas/CanvasChatPanel.tsx b/components/canvas/CanvasChatPanel.tsx index d3f3e81..fe8ae06 100644 --- a/components/canvas/CanvasChatPanel.tsx +++ b/components/canvas/CanvasChatPanel.tsx @@ -105,6 +105,7 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF const addNode = useCanvasStore((state) => state.addNode); const nodes = useCanvasStore((state) => state.nodes); const selectedNodeIds = useCanvasStore((state) => state.selectedNodeIds); + const clearSelection = useCanvasStore((state) => state.clearSelection); // 获取纯 UUID(去掉 canvas- 前缀)用于 API 调用 const rawChatId = chatId.startsWith('canvas-') @@ -533,12 +534,16 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF setInput(""); setAttachments([]); + // 🆕 清空画布选中状态(防止 useEffect 重新添加标签) + clearSelection(); + // 🆕 清空 contenteditable div 的内容 const editableDiv = textareaRef.current as HTMLDivElement | null; - if (editableDiv && editableDiv.isContentEditable) { + if (editableDiv) { editableDiv.innerHTML = ''; + console.log('[CanvasChat] 已清空输入框和选中状态'); } - }, [input, attachments, selectedModelId, sendMessage, getRecentImageUrls]); + }, [input, attachments, selectedModelId, sendMessage, getRecentImageUrls, clearSelection]); // 处理文件选择 - 上传后立即添加到画布 const handleFileSelect = async (e: React.ChangeEvent) => {