diff --git a/AobaClient/src/components/media_grid.rs b/AobaClient/src/components/media_grid.rs index bd0516f..87d5873 100644 --- a/AobaClient/src/components/media_grid.rs +++ b/AobaClient/src/components/media_grid.rs @@ -53,6 +53,7 @@ pub fn MediaGrid(mut props: MediaGridProps) -> Element } } }); + let mut items = use_signal::>(|| Vec::new()); use_memo(move || match media_result() { @@ -67,12 +68,9 @@ pub fn MediaGrid(mut props: MediaGridProps) -> Element props.max_page.set(total_pages.max(1)); props.total_items.set(total_items.max(1)); } + items.set(result.items); media_grid_display.set(rsx! { - {result.items.iter().map(|itm| rsx!{ - MediaItem { - item: itm.clone() - } - })}, + MediaList { items } }); } Err(msg) => media_grid_display.set(rsx! { @@ -91,3 +89,16 @@ pub fn MediaGrid(mut props: MediaGridProps) -> Element } } } + +#[component] +fn MediaList(items: Signal>) -> Element +{ + let vec = items.cloned(); + rsx! { + {vec.iter().map(|itm| rsx!{ + MediaItem { + item: itm.clone() + } + })} + } +}