Compare commits

...

2 Commits

2 changed files with 27 additions and 1 deletions

View File

@ -1,9 +1,34 @@
use askama_axum::Template; use askama_axum::Template;
use axum::{
async_trait,
extract::FromRequestParts,
http::{request::Parts, HeaderMap, StatusCode},
};
#[derive(Template)] #[derive(Template)]
#[template(path = "pages/cps.html")] #[template(path = "pages/cps.html")]
pub struct CpsTemplate; pub struct CpsTemplate;
pub async fn cps() -> CpsTemplate { pub struct ExtractHxRequest(bool);
#[async_trait]
impl<S> FromRequestParts<S> for ExtractHxRequest
where
S: Send + Sync,
{
type Rejection = (StatusCode, &'static str);
async fn from_request_parts(parts: &mut Parts, _state: &S) -> Result<Self, Self::Rejection> {
if parts.headers.get("HX-Request").is_some() {
Ok(ExtractHxRequest(true))
} else {
Ok(ExtractHxRequest(false))
}
}
}
pub async fn cps(headers: HeaderMap, hx_request: ExtractHxRequest) -> CpsTemplate {
println!("{:#?}", headers);
println!("{:#?}", hx_request.0);
CpsTemplate CpsTemplate
} }

View File

@ -5,6 +5,7 @@
hx-trigger="click" hx-trigger="click"
hx-target="#main-container" hx-target="#main-container"
hx-swap="innerHTML" hx-swap="innerHTML"
hx-push-url="true"
class="{{ Self::get_classes(self, item.current) }}" class="{{ Self::get_classes(self, item.current) }}"
aria-current="{% if item.current %}page{% endif %}" aria-current="{% if item.current %}page{% endif %}"
> >