diff options
author | metamuffin <metamuffin@disroot.org> | 2025-04-28 18:27:03 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-04-28 18:27:03 +0200 |
commit | 51761cbdefa39107b9e1f931f1aa8df6aebb2a94 (patch) | |
tree | 957ca180786ece777e6e1153ada91da741d845ec /ui/src/home.rs | |
parent | 80d28b764c95891551e28c395783f5ff9d065743 (diff) | |
download | jellything-51761cbdefa39107b9e1f931f1aa8df6aebb2a94.tar jellything-51761cbdefa39107b9e1f931f1aa8df6aebb2a94.tar.bz2 jellything-51761cbdefa39107b9e1f931f1aa8df6aebb2a94.tar.zst |
many much more generic refactor
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) } } |