use vertigo::{DomNode, css, dom};
use crate::{
form::{DataSection, Field},
resource_table::{base_row_css, normal_col_css},
};
pub fn row_from_data_section(
section: &DataSection,
buttons: DomNode,
grid_template_columns: &str,
) -> DomNode {
let fields: Vec<DomNode> = section
.fields
.iter()
.map(|field| {
dom! { <Field {field} /> }
})
.collect();
let error_node = section.error.as_ref().map(|err| {
dom! { <span css={css! {"color: red; font-size: 0.8rem;"}}>{err}</span> }
});
dom! {
<div css={base_row_css() + css! {"grid-template-columns: {grid_template_columns};"}}>
<div css={normal_col_css()}>{section.label.clone()}</div>
{..fields}
{..error_node}
<div>{buttons}</div>
</div>
}
}