rsiot/components/cmp_leptos/utils/
define_window_url.rs

1//! Определить URL-адрес, введенный в браузере
2//!
3//! В `Cargo.toml` прописать:
4//!
5//! ```toml
6//! web-sys = {version = "*", features = ["Location", "Window"]}
7//! ```
8
9use tracing::info;
10use url::Url;
11use web_sys::window;
12
13/// Определить URL-адрес, введенный в браузере
14///
15/// В `Cargo.toml` прописать:
16///
17/// ```toml
18/// web-sys = {version = "*", features = ["Location", "Window"]}
19/// ```
20pub fn define_window_url() -> Result<Url, String> {
21    let window = window().ok_or("Window is None")?;
22    let href = window
23        .location()
24        .href()
25        .map_err(|err| format!("{:?}", err))?;
26    let mut url = Url::parse(&href).map_err(|err| err.to_string())?;
27    url.set_path("");
28    info!("Window location: {:?}", url);
29    Ok(url)
30}