dxc_components/menu/menu.rs
1use dioxus::prelude::*;
2
3#[component]
4pub fn DxcMenu(children: Element, class: Option<String>) -> Element {
5 let combined_class = format!("menu {}", class.unwrap_or_default());
6
7 rsx! {
8 ul {
9 role: "menu",
10 class: combined_class,
11 tabindex: "-1",
12 { children }
13 }
14 }
15}
16
17// #[component]
18// pub fn DxcMenuItem(
19// children: Element,
20// class: Option<String>,
21// disabled: Option<bool>,
22// index: Option<u32>,
23// route: Option<&'static str>,
24// ) -> Element {
25// let disabled = disabled.unwrap_or(false);
26// let index = index.unwrap_or(0);
27// let mut classes = format!("menu-item {}", class.unwrap_or_default());
28
29// if disabled {
30// classes += " menu-item-disabled";
31// }
32
33// rsx! {
34// li {
35// class: classes,
36// "index": index,
37// tabindex: "-1",
38// aria_disabled: disabled.then(|| "true"),
39
40// if !disabled {
41// if let Some(target_route) = route {
42// Link {
43// to: target_route,
44// { children }
45// }
46// } else {
47// { children } // 没有路由时直接显示
48// }
49// } else {
50// { children } // 禁用时不响应点击
51// }
52// }
53// }
54// }