diff options
Diffstat (limited to 'ui/src/home.rs')
-rw-r--r-- | ui/src/home.rs | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/ui/src/home.rs b/ui/src/home.rs index 7b58179..ec0c634 100644 --- a/ui/src/home.rs +++ b/ui/src/home.rs @@ -3,20 +3,21 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2025 metamuffin <metamuffin.org> */ - use crate::{ + Page, locale::{Language, tr, trs}, node_card::NodeCard, - scaffold::LayoutPage, }; +use jellycommon::api::ApiHomeResponse; +use markup::DynRender; markup::define! { - HomePage<'a>(lang: &'a Language) { - h2 { @tr(lang, "home.bin.root").replace("{title}", &CONF.brand) } - ul.children.hlist {@for (node, udata) in &toplevel { + HomePage<'a>(lang: &'a Language, r: &'a ApiHomeResponse) { + h2 { @trs(lang, "home.bin.root") } //.replace("{title}", &CONF.brand) } + ul.children.hlist {@for (node, udata) in &r.toplevel { li { @NodeCard { node, udata, lang: &lang } } }} - @for (name, nodes) in &categories { + @for (name, nodes) in &r.categories { @if !nodes.is_empty() { h2 { @trs(&lang, &name) } ul.children.hlist {@for (node, udata) in nodes { @@ -27,10 +28,11 @@ markup::define! { } } -pub fn home_page() { - LayoutPage { - title: tr(lang, "home").to_string(), - content: HomePage { lang: &lang }, - ..Default::default() +impl Page for HomePage<'_> { + fn title(&self) -> String { + tr(*self.lang, "home").to_string() + } + fn to_render(&self) -> DynRender { + markup::new!(@self) } } |