patternfly_yew/components/menu/
variant.rs1use super::*;
2use crate::prelude::*;
3use yew::{
4 prelude::*,
5 virtual_dom::{VChild, VComp},
6};
7
8#[derive(PartialEq, Clone)]
9pub struct MenuChildVariant {
10 props: MenuChild,
11}
12
13impl<CHILD> From<VChild<CHILD>> for MenuChildVariant
14where
15 CHILD: BaseComponent,
16 CHILD::Properties: Into<MenuChild> + Clone,
17{
18 fn from(vchild: VChild<CHILD>) -> Self {
19 Self {
20 props: (*vchild.props).clone().into(),
21 }
22 }
23}
24
25impl From<MenuChildVariant> for Html {
26 fn from(value: MenuChildVariant) -> Self {
27 match value.props {
28 MenuChild::Action(props) => VComp::new::<MenuAction>(props, None).into(),
29 MenuChild::Link(props) => VComp::new::<MenuLink>(props, None).into(),
30 MenuChild::Group(props) => VComp::new::<MenuGroup>(props, None).into(),
31 MenuChild::Loading(props) => VComp::new::<MenuLoading>(props, None).into(),
32 MenuChild::Divider(props) => VComp::new::<ListDivider>(props, None).into(),
33 MenuChild::Raw(props) => VComp::new::<Raw>(props, None).into(),
34 }
35 }
36}