forked from
smokesignal.events/smokesignal
i18n+filtering fork - fluent-templates v2
1use anyhow::Result;
2use axum::{extract::State, response::IntoResponse};
3use axum_extra::extract::Cached;
4use axum_htmx::HxBoosted;
5
6use crate::{
7 create_renderer,
8 http::{
9 context::WebContext,
10 errors::WebError,
11 middleware_auth::Auth,
12 middleware_i18n::Language,
13 },
14};
15
16pub async fn handle_view_feed(
17 State(web_context): State<WebContext>,
18 HxBoosted(hx_boosted): HxBoosted,
19 Language(language): Language,
20 Cached(auth): Cached<Auth>,
21) -> Result<impl IntoResponse, WebError> {
22 // Create the template renderer with enhanced context
23 let renderer = create_renderer!(web_context, Language(language), hx_boosted, false);
24
25 let canonical_url = format!("https://{}/", renderer.web_context.config.external_base);
26
27 Ok(renderer.render_template(
28 "index",
29 minijinja::Value::UNDEFINED,
30 auth.0.as_ref(),
31 &canonical_url,
32 ))
33}