From 577f00dd24aa762171ab47263930114f1fbdbba9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 23 Mar 2026 19:19:27 +0000 Subject: [PATCH] :bug: Fix error when get-parent-with-data encounters non-Element nodes The get-parent-with-data function traverses the DOM using parentElement to find an ancestor with a specific data-* attribute. When the current node is a non-Element DOM node (e.g. Document node reached from event handlers on window), accessing .-dataset returns undefined, causing obj/in? to throw "right-hand side of 'in' should be an object". This adds a nodeType check to skip non-Element nodes during traversal and continue up the parent chain. Signed-off-by: Andrey Antukh --- frontend/src/app/util/dom.cljs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/util/dom.cljs b/frontend/src/app/util/dom.cljs index ffa2b8f361..4e068cc5d3 100644 --- a/frontend/src/app/util/dom.cljs +++ b/frontend/src/app/util/dom.cljs @@ -170,8 +170,17 @@ [^js node name] (let [name (str/camel name)] (loop [current node] - (if (or (nil? current) (obj/in? (.-dataset current) name)) + (cond + (nil? current) + nil + + (not= (.-nodeType current) js/Node.ELEMENT_NODE) + (recur (.-parentElement current)) + + (obj/in? (.-dataset current) name) current + + :else (recur (.-parentElement current)))))) (defn get-parent-with-selector