diff --git a/client/src/args.rs b/client/src/args.rs index 3455079..49e8007 100644 --- a/client/src/args.rs +++ b/client/src/args.rs @@ -45,24 +45,22 @@ impl Args { use bevy::log::error; use web_sys::{UrlSearchParams, window}; - let Some(window) = window() else { - return Self::default(); - }; - let Ok(search) = window.location().search() else { - return Self::default(); - }; - let Ok(params) = UrlSearchParams::new_with_str(&search) else { - return Self::default(); - }; - let Some(address) = params.get("connect") else { - return Self::default(); - }; - let Some(digest) = params.get("digest") else { - error!("Missing 'digest' parameter."); - return Self::default(); - }; - Self { - mode: Some(Mode::Connect { address, digest }), + let params = window() + .and_then(|window| window.location().search().ok()) + .and_then(|search| UrlSearchParams::new_with_str(&search).ok()); + + if let Some(params) = params { + if let Some(address) = params.get("connect") { + if let Some(digest) = params.get("digest") { + return Self { + mode: Some(Mode::Connect { address, digest }), + }; + } else { + error!("Missing 'digest' parameter."); + } + } } + + Self::default() } }