Merge pull request #1322 from ealmloff/fix-text-node-target-events

Fix events with a text node target
This commit is contained in:
Jonathan Kelley authored and GitHub committed 2023-09-16 11:57:33 -07:00
commit 73169e377e
1 file changed
+12 -3
+12 -3
View File
@@ -390,7 +390,11 @@ class Interpreter {
function handler(event, name, bubbles, config) {
let target = event.target;
if (target != null) {
let preventDefaultRequests = target.getAttribute(`dioxus-prevent-default`);
let preventDefaultRequests = null;
// Some events can be triggered on text nodes, which don't have attributes
if (target instanceof Element) {
preventDefaultRequests = target.getAttribute(`dioxus-prevent-default`);
}
if (event.type === "click") {
// todo call prevent default if it's the right type of event
@@ -483,7 +487,10 @@ function handler(event, name, bubbles, config) {
}
function find_real_id(target) {
let realId = target.getAttribute(`data-dioxus-id`);
let realId = null;
if (target instanceof Element) {
realId = target.getAttribute(`data-dioxus-id`);
}
// walk the tree to find the real element
while (realId == null) {
// we've reached the root we don't want to send an event
@@ -492,7 +499,9 @@ function find_real_id(target) {
}
target = target.parentElement;
realId = target.getAttribute(`data-dioxus-id`);
if (target instanceof Element) {
realId = target.getAttribute(`data-dioxus-id`);
}
}
return realId;
}