2023-10-05 00:58:53 +08:00
|
|
|
mod menu_group;
|
2023-05-18 17:14:54 +08:00
|
|
|
mod menu_item;
|
2023-09-21 21:57:34 +08:00
|
|
|
mod theme;
|
2023-05-18 17:14:54 +08:00
|
|
|
|
|
|
|
use leptos::*;
|
2023-10-05 00:58:53 +08:00
|
|
|
pub use menu_group::MenuGroup;
|
2023-05-18 17:14:54 +08:00
|
|
|
pub use menu_item::*;
|
2023-09-21 21:57:34 +08:00
|
|
|
pub use theme::MenuTheme;
|
2023-05-18 17:14:54 +08:00
|
|
|
|
|
|
|
#[component]
|
2023-11-09 14:43:30 +08:00
|
|
|
pub fn Menu(#[prop(optional, into)] value: RwSignal<String>, children: Children) -> impl IntoView {
|
2023-11-09 16:46:14 +08:00
|
|
|
provide_context(MenuInjection(value));
|
2023-11-05 16:03:58 +08:00
|
|
|
view! { <div class="thaw-menu">{children()}</div> }
|
2023-05-18 17:14:54 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Clone)]
|
2023-11-09 16:46:14 +08:00
|
|
|
pub(crate) struct MenuInjection(pub RwSignal<String>);
|
2023-05-18 17:14:54 +08:00
|
|
|
|
2023-11-09 16:46:14 +08:00
|
|
|
pub(crate) fn use_menu() -> MenuInjection {
|
|
|
|
expect_context()
|
2023-05-18 17:14:54 +08:00
|
|
|
}
|