Add more DOM attrs friendly render-id generation hook

This commit is contained in:
Andrey Antukh 2023-09-07 14:35:57 +02:00
parent 645b7e4b8d
commit 1b420e55f4
2 changed files with 9 additions and 1 deletions

View file

@ -20,6 +20,13 @@
[goog.functions :as f]
[rumext.v2 :as mf]))
(def ^:private render-id 0)
(defn use-render-id
"Get a stable, DOM usable identifier across all react rerenders"
[]
(mf/useMemo #(js* "\"render-\" + (++~{})" render-id) #js []))
(defn use-rxsub
[ob]
(let [[state reset-state!] (mf/useState #(if (satisfies? IDeref ob) @ob nil))]

View file

@ -11,6 +11,7 @@
[app.common.pages.helpers :as cph]
[app.main.refs :as refs]
[app.main.ui.context :as muc]
[app.main.ui.hooks :as h]
[app.main.ui.shapes.attrs :as attrs]
[app.main.ui.shapes.export :as ed]
[app.main.ui.shapes.fills :as fills]
@ -63,7 +64,7 @@
(or (:blend-mode shape)))
type (dm/get-prop shape :type)
render-id (mf/use-id)
render-id (h/use-render-id)
filter-id (dm/str "filter_" render-id)
styles (-> (obj/create)
(obj/set! "pointerEvents" pointer-events)