From f289eca90cc9c19bec4183db2014f7328a7400fd Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 24 Jan 2026 21:19:25 +0800 Subject: [PATCH] feat: integrate chat panel into canvas sidebar - Add CanvasChatPanel component for AI conversation in canvas - Auto-sync generated images from chat to canvas nodes - Add tabbed interface to switch between AI Chat and Quick Tools - Widen sidebar to 384px to accommodate chat interface - Extract image URLs from messages and create canvas nodes automatically --- app/canvas/[id]/page.tsx | 318 +++++++++--------- components/canvas/CanvasChatPanel.tsx | 450 ++++++++++++++++++++++++++ 2 files changed, 621 insertions(+), 147 deletions(-) create mode 100644 components/canvas/CanvasChatPanel.tsx diff --git a/app/canvas/[id]/page.tsx b/app/canvas/[id]/page.tsx index 8a89c72..d94521f 100644 --- a/app/canvas/[id]/page.tsx +++ b/app/canvas/[id]/page.tsx @@ -60,7 +60,10 @@ import { toast } from "sonner"; import { useCanvasStore, canvasSelectors } from "@/store/canvas"; import { canvasService, imageGenerationService } from "@/services/canvas"; import { CanvasWorkspace } from "@/components/canvas"; +import { CanvasChatPanel } from "@/components/canvas/CanvasChatPanel"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { cn } from "@/lib/utils"; +import { MessageSquare } from "lucide-react"; interface PageProps { params: Promise<{ id: string }>; @@ -560,167 +563,188 @@ export default function CanvasEditorPage({ params }: PageProps) { {/* 主体区域 */}
- {/* 左侧配置面板 - 参考 lobe-chat-pro */} + {/* 左侧面板 - 标签页切换 AI对话/快捷工具 */}
{isPanelOpen && ( - -
- {/* AI 图片生成 */} -
-
- -

AI 图片生成

-
- -
-
- -