dxc_components/menu_item/
menu_item.rs1use super::props::MenuItemProps;
2use dioxus::prelude::*;
4use dxc_hooks::UseNamespace;
5use dxc_macros::classes;
6use dxc_types::namespace::Block;
7
8#[component]
9pub fn DxcMenuItem(props: MenuItemProps) -> Element {
10 let mut active = use_signal(|| false);
11 let disabled = use_signal(|| props.disabled());
12
13 let onclick = move || {
14 if !disabled() {
15 }
17 };
18
19 let ns_menu_item = UseNamespace::new(Block::MenuItem, None);
20
21 let classes = classes! {
22 ns_menu_item.b(),
23 ns_menu_item.is_(String::from("active"), Some(active())),
24 ns_menu_item.is_(String::from("disabled"), Some(disabled()))
25 };
26
27 rsx! {
28 li {
29 class: classes,
30 role: "menuitem",
31 tabindex: "-1",
32 onclick: move |_| {
33 active.set(true);
34 },
35 }
36 }
37}