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 {
|
||||
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<RonCodec<InitialData>, ServerFnError> {
|
||||
}
|
||||
|
||||
#[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 rand::seq::IteratorRandom;
|
||||
|
||||
@ -123,7 +126,7 @@ async fn get_random_problem() -> Result<RonCodec<models::Problem>, 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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user