mirror of
https://github.com/penpot/penpot.git
synced 2025-05-17 17:36:12 +02:00
Adapt previous component function to work with latest rum version.
This commit is contained in:
parent
897fd2bae1
commit
938f4f5bfd
1 changed files with 14 additions and 35 deletions
|
@ -5,42 +5,21 @@
|
||||||
[lentes.core :as l]
|
[lentes.core :as l]
|
||||||
[goog.dom.forms :as gforms]))
|
[goog.dom.forms :as gforms]))
|
||||||
|
|
||||||
|
(extend-type cljs.core.UUID
|
||||||
|
INamed
|
||||||
|
(-name [this] (str this))
|
||||||
|
(-namespace [_] ""))
|
||||||
|
|
||||||
(defn component
|
(defn component
|
||||||
[spec]
|
[{:keys [render] :as spec}]
|
||||||
(let [name (or (:name spec)
|
{:pre [(ifn? render)]}
|
||||||
(str (gensym "rum-")))
|
(let [name (or (:name spec) (str (gensym "rum-")))
|
||||||
mixins (or (:mixins spec)
|
mixins (or (:mixins spec) [])
|
||||||
[])
|
spec (dissoc spec :name :mixins :render)
|
||||||
spec (merge (dissoc spec :name :mixins)
|
render' (fn [state]
|
||||||
(when-let [rfn (:render spec)]
|
[(apply render state (:rum/args state)) state])
|
||||||
{:render (fn [state]
|
mixins (conj mixins spec)]
|
||||||
[(apply rfn state (:rum/props state)) state])}))
|
(rum/build-ctor render' mixins name)))
|
||||||
cls (rum/build-class (conj mixins spec) name)
|
|
||||||
ctr (fn self
|
|
||||||
([] (self {}))
|
|
||||||
([& props]
|
|
||||||
(let [state {:rum/props props}]
|
|
||||||
(rum/element cls state nil))))]
|
|
||||||
(with-meta ctr {:rum/class cls})))
|
|
||||||
|
|
||||||
(defn ref-html
|
|
||||||
[own ref]
|
|
||||||
(let [component (-> own :rum/react-component)
|
|
||||||
node (aget (.-refs component) ref)]
|
|
||||||
(.-innerHTML node)))
|
|
||||||
|
|
||||||
(defn ref-value
|
|
||||||
[own ref]
|
|
||||||
(let [component (-> own :rum/react-component)
|
|
||||||
ref-node (aget (.-refs component) ref)
|
|
||||||
dom-node (.findDOMNode js/ReactDOM ref-node)]
|
|
||||||
(.-value dom-node)))
|
|
||||||
|
|
||||||
(defn get-ref-dom
|
|
||||||
[own ref]
|
|
||||||
(let [component (-> own :rum/react-component)
|
|
||||||
ref-node (aget (.-refs component) ref)]
|
|
||||||
(.findDOMNode js/ReactDOM ref-node)))
|
|
||||||
|
|
||||||
(defn concat
|
(defn concat
|
||||||
[& elements]
|
[& elements]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue