🎨 Convierte el ciclo de renderizado en async

`prepare()` de `Component`, `render()` de `Region` y `Template`, y la
implementación de `ComponentRender` pasan a ser funciones async. Se
actualizan todos los componentes base, helpers, tests y ejemplos.
This commit is contained in:
Manuel Cillero 2026-07-06 00:48:41 +02:00
parent 9acd8cc51a
commit 9354894b3a
48 changed files with 436 additions and 365 deletions

View file

@ -5,7 +5,7 @@ mod figfont;
use crate::core::{extension, extension::ExtensionRef};
use crate::html::Markup;
use crate::locale::Locale;
use crate::response::page::ErrorPage;
use crate::response::page::{ErrorPage, render_error_pages};
use crate::web::{HttpRequest, Router};
use crate::{PAGETOP_VERSION, global, trace};
@ -109,7 +109,9 @@ impl Application {
fn build_router() -> Router {
let router = extension::all::configure_routes(Router::new());
let router = extension::all::configure_middleware(router);
router.fallback(route_not_found)
router
.fallback(route_not_found)
.layer(axum::middleware::from_fn(render_error_pages))
}
/// Arranca el servidor web de la aplicación.
@ -123,6 +125,7 @@ impl Application {
///
/// struct MyApp;
///
/// #[async_trait]
/// impl Extension for MyApp {}
///
/// #[pagetop::main]