yew_bs/components/
container.rs

1use yew::prelude::*;
2use crate::components::common::Breakpoint;
3#[derive(Properties, PartialEq)]
4pub struct ContainerProps {
5    #[prop_or_default]
6    pub children: Children,
7    #[prop_or_default]
8    pub fluid: bool,
9    #[prop_or_default]
10    pub breakpoint: Option<Breakpoint>,
11    #[prop_or_default]
12    pub class: Option<AttrValue>,
13    #[prop_or_default]
14    pub node_ref: NodeRef,
15}
16#[function_component(Container)]
17pub fn container(props: &ContainerProps) -> Html {
18    let mut classes = Classes::new();
19    if props.fluid {
20        classes.push("container-fluid");
21    } else if let Some(breakpoint) = props.breakpoint {
22        classes.push(format!("container-{}", breakpoint.as_str()));
23    } else {
24        classes.push("container");
25    }
26    if let Some(class) = &props.class {
27        classes.push(class.to_string());
28    }
29    html! {
30        < div class = { classes } ref = { props.node_ref.clone() } > { for props.children
31        .iter() } </ div >
32    }
33}