simplify a bunch of code

This commit is contained in:
Simon Gardling 2022-03-08 15:01:55 -05:00
parent 45f86d2c2d
commit ba01a06359
4 changed files with 19 additions and 6 deletions

View File

@ -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"

View File

@ -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::<web_sys::HtmlElement>().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)]

View File

@ -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))
}
}
}

View File

@ -24,8 +24,6 @@
async function run() {
await init();
document.getElementById("loading").remove();
start("canvas");
}
run();
</script>