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)
}
}
}
}