diff --git a/extensions/pagetop-admin/src/component/admin_menu.rs b/extensions/pagetop-admin/src/component/admin_menu.rs index ad3f1963..64106bc3 100644 --- a/extensions/pagetop-admin/src/component/admin_menu.rs +++ b/extensions/pagetop-admin/src/component/admin_menu.rs @@ -7,7 +7,7 @@ use crate::registry; /// Construye el [`Nav`] en cada petición a partir de [`registry::admin_menu()`], ya filtrado por /// el usuario de la petición actual. Pensado para que un tema lo registre en su propia región de /// navegación (p. ej. `pagetop-bootsier` lo añade a su sidebar) e intercepte `Nav`/`nav::Item` en -/// [`Theme::handle_component()`](pagetop::core::theme::Theme::handle_component) si quiere darle un +/// [`Theme::render_component()`](pagetop::core::theme::Theme::render_component) si quiere darle un /// aspecto propio; sin intercepción, se renderiza con el marcado por defecto de [`Nav`]. /// /// Sólo se renderiza en páginas creadas con diff --git a/extensions/pagetop-admin/src/registry.rs b/extensions/pagetop-admin/src/registry.rs index 1144842c..eccae202 100644 --- a/extensions/pagetop-admin/src/registry.rs +++ b/extensions/pagetop-admin/src/registry.rs @@ -276,7 +276,7 @@ pub fn global() -> &'static AdminRegistry { /// Pensado para que un tema lo use como navegación de `CoreTemplates::Admin` (p. ej. un sidebar) -- /// ver [`crate::component::AdminMenu`]. `pagetop-admin` no impone ningún marcado propio: el /// [`Nav`] resultante se renderiza con su aspecto por defecto salvo que el tema lo intercepte en -/// [`Theme::handle_component()`](pagetop::core::theme::Theme::handle_component). +/// [`Theme::render_component()`](pagetop::core::theme::Theme::render_component). pub fn admin_menu(cx: &Context) -> Nav { let reg = global(); let current_path = cx.request().map(|r| r.path()).unwrap_or(""); diff --git a/extensions/pagetop-bootsier/src/lib.rs b/extensions/pagetop-bootsier/src/lib.rs index e8917192..8d38ae47 100644 --- a/extensions/pagetop-bootsier/src/lib.rs +++ b/extensions/pagetop-bootsier/src/lib.rs @@ -129,11 +129,7 @@ impl Theme for Bootsier { theme::BootsierColors::from(intent).as_str() } - async fn handle_component( - &self, - component: &mut dyn Component, - cx: &mut Context, - ) -> Option> { + fn setup_component(&self, component: &mut dyn Component, _cx: &mut Context) { setup_component!(component, { Badge => |c| theme::bs::badge::setup(c), Brand => |c| theme::bs::brand::setup(c), @@ -148,7 +144,13 @@ impl Theme for Bootsier { form::select::Field => |c| theme::bs::form::select::setup(c), form::Textarea => |c| theme::bs::form::textarea::setup(c), }); + } + async fn render_component( + &self, + component: &dyn Component, + cx: &mut Context, + ) -> Option> { render_component!(component, { layout::Region => |c| theme::bs::layout::region::render(c, cx).await?, layout::Template => |c| theme::bs::layout::template::render(c, cx).await?, diff --git a/extensions/pagetop-bootsier/src/theme.rs b/extensions/pagetop-bootsier/src/theme.rs index 28dc7071..18b15f8a 100644 --- a/extensions/pagetop-bootsier/src/theme.rs +++ b/extensions/pagetop-bootsier/src/theme.rs @@ -17,7 +17,7 @@ //! la shell completa de AdminLTE 4 (barra superior + barra lateral + área de contenido), que se //! activa creando la página con [`Page::admin()`](pagetop::response::Page::admin) en lugar de //! [`Page::new()`](pagetop::response::Page::new). No define sus propias variantes de plantilla: -//! intercepta el componente `Template` en `handle_component()` (ver `bs::layout`). +//! intercepta el componente `Template` en `render_component()` (ver `bs::layout`). //! //! ```rust,no_run //! use pagetop::prelude::*; diff --git a/extensions/pagetop-bootsier/src/theme/bs/layout/region.rs b/extensions/pagetop-bootsier/src/theme/bs/layout/region.rs index 2802ad8c..968d7373 100644 --- a/extensions/pagetop-bootsier/src/theme/bs/layout/region.rs +++ b/extensions/pagetop-bootsier/src/theme/bs/layout/region.rs @@ -9,7 +9,7 @@ pub enum BootsierRegions { /// Los componentes registrados aquí se renderizan directamente dentro del /// `