aboutsummaryrefslogtreecommitdiff
path: root/ui/src/home.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/home.rs')
-rw-r--r--ui/src/home.rs24
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)
}
}