Implémentation "HATEOAS" de l'interface pour HTMX et update des URLs qui fonctionne ! #57

Merged
florian_briand merged 12 commits from feat/54_update_url_on_navbar_navigation into main 2024-08-30 18:25:53 +02:00
4 changed files with 17 additions and 14 deletions
Showing only changes of commit b7fcfe3792 - Show all commits

View File

@ -1,8 +1,7 @@
use std::path::Path;
use askama_axum::Template;
use axum::http::{StatusCode, Uri};
use axum_htmx::{AutoVaryLayer, HxRequest};
use axum_htmx::AutoVaryLayer;
use tower_http::services::ServeDir;
mod menu;
@ -12,20 +11,9 @@ async fn fallback(uri: Uri) -> (StatusCode, String) {
(StatusCode::NOT_FOUND, format!("No route for {uri}"))
}
#[derive(Template)]
#[template(path = "index.html")]
pub struct GetIndexTemplate {
hx_request: bool,
}
async fn root(HxRequest(hx_request): HxRequest) -> GetIndexTemplate {
GetIndexTemplate { hx_request }
}
pub fn get_router(assets_path: &Path) -> axum::Router {
axum::Router::new()
.nest_service("/assets", ServeDir::new(assets_path))
.route("/", axum::routing::get(root))
.merge(pages::get_routes())
.fallback(fallback)
.layer(AutoVaryLayer)

View File

@ -0,0 +1,12 @@
use askama_axum::Template;
use axum_htmx::HxRequest;
#[derive(Template)]
#[template(path = "home.html")]
pub struct GetHomeTemplate {
hx_request: bool,
}
pub async fn home(HxRequest(hx_request): HxRequest) -> GetHomeTemplate {
GetHomeTemplate { hx_request }
}

View File

@ -1,7 +1,10 @@
use axum::{routing, Router};
mod cps;
mod home;
pub fn get_routes() -> Router {
Router::new().route("/cps", routing::get(cps::cps))
Router::new()
.route("/", axum::routing::get(home::home))
florian_briand marked this conversation as resolved Outdated

micro typo axum::routing -> routing

micro typo `axum::routing` -> `routing`
.route("/cps", routing::get(cps::cps))
}