diff --git a/src/uxbox/ui/workspace.cljs b/src/uxbox/ui/workspace.cljs index fe91c8072..b22f37481 100644 --- a/src/uxbox/ui/workspace.cljs +++ b/src/uxbox/ui/workspace.cljs @@ -105,4 +105,3 @@ :transfer-state workspace-transfer-state :name "workspace" :mixins [mx/static rum/reactive wshortcuts/mixin]})) - diff --git a/src/uxbox/ui/workspace/base.cljs b/src/uxbox/ui/workspace/base.cljs index c9cb0744a..bbf79ebb0 100644 --- a/src/uxbox/ui/workspace/base.cljs +++ b/src/uxbox/ui/workspace/base.cljs @@ -24,7 +24,7 @@ (def ^:static pages-l (as-> (ul/getter #(let [pid (get-in % [:workspace :project])] - (dp/project-pages % pid))) $ + (dp/project-pages % pid))) $ (l/focus-atom $ st/state))) (def ^:static workspace-l diff --git a/src/uxbox/ui/workspace/toolboxes.cljs b/src/uxbox/ui/workspace/toolboxes.cljs index 4763b3e1f..a46d64971 100644 --- a/src/uxbox/ui/workspace/toolboxes.cljs +++ b/src/uxbox/ui/workspace/toolboxes.cljs @@ -87,13 +87,35 @@ ;; Layers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defn- select-shape + [selected item event] + (dom/prevent-default event) + (let [id (:id item)] + (cond + (.-ctrlKey event) + (rs/emit! (dw/select-shape id)) + + (> (count selected) 1) + (rs/emit! (dw/deselect-all) + (dw/select-shape id)) + + (contains? selected id) + (rs/emit! (dw/select-shape id)) + + :else + (rs/emit! (dw/deselect-all) + (dw/select-shape id))))) + (defn- layer-element-render [own item selected] - (let [selected? (contains? selected (:id item))] + (let [selected? (contains? selected (:id item)) + select #(select-shape selected item %)] (html - [:li {:key (str (:id item))} + [:li {:key (str (:id item)) + :on-click select + :class (when selected? "selected")} [:div.element-actions - [:div.toggle-element i/eye] + [:div.toggle-element {:class "selected"} i/eye] [:div.block-element i/lock]] [:div.element-icon i/box] [:span (or (:name item)