diff options
Diffstat (limited to 'ui/src/components/node_page.rs')
| -rw-r--r-- | ui/src/components/node_page.rs | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/ui/src/components/node_page.rs b/ui/src/components/node_page.rs index f40aa73..5cd71ce 100644 --- a/ui/src/components/node_page.rs +++ b/ui/src/components/node_page.rs @@ -4,7 +4,7 @@ Copyright (C) 2026 metamuffin <metamuffin.org> */ -use crate::{RenderInfo, components::props::Props}; +use crate::{RenderInfo, components::props::Props, page}; use jellycommon::{ jellyobject::{Object, Tag, TypedTag}, routes::{u_image, u_node_slug_player}, @@ -13,9 +13,24 @@ use jellycommon::{ use jellyui_locale::tr; use std::marker::PhantomData; +page!(NodePage<'_>, |x| x + .nku + .node + .get(NO_TITLE) + .unwrap_or_default() + .to_string() + .into()); +page!(Player<'_>, |x| x + .nku + .node + .get(NO_TITLE) + .unwrap_or_default() + .to_string() + .into()); + markup::define! { - NodePage<'a>(ri: &'a RenderInfo<'a>, nku: Object<'a>) { - @let node = nku.get(NKU_NODE).unwrap_or_default(); + NodePage<'a>(ri: &'a RenderInfo<'a>, nku: Nku<'a>) { + @let node = nku.node; @let slug = node.get(NO_SLUG).unwrap_or_default(); @let pics = node.get(NO_PICTURES).unwrap_or_default(); @if let Some(path) = pics.get(PICT_BACKDROP) { @@ -59,7 +74,7 @@ markup::define! { } } .details { - @Props { ri, nku: *nku, full: true } + @Props { ri, nku, full: true } h3 { @node.get(NO_TAGLINE).unwrap_or_default() } @if let Some(description) = &node.get(NO_DESCRIPTION) { p { @for line in description.lines() { @line br; } } @@ -141,13 +156,11 @@ markup::define! { // } } - Player<'a>(ri: &'a RenderInfo<'a>, nku: Object<'a>) { + Player<'a>(ri: &'a RenderInfo<'a>, nku: Nku<'a>) { @let _ = ri; - @let node = nku.get(NKU_NODE).unwrap_or_default(); - @let pics = node.get(NO_PICTURES).unwrap_or_default(); + @let pics = nku.node.get(NO_PICTURES).unwrap_or_default(); video[id="player", poster=pics.get(PICT_COVER).map(|p| u_image(p, 2048))] {} } - } // fn chapter_key_time(c: Object, dur: f64) -> f64 { |