dxc_components/menu_item/
menu_item.rs

1use super::props::MenuItemProps;
2// use crate::DxcToolTip;
3use 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            // props.onclick.call(());
16        }
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}