From 64706b61d5146a5bbed2e3b371b936506203e3da Mon Sep 17 00:00:00 2001 From: Xin Wang Date: Fri, 5 Jun 2026 16:30:05 +0800 Subject: [PATCH] Enhance AppShell and Sidebar components with new navigation for components Updated the AppShell component to include new pages for models, knowledge, and tools under the components section. Refactored the Sidebar to introduce a dedicated section for these components, improving navigation structure and user experience. Added new placeholder pages for ComponentsModelsPage, ComponentsKnowledgePage, and ComponentsToolsPage, each with relevant titles and descriptions. --- src/components/layout/AppShell.tsx | 13 +++- src/components/layout/Sidebar.tsx | 59 ++++++++++++++++++- .../pages/ComponentsKnowledgePage.tsx | 11 ++++ src/components/pages/ComponentsModelsPage.tsx | 11 ++++ ...onentsPage.tsx => ComponentsToolsPage.tsx} | 4 +- 5 files changed, 91 insertions(+), 7 deletions(-) create mode 100644 src/components/pages/ComponentsKnowledgePage.tsx create mode 100644 src/components/pages/ComponentsModelsPage.tsx rename src/components/pages/{ComponentsPage.tsx => ComponentsToolsPage.tsx} (77%) diff --git a/src/components/layout/AppShell.tsx b/src/components/layout/AppShell.tsx index f4bd82d..40d46e2 100644 --- a/src/components/layout/AppShell.tsx +++ b/src/components/layout/AppShell.tsx @@ -7,7 +7,9 @@ import { Topbar } from "./Topbar"; import { HomePage } from "@/components/pages/HomePage"; import { AssistantPage } from "@/components/pages/AssistantPage"; import { AssistantWorkflowPage } from "@/components/pages/AssistantWorkflowPage"; -import { ComponentsPage } from "@/components/pages/ComponentsPage"; +import { ComponentsModelsPage } from "@/components/pages/ComponentsModelsPage"; +import { ComponentsKnowledgePage } from "@/components/pages/ComponentsKnowledgePage"; +import { ComponentsToolsPage } from "@/components/pages/ComponentsToolsPage"; import { HistoryPage } from "@/components/pages/HistoryPage"; import { TestPage } from "@/components/pages/TestPage"; import { WorkflowPage } from "@/components/pages/WorkflowPage"; @@ -17,12 +19,15 @@ export type NavKey = | "home" | "assistant-prompt" | "assistant-workflow" - | "components" + | "components-models" + | "components-knowledge" + | "components-tools" | "history" | "test" | "workflow" | "profile"; + export function AppShell() { const [active, setActive] = useState("home"); const [collapsed, setCollapsed] = useState(false); @@ -45,7 +50,9 @@ export function AppShell() { {active === "assistant-prompt" && } {active === "assistant-workflow" && } - {active === "components" && } + {active === "components-models" && } + {active === "components-knowledge" && } + {active === "components-tools" && } {active === "history" && } {active === "test" && } {active === "workflow" && } diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx index b58d24f..b09cd0a 100644 --- a/src/components/layout/Sidebar.tsx +++ b/src/components/layout/Sidebar.tsx @@ -3,9 +3,12 @@ import { Bot, Boxes, + Brain, ChevronLeft, ChevronRight, Clock3, + Database, + Wrench, FileText, Home, PlayCircle, @@ -27,10 +30,8 @@ const mainItems: Array<{ icon: React.ComponentType<{ size?: number }>; }> = [ { key: "home", label: "控制台", icon: Home }, - { key: "components", label: "组件库", icon: Boxes }, { key: "history", label: "历史记录", icon: Clock3 }, { key: "test", label: "测试助手", icon: PlayCircle }, - { key: "workflow", label: "工作流", icon: Workflow }, ]; const assistantSubItems: Array<{ @@ -42,6 +43,16 @@ const assistantSubItems: Array<{ { key: "assistant-workflow", label: "工作流模式", icon: Workflow }, ]; +const componentSubItems: Array<{ + key: NavKey; + label: string; + icon: React.ComponentType<{ size?: number }>; +}> = [ + { key: "components-models", label: "模型资源", icon: Brain }, + { key: "components-knowledge", label: "知识库", icon: Database }, + { key: "components-tools", label: "工具资源", icon: Wrench }, +]; + export function Sidebar({ active, collapsed, @@ -51,6 +62,9 @@ export function Sidebar({ const assistantActive = active === "assistant-prompt" || active === "assistant-workflow"; + const componentActive = + active === "components-models" || active === "components-knowledge" || active === "components-tools"; + return (