From 3a02520ffac43f5743f0ec3bde51debe75ae63f1 Mon Sep 17 00:00:00 2001 From: Evan Almloff Date: Fri, 8 Sep 2023 10:32:48 -0500 Subject: [PATCH] fix web onmount event --- packages/web/src/dom.rs | 3 +-- packages/web/src/event.rs | 14 +++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/web/src/dom.rs b/packages/web/src/dom.rs index 9799b50be..9cdabed3f 100644 --- a/packages/web/src/dom.rs +++ b/packages/web/src/dom.rs @@ -253,8 +253,7 @@ impl WebsysDom { let node = dioxus_interpreter_js::get_node(id.0 as u32); if let Some(element) = node.dyn_ref::() { log::info!("mounted event fired: {}", id.0); - let data: dioxus_html::MountedData = element.into(); - let data = PlatformEventData::new(Box::new(data)); + let data = PlatformEventData::new(Box::new(element.clone())); let _ = self.event_channel.unbounded_send(UiEvent { name: "mounted".to_string(), bubbles: false, diff --git a/packages/web/src/event.rs b/packages/web/src/event.rs index e9d6e4afb..d1eed67a6 100644 --- a/packages/web/src/event.rs +++ b/packages/web/src/event.rs @@ -83,7 +83,11 @@ impl HtmlEventConverter for WebEventConverter { fn convert_mounted_data(&self, event: &dioxus_html::PlatformEventData) -> MountedData { #[cfg(feature = "mounted")] { - MountedData::from(downcast_event(event).element.clone()) + MountedData::from( + event + .downcast::() + .expect("event should be a web_sys::Element"), + ) } #[cfg(not(feature = "mounted"))] { @@ -216,10 +220,10 @@ impl WebEventExt for dioxus_html::MediaData { } } -impl WebEventExt for MountedData { - fn web_event(&self) -> &MountedData { - self.downcast::() - .expect("event should be a WebMountedEvent") +impl WebEventExt for MountedData { + fn web_event(&self) -> &web_sys::Element { + self.downcast::() + .expect("event should be a web_sys::Element") } }