From ba01a06359281f720f699aa05d56ee39b73c0869 Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Tue, 8 Mar 2022 15:01:55 -0500 Subject: [PATCH] simplify a bunch of code --- Cargo.toml | 1 + src/egui_app.rs | 16 +++++++++++++++- src/lib.rs | 6 +++--- www/index.html | 2 -- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2506361..a2fd611 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,3 +42,4 @@ instant = { version = "0.1.12", features = ["wasm-bindgen"] } console_error_panic_hook = "0.1.7" wee_alloc = "0.4.5" wasm-bindgen = { version = "0.2.79", default-features = false, features = ["std"] } +web-sys = "0.3.56" \ No newline at end of file diff --git a/src/egui_app.rs b/src/egui_app.rs index ae96f71..71a4cb5 100644 --- a/src/egui_app.rs +++ b/src/egui_app.rs @@ -98,6 +98,17 @@ lazy_static::lazy_static! { }; } +cfg_if::cfg_if! { + if #[cfg(target_arch = "wasm32")] { + use wasm_bindgen::JsCast; + fn stop_loading() { + let document = web_sys::window().unwrap().document().unwrap(); + let loading_element = document.get_element_by_id("loading").unwrap().dyn_into::().unwrap(); + loading_element.remove(); + } + } +} + // Used when displaying supported expressions in the Help window const HELP_EXPR: &str = "- sqrt(x): square root of x - abs(x): absolute value of x @@ -362,7 +373,10 @@ impl epi::App for MathApp { fn name(&self) -> &str { "(Yet-to-be-named) Graphing Software" } // Called once before the first frame. - fn setup(&mut self, _ctx: &Context, _frame: &Frame, _storage: Option<&dyn Storage>) {} + fn setup(&mut self, _ctx: &Context, _frame: &Frame, _storage: Option<&dyn Storage>) { + #[cfg(target_arch = "wasm32")] + stop_loading(); + } // Called each time the UI needs repainting, which may be many times per second. #[inline(always)] diff --git a/src/lib.rs b/src/lib.rs index f8507b7..225b30b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,8 +14,8 @@ cfg_if::cfg_if! { #[global_allocator] static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; - #[wasm_bindgen] - pub fn start(canvas_id: &str) -> Result<(), wasm_bindgen::JsValue> { + #[wasm_bindgen(start)] + pub fn start() -> Result<(), wasm_bindgen::JsValue> { log_helper("Initializing..."); // Used in order to hook into `panic!()` to log in the browser's console @@ -27,7 +27,7 @@ cfg_if::cfg_if! { log_helper("Starting App..."); let app = egui_app::MathApp::default(); - eframe::start_web(canvas_id, Box::new(app)) + eframe::start_web("canvas", Box::new(app)) } } } diff --git a/www/index.html b/www/index.html index e1d6234..ee62f5c 100644 --- a/www/index.html +++ b/www/index.html @@ -24,8 +24,6 @@ async function run() { await init(); - document.getElementById("loading").remove(); - start("canvas"); } run();