diff --git a/common/app/common/data.cljc b/common/app/common/data.cljc index f65fd4161..b6e2eb054 100644 --- a/common/app/common/data.cljc +++ b/common/app/common/data.cljc @@ -346,10 +346,12 @@ (defn check-num "Function that checks if a number is nil or nan. Will return 0 when not valid and the number otherwise." - [v] - (if (or (not v) - (not (mth/finite? v)) - (mth/nan? v)) 0 v)) + ([v] + (check-num v 0)) + ([v default] + (if (or (not v) + (not (mth/finite? v)) + (mth/nan? v)) default v))) (defmacro export diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 91876fa23..2023e73d8 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -9,6 +9,7 @@ (ns app.main.ui.workspace.viewport (:require + [app.common.data :as d] [app.common.geom.shapes :as gsh] [app.main.refs :as refs] [app.main.ui.context :as ctx] @@ -83,7 +84,7 @@ ;; STREAMS move-stream (mf/use-memo #(rx/subject)) - zoom (or zoom 1) + zoom (d/check-num zoom 1) drawing-tool (:tool drawing) drawing-obj (:object drawing) diff --git a/frontend/src/app/main/ui/workspace/viewport/actions.cljs b/frontend/src/app/main/ui/workspace/viewport/actions.cljs index 2a4bef182..dee7b8115 100644 --- a/frontend/src/app/main/ui/workspace/viewport/actions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/actions.cljs @@ -178,7 +178,8 @@ (mf/use-callback (mf/deps @hover) (fn [event] - (when (dom/class? (dom/get-target event) "viewport-controls") + (when (or (dom/class? (dom/get-target event) "viewport-controls") + (dom/class? (dom/get-target event) "viewport-selrect")) (dom/prevent-default event) (let [position (dom/get-client-position event)] diff --git a/frontend/src/app/main/ui/workspace/viewport/outline.cljs b/frontend/src/app/main/ui/workspace/viewport/outline.cljs index dcffdc669..b84ef8322 100644 --- a/frontend/src/app/main/ui/workspace/viewport/outline.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/outline.cljs @@ -21,8 +21,9 @@ (mf/defc outline {::mf/wrap-props false} [props] - (let [shape (unchecked-get props "shape") - zoom (unchecked-get props "zoom") + (let [shape (obj/get props "shape") + zoom (obj/get props "zoom" 1) + color (unchecked-get props "color") transform (gsh/transform-matrix shape) path? (= :path (:type shape)) diff --git a/frontend/src/app/main/ui/workspace/viewport/selection.cljs b/frontend/src/app/main/ui/workspace/viewport/selection.cljs index 0e2fb2033..ab3402783 100644 --- a/frontend/src/app/main/ui/workspace/viewport/selection.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/selection.cljs @@ -49,7 +49,7 @@ (mf/defc selection-rect [{:keys [transform rect zoom color on-move-selected]}] (when rect (let [{:keys [x y width height]} rect] - [:rect.main + [:rect.main.viewport-selrect {:x x :y y :width width