yew_bs/components/
container.rs1use 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}