From 0de755cfc92a2f95c743217d73bd081aa35ef35c Mon Sep 17 00:00:00 2001 From: Amatsugu Date: Thu, 29 May 2025 21:16:34 -0400 Subject: [PATCH] cleanup --- AobaClient/src/components/media_grid.rs | 43 +++++++++++++++++++------ 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/AobaClient/src/components/media_grid.rs b/AobaClient/src/components/media_grid.rs index 0f95b56..73ce7d8 100644 --- a/AobaClient/src/components/media_grid.rs +++ b/AobaClient/src/components/media_grid.rs @@ -37,17 +37,33 @@ pub fn MediaGrid(props: MediaGridProps) -> Element { let media_result = use_resource(use_reactive!(|(props)| async move { let mut client = get_rpc_client(); let result = client.list_media(props.into_request()).await; - return result.expect("Failed to load media").into_inner(); + if let Ok(items) = result { + return Ok(items.into_inner()); + } else { + let err = result.err().unwrap(); + let message = err.message(); + return Err(format!("Failed to load results: {message}")); + } })); - match &*media_result.read_unchecked() { - Some(result) => rsx! { - div{ - class: "mediaGrid", - {result.items.iter().map(|itm| rsx!{ - MediaItem { item: itm.clone() } - })}, - } + match media_result.cloned() { + Some(value) => match value { + Ok(result) => rsx! { + div{ + class: "mediaGrid", + {result.items.iter().map(|itm| rsx!{ + MediaItem { item: itm.clone() } + })}, + } + }, + Err(msg) => rsx! { + div{ + class: "mediaGrid", + div { + "Failed to load results: {msg}" + } + } + }, }, None => rsx! { div{ @@ -59,3 +75,12 @@ pub fn MediaGrid(props: MediaGridProps) -> Element { }, } } + +pub fn Nested() -> Element { + rsx! { + div{ + "test", + slot { } + } + } +}