diff --git a/src/uxbox/main/ui/auth/recovery.cljs b/src/uxbox/main/ui/auth/recovery.cljs index d58d3c3072..71128b8cf6 100644 --- a/src/uxbox/main/ui/auth/recovery.cljs +++ b/src/uxbox/main/ui/auth/recovery.cljs @@ -83,7 +83,7 @@ (defn- recovery-page-will-mount [own] - (let [[token] (:rum/props own)] + (let [[token] (:rum/args own)] (rs/emit! (uda/validate-recovery-token token)) own)) diff --git a/src/uxbox/main/ui/dashboard/images.cljs b/src/uxbox/main/ui/dashboard/images.cljs index dc01e75352..6cf99ab064 100644 --- a/src/uxbox/main/ui/dashboard/images.cljs +++ b/src/uxbox/main/ui/dashboard/images.cljs @@ -202,7 +202,7 @@ (when (kbd/shift? event) (toggle-check image))) (forward-click [event] - (dom/click (mx/get-ref-dom own "file-input"))) + (dom/click (mx/ref-node own "file-input"))) (delete-selected [] (->> (:selected @local) (run! #(rs/emit! (di/delete-image coll-id %))))) diff --git a/src/uxbox/main/ui/lightbox.cljs b/src/uxbox/main/ui/lightbox.cljs index bf519dbc7b..8a28783f39 100644 --- a/src/uxbox/main/ui/lightbox.cljs +++ b/src/uxbox/main/ui/lightbox.cljs @@ -30,7 +30,7 @@ (defn- on-out-clicked [own event] - (let [parent (mx/get-ref-dom own "parent") + (let [parent (mx/ref-node own "parent") current (dom/get-target event)] (when (dom/equals? parent current) (udl/close!)))) diff --git a/src/uxbox/main/ui/shapes/text.cljs b/src/uxbox/main/ui/shapes/text.cljs index 1630f60d6d..de4a7d9241 100644 --- a/src/uxbox/main/ui/shapes/text.cljs +++ b/src/uxbox/main/ui/shapes/text.cljs @@ -106,8 +106,8 @@ (defn- text-shape-edit-did-mount [own] - (let [[shape] (:rum/props own) - dom (mx/get-ref-dom own "container")] + (let [[shape] (:rum/args own) + dom (mx/ref-node own "container")] (set! (.-textContent dom) (:content shape "")) (.focus dom) own)) @@ -125,7 +125,7 @@ (on-done)) (on-input [ev] (let [content (dom/event->inner-text ev) - sid (:id (first (:rum/props own)))] + sid (:id (first (:rum/args own)))] (rs/emit! (uds/update-text sid {:content content}))))] (html [:g diff --git a/src/uxbox/main/ui/workspace.cljs b/src/uxbox/main/ui/workspace.cljs index e4d69a8b86..37a3e375c5 100644 --- a/src/uxbox/main/ui/workspace.cljs +++ b/src/uxbox/main/ui/workspace.cljs @@ -37,17 +37,17 @@ (defn- workspace-will-mount [own] - (let [[projectid pageid] (:rum/props own)] + (let [[projectid pageid] (:rum/args own)] (rs/emit! (dw/initialize projectid pageid) (udh/watch-page-changes)) own)) (defn- workspace-did-mount [own] - (let [[projectid pageid] (:rum/props own) + (let [[projectid pageid] (:rum/args own) sub1 (scroll/watch-scroll-interactions own) sub2 (udp/watch-page-changes pageid) - dom (mx/get-ref-dom own "workspace-canvas")] + dom (mx/ref-node own "workspace-canvas")] ;; Set initial scroll position (set! (.-scrollLeft dom) (* c/canvas-start-scroll-x @wb/zoom-l)) @@ -67,8 +67,8 @@ (defn- workspace-transfer-state [old-state state] - (let [[projectid pageid] (:rum/props state) - [oldprojectid oldpageid] (:rum/props old-state)] + (let [[projectid pageid] (:rum/args state) + [oldprojectid oldpageid] (:rum/args old-state)] (if (not= pageid oldpageid) (do (rs/emit! (dw/initialize projectid pageid)) @@ -96,7 +96,7 @@ (rs/emit! (dw/increase-zoom)) (rs/emit! (dw/decrease-zoom))) - (let [dom (mx/get-ref-dom own "workspace-canvas")] + (let [dom (mx/ref-node own "workspace-canvas")] (set! (.-scrollLeft dom) (* c/canvas-start-scroll-x @wb/zoom-l)) (set! (.-scrollTop dom) (* c/canvas-start-scroll-y @wb/zoom-l))))) diff --git a/src/uxbox/main/ui/workspace/canvas.cljs b/src/uxbox/main/ui/workspace/canvas.cljs index a1e55d92b0..ac4501c30f 100644 --- a/src/uxbox/main/ui/workspace/canvas.cljs +++ b/src/uxbox/main/ui/workspace/canvas.cljs @@ -119,14 +119,14 @@ (defn- viewport-did-mount [own] (letfn [(translate-point-to-viewport [pt] - (let [viewport (mx/get-ref-dom own "viewport") + (let [viewport (mx/ref-node own "viewport") brect (.getBoundingClientRect viewport) brect (gpt/point (parse-int (.-left brect)) (parse-int (.-top brect)))] (gpt/subtract pt brect))) (translate-point-to-canvas [pt] - (let [viewport (mx/get-ref-dom own "viewport")] + (let [viewport (mx/ref-node own "viewport")] (when-let [canvas (dom/get-element-by-class "page-canvas" viewport)] (let [brect (.getBoundingClientRect canvas) bbox (.getBBox canvas) diff --git a/src/uxbox/main/ui/workspace/ruler.cljs b/src/uxbox/main/ui/workspace/ruler.cljs index ebc32f11da..1b16b171a1 100644 --- a/src/uxbox/main/ui/workspace/ruler.cljs +++ b/src/uxbox/main/ui/workspace/ruler.cljs @@ -25,7 +25,7 @@ (defn- resolve-position [own pt] - (let [overlay (mx/get-ref-dom own "overlay") + (let [overlay (mx/ref-node own "overlay") brect (.getBoundingClientRect overlay) bpt (gpt/point (.-left brect) (.-top brect))] (gpt/subtract pt bpt))) diff --git a/src/uxbox/main/ui/workspace/scroll.cljs b/src/uxbox/main/ui/workspace/scroll.cljs index ff7cdff86b..4906faffe1 100644 --- a/src/uxbox/main/ui/workspace/scroll.cljs +++ b/src/uxbox/main/ui/workspace/scroll.cljs @@ -37,7 +37,7 @@ (on-scroll [pt initial] (let [{:keys [x y]} (gpt/subtract pt initial) - el (mx/get-ref-dom own "workspace-canvas") + el (mx/ref-node own "workspace-canvas") cx (.-scrollLeft el) cy (.-scrollTop el)] (set! (.-scrollLeft el) (- cx x)) diff --git a/src/uxbox/util/mixins.cljs b/src/uxbox/util/mixins.cljs index 495de7c852..8d2a33ac49 100644 --- a/src/uxbox/util/mixins.cljs +++ b/src/uxbox/util/mixins.cljs @@ -28,29 +28,12 @@ (rum/with-key element (str i))))) (defn local - "Adds an atom to component’s state that can be used as local state. - Atom is stored under key `:rum/local`. - Component will be automatically re-rendered if atom’s value changes" ([] - (local {} :rum/local)) + (rum/local {} :rum/local)) ([initial] - (local initial :rum/local)) + (rum/local initial :rum/local)) ([initial key] - {:transfer-state - (fn [old new] - (assoc new key (old key))) - :will-mount - (fn [state] - (let [local-state (atom initial) - component (:rum/react-component state)] - (add-watch local-state key - (fn [_ _ oldv newv] - (when (not= oldv newv) - (rum/request-render component)))) - (assoc state key local-state))) - })) + (rum/local initial key))) -(def static - {:should-update - (fn [old-state new-state] - (not= (:rum/props old-state) (:rum/props new-state)))}) +(def static rum/static) +(def ref-node rum/ref-node)