diff options
author | Hayleigh Thompson <me@hayleigh.dev> | 2024-04-01 19:02:11 +0100 |
---|---|---|
committer | Hayleigh Thompson <me@hayleigh.dev> | 2024-04-01 19:02:27 +0100 |
commit | 3ad7550a62a2bccdedc8004b46ab5c8293fcfb3a (patch) | |
tree | 57ba1b2c52ef11b058ac4384d317f52987360860 | |
parent | 449ac8e7e98e31545cd8743e0e7b48eaa26e6278 (diff) | |
download | lustre-3ad7550a62a2bccdedc8004b46ab5c8293fcfb3a.tar.gz lustre-3ad7550a62a2bccdedc8004b46ab5c8293fcfb3a.zip |
:bug: Fixed a bug where event handlers would not work on propagated events.
-rw-r--r-- | src/vdom.ffi.mjs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/vdom.ffi.mjs b/src/vdom.ffi.mjs index 8d5c287..2e1e46c 100644 --- a/src/vdom.ffi.mjs +++ b/src/vdom.ffi.mjs @@ -429,15 +429,17 @@ function createElementNode({ prev, next, dispatch, stack }) { const registeredHandlers = new WeakMap(); function lustreGenericEventHandler(event) { - if (!registeredHandlers.has(event.target)) { - event.target.removeEventListener(event.type, lustreGenericEventHandler); + const target = event.currentTarget; + + if (!registeredHandlers.has(target)) { + target.removeEventListener(event.type, lustreGenericEventHandler); return; } - const handlersForEventTarget = registeredHandlers.get(event.target); + const handlersForEventTarget = registeredHandlers.get(target); if (!handlersForEventTarget.has(event.type)) { - event.target.removeEventListener(event.type, lustreGenericEventHandler); + target.removeEventListener(event.type, lustreGenericEventHandler); return; } |