2025-03-29 10:50:58 +01:00
|
|
|
use crate::{Payload, ssr::Js};
|
2024-07-02 21:59:30 +02:00
|
|
|
use axum::extract::{Path, Request};
|
|
|
|
|
use axum::response::Html;
|
|
|
|
|
use std::collections::HashMap;
|
|
|
|
|
|
|
|
|
|
pub async fn catch_all(
|
|
|
|
|
Path(params): Path<HashMap<String, String>>,
|
|
|
|
|
request: Request,
|
|
|
|
|
) -> Html<String> {
|
2024-07-09 19:00:48 +02:00
|
|
|
let pathname = request.uri();
|
|
|
|
|
let headers = request.headers();
|
2024-07-02 21:59:30 +02:00
|
|
|
|
2025-03-29 11:15:45 +01:00
|
|
|
let req = crate::Request::new(pathname.to_owned(), headers.to_owned(), params, None);
|
2024-07-02 21:59:30 +02:00
|
|
|
|
|
|
|
|
// TODO: remove unwrap
|
|
|
|
|
let payload = Payload::new(&req, &"").client_payload().unwrap();
|
|
|
|
|
|
2024-07-07 11:44:36 +02:00
|
|
|
let result = Js::render_to_string(Some(&payload));
|
2024-07-02 21:59:30 +02:00
|
|
|
|
|
|
|
|
match result {
|
|
|
|
|
Ok(html) => Html(html),
|
|
|
|
|
_ => Html("500 internal server error".to_string()),
|
|
|
|
|
}
|
|
|
|
|
}
|