Skip to main content

burncloud_client_shared/components/
sidebar.rs

1use 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}