From 8b75f72a44b10cedf1af6dd3f4463e53789997c0 Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Mon, 25 Jul 2022 21:27:39 +0200 Subject: [PATCH] =?UTF-8?q?Retoca=20el=20renderizado=20de=20las=20regiones?= =?UTF-8?q?=20de=20la=20p=C3=A1gina?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pagetop/src/core/theme/definition.rs | 14 ++++++++++---- pagetop/src/response/page/definition.rs | 10 +++------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/pagetop/src/core/theme/definition.rs b/pagetop/src/core/theme/definition.rs index a1fc70e6..7f64258b 100644 --- a/pagetop/src/core/theme/definition.rs +++ b/pagetop/src/core/theme/definition.rs @@ -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) } + } + } } } } diff --git a/pagetop/src/response/page/definition.rs b/pagetop/src/response/page/definition.rs index 8f91b394..291ec6b9 100644 --- a/pagetop/src/response/page/definition.rs +++ b/pagetop/src/response/page/definition.rs @@ -217,14 +217,10 @@ impl Page { }) } - pub fn render_region(&mut self, region: &str) -> Markup { + pub fn render_region(&mut self, region: &str) -> Option { 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, } } }