From 07f671c8e19a2a2e90afc3db94c4edebcfffe982 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Tue, 2 Mar 2021 00:21:11 -0500 Subject: [PATCH] Fix: bug that phantom triggered events --- packages/web/examples/rsxt.rs | 1 - packages/web/src/interpreter.rs | 36 ++++++++++++++++----------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/packages/web/examples/rsxt.rs b/packages/web/examples/rsxt.rs index e327198c1..2ec4e52bf 100644 --- a/packages/web/examples/rsxt.rs +++ b/packages/web/examples/rsxt.rs @@ -6,7 +6,6 @@ use dioxus_web::WebsysRenderer; fn main() { wasm_logger::init(wasm_logger::Config::new(log::Level::Debug)); console_error_panic_hook::set_once(); - wasm_bindgen_futures::spawn_local(WebsysRenderer::start(Example)) } diff --git a/packages/web/src/interpreter.rs b/packages/web/src/interpreter.rs index 44f56aeec..85c83a2cd 100644 --- a/packages/web/src/interpreter.rs +++ b/packages/web/src/interpreter.rs @@ -78,30 +78,30 @@ impl EventDelegater { let typ = event.type_(); - let gi_id: usize = target + let gi_id = target .get_attribute(&format!("dioxus-giid-{}", typ)) - .and_then(|v| v.parse().ok()) - .unwrap_or_default(); + .and_then(|v| v.parse().ok()); - let gi_gen: u64 = target + let gi_gen = target .get_attribute(&format!("dioxus-gigen-{}", typ)) - .and_then(|v| v.parse().ok()) - .unwrap_or_default(); + .and_then(|v| v.parse().ok()); - let li_idx: usize = target + let li_idx = target .get_attribute(&format!("dioxus-lidx-{}", typ)) - .and_then(|v| v.parse().ok()) - .unwrap_or_default(); + .and_then(|v| v.parse().ok()); - // Call the trigger - trigger.0.as_ref()(EventTrigger::new( - virtual_event_from_websys_event(event), - CbIdx { - gi_gen, - gi_id, - listener_idx: li_idx, - }, - )); + if let (Some(gi_id), Some(gi_gen), Some(li_idx)) = (gi_id, gi_gen, li_idx) { + + // Call the trigger + trigger.0.as_ref()(EventTrigger::new( + virtual_event_from_websys_event(event), + CbIdx { + gi_gen, + gi_id, + listener_idx: li_idx, + }, + )); + } }) as Box); self.root