use crate::components::app::css::*;
use crate::components::app::favicon::{favicon, FavIcon};
use crate::components::app::fontawesome::*;
use crate::components::app::htmx::*;
use crate::components::app::meta::*;
use crate::utils::types::{SharedAppState, URLParams, URLPath};
use crate::{ComponentResult, RUMWebTemplate, RUMWebTemplateSafe};
#[derive(RUMWebTemplate)]
#[template(
source = "
<head>
{{meta|safe}}
{{favicon|safe}}
{{css|safe}}
{{fontawesome|safe}}
{{htmx|safe}}
</head>
",
ext = "html"
)]
pub struct AppShellHead {
meta: Meta,
favicon: FavIcon,
css: CSS,
fontawesome: FontAwesome,
htmx: HTMX,
}
impl RUMWebTemplateSafe for AppShellHead {}
pub fn app_head<'a>(
_path_components: URLPath<'a, 'a>,
_params: URLParams<'a>,
state: SharedAppState,
) -> ComponentResult<AppShellHead> {
Ok(AppShellHead {
meta: meta(state.clone())?,
favicon: favicon(state.clone())?,
css: css()?,
fontawesome: fontawesome(state.clone())?,
htmx: htmx()?
})
}