From bd7b841deb075d20a16f039d4cbff8376bec22f1 Mon Sep 17 00:00:00 2001 From: Filipe Rodrigues Date: Sun, 4 Feb 2024 11:35:57 +0000 Subject: [PATCH] Moved and renamed `ElementEventListener` to `dynatos_util::EventTargetAddListener`. --- dynatos-html/src/lib.rs | 4 ---- dynatos-router/src/anchor.rs | 4 ++-- {dynatos-html => dynatos-util}/src/event_listener.rs | 9 +++++---- dynatos-util/src/lib.rs | 6 ++++++ examples/counter/src/main.rs | 4 ++-- examples/query/src/main.rs | 4 ++-- 6 files changed, 17 insertions(+), 14 deletions(-) rename {dynatos-html => dynatos-util}/src/event_listener.rs (84%) diff --git a/dynatos-html/src/lib.rs b/dynatos-html/src/lib.rs index 7373e8e..eecfdd9 100644 --- a/dynatos-html/src/lib.rs +++ b/dynatos-html/src/lib.rs @@ -4,12 +4,8 @@ #![feature(decl_macro)] // Modules -mod event_listener; pub mod html; -// Exports -pub use event_listener::{ev, ElementEventListener, EventListener}; - // Imports use wasm_bindgen::JsValue; diff --git a/dynatos-router/src/anchor.rs b/dynatos-router/src/anchor.rs index d73ac72..0b7d2ea 100644 --- a/dynatos-router/src/anchor.rs +++ b/dynatos-router/src/anchor.rs @@ -3,8 +3,8 @@ // Imports use { crate::Location, - dynatos_html::{ev, html, ElementEventListener, ElementWithAttr}, - dynatos_util::JsResultContext, + dynatos_html::{html, ElementWithAttr}, + dynatos_util::{ev, EventTargetAddListener, JsResultContext}, web_sys::{Element, PointerEvent}, }; diff --git a/dynatos-html/src/event_listener.rs b/dynatos-util/src/event_listener.rs similarity index 84% rename from dynatos-html/src/event_listener.rs rename to dynatos-util/src/event_listener.rs index 2ebe831..38a0d3c 100644 --- a/dynatos-html/src/event_listener.rs +++ b/dynatos-util/src/event_listener.rs @@ -6,9 +6,9 @@ use wasm_bindgen::{ JsCast, }; -/// Extension trait to define an event listener on an element with a closure -#[extend::ext_sized(name = ElementEventListener)] -pub impl web_sys::Element { +/// Extension trait to define an event listener on an event target with a closure +#[extend::ext_sized(name = EventTargetAddListener)] +pub impl> T { fn add_event_listener(&self, f: F) where E: EventListener, @@ -22,7 +22,8 @@ pub impl web_sys::Element { // Then add it // TODO: Can this fail? On MDN, nothing seems to mention it can throw. - self.add_event_listener_with_callback(E::name(), &closure) + self.as_ref() + .add_event_listener_with_callback(E::name(), &closure) .expect("Unable to add event listener"); } diff --git a/dynatos-util/src/lib.rs b/dynatos-util/src/lib.rs index 643ed11..35e529a 100644 --- a/dynatos-util/src/lib.rs +++ b/dynatos-util/src/lib.rs @@ -3,6 +3,12 @@ // Features #![feature(decl_macro)] +// Modules +mod event_listener; + +// Exports +pub use event_listener::{ev, EventListener, EventTargetAddListener}; + // Imports use { std::fmt, diff --git a/examples/counter/src/main.rs b/examples/counter/src/main.rs index c34171b..f0b9ece 100644 --- a/examples/counter/src/main.rs +++ b/examples/counter/src/main.rs @@ -4,9 +4,9 @@ use { anyhow::Context, dynatos::ElementDynText, - dynatos_html::{ev, html, ElementEventListener, ElementWithChildren, ElementWithTextContent}, + dynatos_html::{html, ElementWithChildren, ElementWithTextContent}, dynatos_reactive::{Signal, SignalGet, SignalSet, SignalUpdate}, - dynatos_util::JsResultContext, + dynatos_util::{ev, EventTargetAddListener, JsResultContext}, web_sys::Element, }; diff --git a/examples/query/src/main.rs b/examples/query/src/main.rs index 16802c9..215f436 100644 --- a/examples/query/src/main.rs +++ b/examples/query/src/main.rs @@ -8,10 +8,10 @@ use { anyhow::Context, dynatos::ElementDynText, dynatos_context::Handle, - dynatos_html::{ev, html, ElementEventListener, ElementWithChildren, ElementWithTextContent}, + dynatos_html::{html, ElementWithChildren, ElementWithTextContent}, dynatos_reactive::{SignalGet, SignalSet, SignalUpdate, SignalWithDefault}, dynatos_router::{Location, QuerySignal}, - dynatos_util::{JsResultContext, ObjectDefineProperty}, + dynatos_util::{ev, EventTargetAddListener, JsResultContext, ObjectDefineProperty}, wasm_bindgen::prelude::wasm_bindgen, web_sys::Element, };