mirror of
https://github.com/penpot/penpot.git
synced 2026-04-25 19:28:12 +00:00
Add basic selection interactions to layers toolbox.
This commit is contained in:
parent
29b0036248
commit
f39d2d57a8
@ -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…
x
Reference in New Issue
Block a user