Improved performance of refs

This commit is contained in:
alonso.torres 2022-04-01 11:21:50 +02:00
parent e62f0603b5
commit 0bb20197f1
7 changed files with 67 additions and 124 deletions

View file

@ -6,6 +6,7 @@
(ns app.util.dom
(:require
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.geom.point :as gpt]
[app.common.logging :as log]
@ -231,20 +232,20 @@
(.-innerText el)))
(defn query
([^string query]
(query globals/document query))
([^string selector]
(query globals/document selector))
([^js el ^string query]
([^js el ^string selector]
(when (some? el)
(.querySelector el query))))
(.querySelector el selector))))
(defn query-all
([^string query]
(query-all globals/document query))
([^string selector]
(query-all globals/document selector))
([^js el ^string query]
([^js el ^string selector]
(when (some? el)
(.querySelectorAll el query))))
(.querySelectorAll el selector))))
(defn get-client-position
[^js event]
@ -535,3 +536,13 @@
(and (some? node)
(some? candidate)
(.contains node candidate)))
(defn seq-nodes
[root-node]
(letfn [(branch? [node]
(d/not-empty? (get-children node)))
(get-children [node]
(seq (.-children node)))]
(->> root-node
(tree-seq branch? get-children))))