diff --git a/components/canvas/CanvasChatPanel.tsx b/components/canvas/CanvasChatPanel.tsx index 0d32e143c..e9fb48a26 100644 --- a/components/canvas/CanvasChatPanel.tsx +++ b/components/canvas/CanvasChatPanel.tsx @@ -1338,6 +1338,7 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF const addNode = useCanvasStore((state) => state.addNode); const updateNode = useCanvasStore((state) => state.updateNode); const nodes = useCanvasStore((state) => state.nodes); + const projectTitle = useCanvasStore((state) => state.projectTitle); const selectedNodeIds = useCanvasStore((state) => state.selectedNodeIds); const clearSelection = useCanvasStore((state) => state.clearSelection); const pendingChatAttachments = useCanvasStore((state) => state.pendingChatAttachments); @@ -4988,10 +4989,30 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF toast.success("已切换聊天窗口"); }, [activeChatId]); + const activeSessionTitle = useMemo(() => { + const current = chatSessions.find((session) => session.id === activeChatId); + return String(current?.title || "").trim(); + }, [chatSessions, activeChatId]); + + const displayCanvasName = useMemo(() => { + if (activeSessionTitle) return activeSessionTitle; + const fallbackTitle = String(projectTitle || "").trim(); + return fallbackTitle || "未命名画布"; + }, [activeSessionTitle, projectTitle]); + return (