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}