From 3e336112ca97d781d05e8c5ccf656c383c431443 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 22 Dec 2015 20:25:38 +0200 Subject: [PATCH] Fix mouse mixin. --- frontend/uxbox/ui/workspace.cljs | 6 +-- frontend/uxbox/ui/workspace/base.cljs | 45 +++++++++++++---------- frontend/uxbox/ui/workspace/workarea.cljs | 15 +++----- 3 files changed, 34 insertions(+), 32 deletions(-) diff --git a/frontend/uxbox/ui/workspace.cljs b/frontend/uxbox/ui/workspace.cljs index e2c66b110..e0647fa2b 100644 --- a/frontend/uxbox/ui/workspace.cljs +++ b/frontend/uxbox/ui/workspace.cljs @@ -18,7 +18,7 @@ ;; Workspace ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defn workspace-render +(defn- workspace-render [own projectid] (let [workspace (rum/react wb/workspace-state )] (html @@ -43,13 +43,13 @@ (when-not (empty? (:toolboxes workspace)) (aside))]]))) -(defn workspace-will-mount +(defn- workspace-will-mount [own] (let [[projectid pageid] (:rum/props own)] (rs/emit! (dw/initialize projectid pageid)) own)) -(defn workspace-transfer-state +(defn- workspace-transfer-state [old-state state] (let [[projectid pageid] (:rum/props state)] (rs/emit! (dw/initialize projectid pageid)) diff --git a/frontend/uxbox/ui/workspace/base.cljs b/frontend/uxbox/ui/workspace/base.cljs index 911d35cf6..f2b95f9a8 100644 --- a/frontend/uxbox/ui/workspace/base.cljs +++ b/frontend/uxbox/ui/workspace/base.cljs @@ -74,26 +74,33 @@ (defonce mouse-s (rx/dedupe mouse-bus)) (defonce mouse-position (rx/to-atom (rx/throttle 50 mouse-s))) -(def mouse-mixin - {:did-mount - (fn [own] - (let [canvas (util/get-ref-dom own "canvas") - key (events/listen js/document EventType.MOUSEMOVE - (fn [event] - (let [brect (.getBoundingClientRect canvas) - offset-x (.-left brect) - offset-y (.-top brect) - x (.-clientX event) - y (.-clientY event)] - (rx/push! mouse-bus [(- x offset-x) - (- y offset-y)]))))] - (assoc own ::eventkey key))) +(defn- mouse-mixin-did-mount + [own] + (println "mouse-mixin-did-mount") + (let [canvas (util/get-ref-dom own "canvas") + on-mousemove (fn [event] + (let [brect (.getBoundingClientRect canvas) + offset-x (.-left brect) + offset-y (.-top brect) + x (.-clientX event) + y (.-clientY event)] + (rx/push! mouse-bus [(- x offset-x) + (- y offset-y)]))) + key (events/listen js/document + EventType.MOUSEMOVE + on-mousemove)] + (assoc own ::eventkey key))) - :did-unmount - (fn [own] - (let [key (::eventkey own)] - (events/unlistenByKey key) - (dissoc own ::eventkey)))}) +(defn- mouse-mixin-will-unmount + [own] + (println "mouse-mixin-will-unmount") + (let [key (::eventkey own)] + (events/unlistenByKey key) + (dissoc own ::eventkey))) + +(def ^:static mouse-mixin + {:did-mount mouse-mixin-did-mount + :will-unmount mouse-mixin-will-unmount}) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Constants diff --git a/frontend/uxbox/ui/workspace/workarea.cljs b/frontend/uxbox/ui/workspace/workarea.cljs index c63697190..ac31e95b4 100644 --- a/frontend/uxbox/ui/workspace/workarea.cljs +++ b/frontend/uxbox/ui/workspace/workarea.cljs @@ -15,20 +15,15 @@ ;; Coordinates Debug ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defn coordenates-render - [] +(defn- coordenates-render + [own] (let [[x y] (rum/react wb/mouse-position)] (html - [:div - {:style {:position "absolute" :left "80px" :top "20px"}} + [:div {:style {:position "absolute" :left "80px" :top "20px"}} [:table [:tbody - [:tr - [:td "X:"] - [:td x]] - [:tr - [:td "Y:"] - [:td y]]]]]))) + [:tr [:td "X:"] [:td x]] + [:tr [:td "Y:"] [:td y]]]]]))) (def coordinates (util/component