rsiot/components/cmp_leptos/utils/
define_window_url.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//! Определить URL-адрес, введенный в браузере
//!
//! В `Cargo.toml` прописать:
//!
//! ```toml
//! web-sys = {version = "*", features = ["Location", "Window"]}
//! ```

use tracing::info;
use url::Url;
use web_sys::window;

/// Определить URL-адрес, введенный в браузере
///
/// В `Cargo.toml` прописать:
///
/// ```toml
/// web-sys = {version = "*", features = ["Location", "Window"]}
/// ```
pub fn define_window_url() -> Result<Url, String> {
    let window = window().ok_or("Window is None")?;
    let href = window
        .location()
        .href()
        .map_err(|err| format!("{:?}", err))?;
    let mut url = Url::parse(&href).map_err(|err| err.to_string())?;
    url.set_path("");
    info!("Window location: {:?}", url);
    Ok(url)
}