1use yew::prelude::*;
2
3#[derive(Clone, Debug, Properties, PartialEq)]
4pub struct MenuProps {
5 #[prop_or_default]
6 pub children: Children,
7 #[prop_or_default]
8 pub classes: Classes,
9}
10
11#[function_component(Menu)]
15pub fn menu(props: &MenuProps) -> Html {
16 html! {
17 <aside class={classes!("menu", props.classes.clone())}>
18 {props.children.clone()}
19 </aside>
20 }
21}
22
23#[derive(Clone, Debug, Properties, PartialEq)]
27pub struct MenuListProps {
28 #[prop_or_default]
30 pub children: Children,
31 #[prop_or_default]
32 pub classes: Classes,
33}
34
35#[function_component(MenuList)]
39pub fn menu_list(props: &MenuListProps) -> Html {
40 html! {
41 <ul class={classes!("menu-list", props.classes.clone())}>
42 {props.children.clone()}
43 </ul>
44 }
45}
46
47#[derive(Clone, Debug, Properties, PartialEq)]
51pub struct MenuLabelProps {
52 #[prop_or_default]
53 pub classes: Classes,
54 #[prop_or_default]
56 pub text: String,
57}
58
59#[function_component(MenuLabel)]
63pub fn menu_label(props: &MenuLabelProps) -> Html {
64 html! {
65 <p class={classes!("menu-label", props.classes.clone())}>
66 {props.text.clone()}
67 </p>
68 }
69}