Retoca el renderizado de las regiones de la página

This commit is contained in:
Manuel Cillero 2022-07-25 21:27:39 +02:00
parent 6a85db2b02
commit 8b75f72a44
2 changed files with 13 additions and 11 deletions

View file

@ -63,12 +63,18 @@ pub trait ThemeTrait: BaseTheme + Send + Sync {
body class=[page.body_classes().get()] {
@match page.template() {
"admin" => {
(page.render_region("top-menu"))
(page.render_region("side-menu"))
(page.render_region("region-content"))
@for region in &["top-menu", "side-menu", "region-content"] {
@if let Some(content) = page.render_region(region) {
#(region) { (content) }
}
}
},
_ => {
(page.render_region("region-content"))
@for region in &["region-content"] {
@if let Some(content) = page.render_region(region) {
#(region) { (content) }
}
}
}
}
}

View file

@ -217,14 +217,10 @@ impl Page {
})
}
pub fn render_region(&mut self, region: &str) -> Markup {
pub fn render_region(&mut self, region: &str) -> Option<Markup> {
match self.regions.get_mut(region) {
Some(components) => html! {
#(region) {
(components.render(&mut self.context))
}
},
None => html! {},
Some(components) => Some(components.render(&mut self.context)),
None => None,
}
}
}