yew_bs/components/
row.rs

1use yew::prelude::*;
2#[derive(Properties, PartialEq)]
3pub struct RowProps {
4    #[prop_or_default]
5    pub children: Children,
6    #[prop_or_default]
7    pub class: Option<AttrValue>,
8    #[prop_or_default]
9    pub g_x: Option<u8>,
10    #[prop_or_default]
11    pub g_y: Option<u8>,
12    #[prop_or_default]
13    pub g: Option<u8>,
14    #[prop_or_default]
15    pub node_ref: NodeRef,
16}
17#[function_component(Row)]
18pub fn row(props: &RowProps) -> Html {
19    let mut classes = Classes::new();
20    classes.push("row");
21    if let Some(gutter) = props.g {
22        classes.push(format!("g-{}", gutter));
23    } else {
24        if let Some(gutter_x) = props.g_x {
25            classes.push(format!("gx-{}", gutter_x));
26        }
27        if let Some(gutter_y) = props.g_y {
28            classes.push(format!("gy-{}", gutter_y));
29        }
30    }
31    if let Some(class) = &props.class {
32        classes.push(class.to_string());
33    }
34    html! {
35        < div class = { classes } ref = { props.node_ref.clone() } > { for props.children
36        .iter() } </ div >
37    }
38}