diff --git a/leptos_dom/Cargo.toml b/leptos_dom/Cargo.toml index 12db3ddcf..9a726a1d6 100644 --- a/leptos_dom/Cargo.toml +++ b/leptos_dom/Cargo.toml @@ -49,6 +49,7 @@ features = [ "Range", "Text", "HtmlCollection", + "ShadowRoot", "TreeWalker", # Events we cast to in leptos_macro -- added here so we don't force users to import them diff --git a/leptos_dom/src/events.rs b/leptos_dom/src/events.rs index 308186114..a8af5854b 100644 --- a/leptos_dom/src/events.rs +++ b/leptos_dom/src/events.rs @@ -158,19 +158,13 @@ pub(crate) fn add_delegated_event_listener( } // navigate up tree - let host = - js_sys::Reflect::get(&node, &JsValue::from_str("host")) - .unwrap_throw(); - if host.is_truthy() - && host != node - && host.dyn_ref::().is_some() - { - node = host; - } else if let Some(parent) = - node.unchecked_into::().parent_node() + if let Some(parent) = + node.unchecked_ref::().parent_node() { node = parent.into() - } else { + } else if let Some(root) = node.dyn_ref::() { + node = root.host().unchecked_into(); + } else { node = JsValue::null() } }