diff --git a/src/uxbox/ui/workspace/canvas.cljs b/src/uxbox/ui/workspace/canvas.cljs index 5529896e4..430f99a8b 100644 --- a/src/uxbox/ui/workspace/canvas.cljs +++ b/src/uxbox/ui/workspace/canvas.cljs @@ -27,7 +27,7 @@ [uxbox.ui.workspace.movement :as cmov] [uxbox.ui.workspace.resize :as cres] [uxbox.ui.workspace.ruler :refer (ruler)] - [uxbox.ui.workspace.canvas.selection :refer (shapes-selection)] + [uxbox.ui.workspace.selection :refer (selection-handlers)] [uxbox.ui.workspace.selrect :refer (selrect)] [uxbox.ui.workspace.grid :refer (grid)]) (:import goog.events.EventType)) @@ -64,7 +64,7 @@ :height height} (background) [:svg.page-layout {} - (shapes-selection) + (selection-handlers) [:g.main {} (for [item (reverse (:shapes page))] (-> (uus/shape item) diff --git a/src/uxbox/ui/workspace/canvas/selection.cljs b/src/uxbox/ui/workspace/selection.cljs similarity index 77% rename from src/uxbox/ui/workspace/canvas/selection.cljs rename to src/uxbox/ui/workspace/selection.cljs index eb1207365..a66cecf4c 100644 --- a/src/uxbox/ui/workspace/canvas/selection.cljs +++ b/src/uxbox/ui/workspace/selection.cljs @@ -5,24 +5,27 @@ ;; Copyright (c) 2015-2016 Andrey Antukh ;; Copyright (c) 2015-2016 Juan de la Cruz -(ns uxbox.ui.workspace.canvas.selection +(ns uxbox.ui.workspace.selection + "Multiple selection handlers component." (:require [sablono.core :as html :refer-macros [html]] [rum.core :as rum] [lentes.core :as l] - [uxbox.state :as ust] + [uxbox.state :as st] [uxbox.shapes :as ush] - [uxbox.util.lens :as ul] - [uxbox.ui.workspace.base :as wb] [uxbox.ui.mixins :as mx])) +;; --- Lenses + (def ^:const selected-shapes-l (letfn [(getter [state] (let [selected (get-in state [:workspace :selected])] (mapv #(get-in state [:shapes-by-id %]) selected)))] - (as-> (ul/getter getter) $ - (l/focus-atom $ ust/state)))) + (-> (l/getter getter) + (l/focus-atom st/state)))) -(defn shapes-selection-render +;; --- Selection Handlers (Component) + +(defn selection-handlers-render [own] (let [shapes (rum/react selected-shapes-l)] (when (> (count shapes) 1) @@ -34,8 +37,8 @@ :style {:stroke "#333" :fill "transparent" :stroke-opacity "1"}}]]))))) -(def ^:const shapes-selection +(def selection-handlers (mx/component - {:render shapes-selection-render - :name "shapes-selection" + {:render selection-handlers-render + :name "selection-handlers" :mixins [rum/reactive mx/static]}))