burncloud_client_shared/components/
sidebar.rs1use dioxus::prelude::*;
2use dioxus_router::prelude::*;
3
4use super::layout::CoreRoute;
5
6#[component]
7pub fn Sidebar() -> Element {
8 let route = use_route::<CoreRoute>();
9
10 rsx! {
11 nav { class: "sidebar",
12 div { class: "p-lg",
13 div { class: "flex flex-col gap-xs",
14 Link {
15 to: CoreRoute::Dashboard {},
16 class: if matches!(route, CoreRoute::Dashboard {}) { "nav-item active" } else { "nav-item" },
17 span { class: "icon", "🏠" }
18 span { "仪表盘" }
19 }
20 Link {
21 to: CoreRoute::ModelManagement {},
22 class: if matches!(route, CoreRoute::ModelManagement {}) { "nav-item active" } else { "nav-item" },
23 span { class: "icon", "🧠" }
24 span { "模型管理" }
25 }
26 Link {
27 to: CoreRoute::DeployConfig {},
28 class: if matches!(route, CoreRoute::DeployConfig {}) { "nav-item active" } else { "nav-item" },
29 span { class: "icon", "⚙️" }
30 span { "部署配置" }
31 }
32 Link {
33 to: CoreRoute::ServiceMonitor {},
34 class: if matches!(route, CoreRoute::ServiceMonitor {}) { "nav-item active" } else { "nav-item" },
35 span { class: "icon", "📊" }
36 span { "监控日志" }
37 }
38 Link {
39 to: CoreRoute::ApiManagement {},
40 class: if matches!(route, CoreRoute::ApiManagement {}) { "nav-item active" } else { "nav-item" },
41 span { class: "icon", "🔗" }
42 span { "API管理" }
43 }
44 Link {
45 to: CoreRoute::SystemSettings {},
46 class: if matches!(route, CoreRoute::SystemSettings {}) { "nav-item active" } else { "nav-item" },
47 span { class: "icon", "🔧" }
48 span { "系统设置" }
49 }
50 }
51 }
52
53 div { class: "mt-auto p-lg border-t",
54 style: "border-color: var(--neutral-quaternary);",
55 div { class: "text-caption text-secondary",
56 "状态: 2个模型运行中"
57 }
58 div { class: "text-caption text-secondary",
59 "CPU: 45% | 内存: 2.1GB"
60 }
61 }
62 }
63 }
64}