aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHayleigh Thompson <me@hayleigh.dev>2024-04-01 19:02:11 +0100
committerHayleigh Thompson <me@hayleigh.dev>2024-04-01 19:02:27 +0100
commit3ad7550a62a2bccdedc8004b46ab5c8293fcfb3a (patch)
tree57ba1b2c52ef11b058ac4384d317f52987360860
parent449ac8e7e98e31545cd8743e0e7b48eaa26e6278 (diff)
downloadlustre-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.mjs10
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;
}