use maud::{html, Markup, DOCTYPE}; use tower_sessions::Session; pub(crate) async fn page(content: Markup, session: Session, leaflet: bool) -> Markup { // Get and clear flash message let succ_msg = session.get::("succ").await.unwrap_or(None); if succ_msg.is_some() { session.remove::("succ").await.unwrap(); } let warn_msg = session.get::("warn").await.unwrap_or(None); if warn_msg.is_some() { session.remove::("warn").await.unwrap(); } let err_msg = session.get::("err").await.unwrap_or(None); if err_msg.is_some() { session.remove::("err").await.unwrap(); } html! { (DOCTYPE) head { meta charset="utf-8"; link rel="stylesheet" href="/pico.css"; link rel="stylesheet" href="/style.css"; @if leaflet { link rel="stylesheet" href="/leaflet.css"; } } body { main { @if let Some(message) = err_msg { article class="error" { (message) } } @if let Some(message) = warn_msg { article class="warning" { (message) } } @if let Some(message) = succ_msg { article class="succ" { (message) } } @if leaflet { script src="/leaflet.js" {}; } (content) } } } }