feat: show canvas/chat title in canvas panel header
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled

This commit is contained in:
Your Name 2026-02-21 06:01:46 +08:00
parent cf1f431208
commit d8443c2bfc

View File

@ -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 (
<div className="relative flex h-full min-h-0 flex-col bg-background/50 backdrop-blur-sm">
{/* Header - Minimal with Icons */}
<div className="z-20 ml-auto p-4 flex flex-col items-end gap-2">
<div className="z-20 flex items-start justify-between gap-3 p-4 pb-2">
<div className="min-w-0 flex-1 pr-2">
<h2
className="truncate text-[20px] font-semibold leading-tight tracking-tight text-[#111827]"
title={displayCanvasName}
>
{displayCanvasName}
</h2>
</div>
<div className="flex shrink-0 flex-col items-end gap-2">
<div className="flex items-center gap-1">
<Button
variant="ghost"
@ -5081,6 +5102,7 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF
<Maximize2 className="h-4 w-4" />
</Button>
</div>
</div>
</div>
{/* 消息列表 */}