From 426c2b463ecd287d658d5e7a3eef66284e76e369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asger=20Juul=20Brunsh=C3=B8j?= Date: Wed, 22 Jan 2025 23:32:45 +0100 Subject: [PATCH] fix: dont panic when no problems are available --- README.md | 1 + crates/ascend/src/pages/wall.rs | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..0e75d3b --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Ascend diff --git a/crates/ascend/src/pages/wall.rs b/crates/ascend/src/pages/wall.rs index 0b3903c..0a39241 100644 --- a/crates/ascend/src/pages/wall.rs +++ b/crates/ascend/src/pages/wall.rs @@ -49,7 +49,10 @@ fn Ready(data: InitialData) -> impl leptos::IntoView { let problem_fetcher = LocalResource::new(move || async move { tracing::info!("Loading random problem"); let problem = get_random_problem().await.expect("cannot get random problem"); - current_problem_writer.set(Some(problem.into_inner())); + if problem.is_none() { + tracing::info!("No problem returned by server in response to request for random problem"); + } + current_problem_writer.set(problem.into_inner()); }); let mut cells = vec![]; @@ -112,7 +115,7 @@ async fn load_initial_data() -> Result, ServerFnError> { } #[server] -async fn get_random_problem() -> Result, ServerFnError> { +async fn get_random_problem() -> Result>, ServerFnError> { use crate::server::state::State; use rand::seq::IteratorRandom; @@ -123,7 +126,7 @@ async fn get_random_problem() -> Result, ServerFnError .with(|s| { let problems = &s.problems.problems; let rng = &mut rand::thread_rng(); - problems.iter().choose(rng).unwrap().clone() + problems.iter().choose(rng).cloned() }) .await;