use leptos::*; use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::{use_document, use_service_worker, UseServiceWorkerReturn}; use web_sys::HtmlMetaElement; #[component] fn Demo() -> impl IntoView { let build = load_meta_element("version") .map(|meta| meta.content()) .expect("'version' meta element"); let UseServiceWorkerReturn { registration, installing, waiting, active, skip_waiting, .. } = use_service_worker(); view! {

"Current build: " {build}


"registration: " {move || format!("{:#?}", registration())}

"installing: "

"waiting: "

"active: "


} } fn main() { _ = console_log::init_with_level(log::Level::Debug); console_error_panic_hook::set_once(); mount_to(demo_or_body(), || { view! { } }) } fn load_meta_element(name: &str) -> Result { use wasm_bindgen::JsCast; if let Some(document) = &*use_document() { document .query_selector(format!("meta[name=\"{name}\"]").as_str()) .ok() .flatten() .ok_or_else(|| format!("Unable to find meta element with name '{name}'."))? .dyn_into::() .map_err(|err| format!("Unable to cast element to HtmlMetaElement. Err: '{err:?}'.")) } else { Err("Unable to find document.".into()) } }