forked from
smokesignal.events/smokesignal
i18n+filtering fork - fluent-templates v2
1use anyhow::Result;
2use axum::response::IntoResponse;
3
4use crate::{
5 create_renderer,
6 http::{
7 context::{admin_template_context, AdminRequestContext},
8 errors::WebError,
9 },
10};
11
12pub async fn handle_admin_index(
13 admin_ctx: AdminRequestContext,
14) -> Result<impl IntoResponse, WebError> {
15 // User is already verified as admin by the extractor
16 let canonical_url = format!(
17 "https://{}/admin",
18 admin_ctx.web_context.config.external_base
19 );
20
21 // Create renderer for admin context (admin pages don't use HTMX typically)
22 let renderer = create_renderer!(
23 admin_ctx.web_context.clone(),
24 admin_ctx.language.clone(),
25 false, // hx_boosted
26 false // hx_request
27 );
28
29 let context = admin_template_context(&admin_ctx, &canonical_url);
30
31 Ok(renderer.render_template(
32 "admin",
33 context,
34 Some(&admin_ctx.admin_handle),
35 &canonical_url,
36 ))
37}