mirror of
https://github.com/penpot/penpot.git
synced 2025-03-12 15:51:37 -05:00
Add basic selection interactions to layers toolbox.
This commit is contained in:
parent
29b0036248
commit
f39d2d57a8
3 changed files with 26 additions and 5 deletions
|
@ -105,4 +105,3 @@
|
||||||
:transfer-state workspace-transfer-state
|
:transfer-state workspace-transfer-state
|
||||||
:name "workspace"
|
:name "workspace"
|
||||||
:mixins [mx/static rum/reactive wshortcuts/mixin]}))
|
:mixins [mx/static rum/reactive wshortcuts/mixin]}))
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
(def ^:static pages-l
|
(def ^:static pages-l
|
||||||
(as-> (ul/getter #(let [pid (get-in % [:workspace :project])]
|
(as-> (ul/getter #(let [pid (get-in % [:workspace :project])]
|
||||||
(dp/project-pages % pid))) $
|
(dp/project-pages % pid))) $
|
||||||
(l/focus-atom $ st/state)))
|
(l/focus-atom $ st/state)))
|
||||||
|
|
||||||
(def ^:static workspace-l
|
(def ^:static workspace-l
|
||||||
|
|
|
@ -87,13 +87,35 @@
|
||||||
;; Layers
|
;; 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
|
(defn- layer-element-render
|
||||||
[own item selected]
|
[own item selected]
|
||||||
(let [selected? (contains? selected (:id item))]
|
(let [selected? (contains? selected (:id item))
|
||||||
|
select #(select-shape selected item %)]
|
||||||
(html
|
(html
|
||||||
[:li {:key (str (:id item))}
|
[:li {:key (str (:id item))
|
||||||
|
:on-click select
|
||||||
|
:class (when selected? "selected")}
|
||||||
[:div.element-actions
|
[:div.element-actions
|
||||||
[:div.toggle-element i/eye]
|
[:div.toggle-element {:class "selected"} i/eye]
|
||||||
[:div.block-element i/lock]]
|
[:div.block-element i/lock]]
|
||||||
[:div.element-icon i/box]
|
[:div.element-icon i/box]
|
||||||
[:span (or (:name item)
|
[:span (or (:name item)
|
||||||
|
|
Loading…
Add table
Reference in a new issue