use crate::props::*; use yew::{html::Children, prelude::*, virtual_dom::VNode}; pub(crate) fn render_with_prefix<'a, B: Into>, C: Into>( props: B, prefix: C, mut node: VNode, ) -> VNode { let props = props.into(); props.add_attributes(&mut node); if let VNode::VTag(tag) = &mut node { let classes = &props.calculate_classes(prefix); if !classes.is_empty() { tag.add_attribute("class", classes.to_string()); } } node } pub(crate) fn div(children: &Children) -> Html { html! {
{ for children.iter() }
} } pub(crate) fn p(children: &Children) -> Html { html! {

{ for children.iter() }

} } #[cfg(test)] mod tests { use super::*; use crate::{prelude::*, props::Props}; #[test] fn test_multiple_prefixes() { let props = Props { margin: Some(Margin(Edge::All, 3)), ..Props::default() }; let comp = render_with_prefix(&props, vec!["first", "second"], html! {
}); let expected = html! {
}; crate::test::assert_attrs_eq(expected, comp); } }