mirror of
https://github.com/penpot/penpot.git
synced 2025-03-10 14: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
|
||||
:name "workspace"
|
||||
:mixins [mx/static rum/reactive wshortcuts/mixin]}))
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue