fix: dont panic when no problems are available
This commit is contained in:
parent
2678d2d3dd
commit
426c2b463e
@ -49,7 +49,10 @@ fn Ready(data: InitialData) -> impl leptos::IntoView {
|
|||||||
let problem_fetcher = LocalResource::new(move || async move {
|
let problem_fetcher = LocalResource::new(move || async move {
|
||||||
tracing::info!("Loading random problem");
|
tracing::info!("Loading random problem");
|
||||||
let problem = get_random_problem().await.expect("cannot get 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![];
|
let mut cells = vec![];
|
||||||
@ -112,7 +115,7 @@ async fn load_initial_data() -> Result<RonCodec<InitialData>, ServerFnError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[server]
|
#[server]
|
||||||
async fn get_random_problem() -> Result<RonCodec<models::Problem>, ServerFnError> {
|
async fn get_random_problem() -> Result<RonCodec<Option<models::Problem>>, ServerFnError> {
|
||||||
use crate::server::state::State;
|
use crate::server::state::State;
|
||||||
use rand::seq::IteratorRandom;
|
use rand::seq::IteratorRandom;
|
||||||
|
|
||||||
@ -123,7 +126,7 @@ async fn get_random_problem() -> Result<RonCodec<models::Problem>, ServerFnError
|
|||||||
.with(|s| {
|
.with(|s| {
|
||||||
let problems = &s.problems.problems;
|
let problems = &s.problems.problems;
|
||||||
let rng = &mut rand::thread_rng();
|
let rng = &mut rand::thread_rng();
|
||||||
problems.iter().choose(rng).unwrap().clone()
|
problems.iter().choose(rng).cloned()
|
||||||
})
|
})
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user