Expand mask when selected in workspace

This commit is contained in:
Andrés Moya 2020-10-21 09:01:12 +02:00 committed by Alonso Torres
parent 0ddf6d30b8
commit 823aa426ed
3 changed files with 23 additions and 13 deletions

View file

@ -159,7 +159,6 @@
(let [page-id (:current-page-id state) (let [page-id (:current-page-id state)
objects (get-in state [:workspace-data :pages-index page-id :objects]) objects (get-in state [:workspace-data :pages-index page-id :objects])
selected (get-in state [:workspace-local :selected]) selected (get-in state [:workspace-local :selected])
shape (get objects id)
children (cph/get-children id objects)] children (cph/get-children id objects)]
(some selected children)))] (some selected children)))]
(l/derived selector st/state))) (l/derived selector st/state)))

View file

@ -25,10 +25,11 @@
(let [frame (unchecked-get props "frame") (let [frame (unchecked-get props "frame")
shape (unchecked-get props "shape") shape (unchecked-get props "shape")
childs (unchecked-get props "childs") childs (unchecked-get props "childs")
mask (if (:masked-group? shape) expand-mask (unchecked-get props "expand-mask")
mask (if (and (:masked-group? shape) (not expand-mask))
(first childs) (first childs)
nil) nil)
childs (if (:masked-group? shape) childs (if (and (:masked-group? shape) (not expand-mask))
(rest childs) (rest childs)
childs) childs)
is-child-selected? (unchecked-get props "is-child-selected?") is-child-selected? (unchecked-get props "is-child-selected?")

View file

@ -55,6 +55,15 @@
is-child-selected? is-child-selected?
(mf/deref is-child-selected-ref) (mf/deref is-child-selected-ref)
mask-id (when (:masked-group? shape) (first (:shapes shape)))
is-mask-selected-ref
(mf/use-memo (mf/deps mask-id)
#(refs/make-selected-ref mask-id))
is-mask-selected?
(mf/deref is-mask-selected-ref)
on-double-click on-double-click
(mf/use-callback (mf/use-callback
(mf/deps (:id shape)) (mf/deps (:id shape))
@ -72,5 +81,6 @@
{:frame frame {:frame frame
:shape shape :shape shape
:childs childs :childs childs
:is-child-selected? is-child-selected?}]])))) :is-child-selected? is-child-selected?
:expand-mask is-mask-selected?}]]))))