From 2a632512b34e5427bd517fac09677dd3766f2f7b Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 9 Mar 2023 16:15:11 +0100 Subject: [PATCH 1/2] :bug: Fix select in area of hidden children elements --- frontend/src/app/main/data/workspace/selection.cljs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index 02e78eae7..3b5c50bc2 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -255,7 +255,9 @@ :ignore-groups? ignore-groups? :full-frame? true}) (rx/map #(cph/clean-loops objects %)) - (rx/map #(into initial-set (filter (comp not blocked?)) %)) + (rx/map #(into initial-set (comp + (filter (complement blocked?)) + (remove (partial cph/hidden-parent? objects))) %)) (rx/map select-shapes))))))) (defn select-inside-group From 37f52cafc9acd0000dd1c0987d73d2bb57bc01c3 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 9 Mar 2023 17:28:21 +0100 Subject: [PATCH 2/2] :bug: Fix problem with rules when changing pages --- frontend/src/app/main/ui/hooks/resize.cljs | 34 ++++++++++++---------- frontend/src/app/main/ui/workspace.cljs | 8 ++--- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/frontend/src/app/main/ui/hooks/resize.cljs b/frontend/src/app/main/ui/hooks/resize.cljs index 2dd4231e9..6c1ebe7b7 100644 --- a/frontend/src/app/main/ui/hooks/resize.cljs +++ b/frontend/src/app/main/ui/hooks/resize.cljs @@ -81,25 +81,27 @@ callback (hooks/use-ref-callback callback) ;; We use the ref as a callback when the dom node is ready (or change) - node-ref (mf/use-fn - (fn [^js node] - (when (some? node) - (let [^js observer (mf/ref-val observer-ref) - ^js prev-val (mf/ref-val prev-val-ref)] + node-ref + (mf/use-fn + (fn [^js node] + (when (some? node) + (let [^js observer (mf/ref-val observer-ref) + ^js prev-val (mf/ref-val prev-val-ref)] - (when (and (not= prev-val node) (some? observer)) - (log/debug :action "disconnect" :js/prev-val prev-val :js/node node) - (.disconnect observer) - (mf/set-ref-val! observer-ref nil)) + (when (and (not= prev-val node) (some? observer)) + (log/debug :action "disconnect" :js/prev-val prev-val :js/node node) + (.disconnect observer) + (mf/set-ref-val! observer-ref nil)) - (when (and (not= prev-val node) (some? node)) - (let [^js observer (js/ResizeObserver. - #(callback last-resize-type (dom/get-client-size node)))] - (mf/set-ref-val! observer-ref observer) - (log/debug :action "observe" :js/node node :js/observer observer) - (.observe observer node)))) + (when (and (not= prev-val node) (some? node)) + (let [^js observer (js/ResizeObserver. + #(callback last-resize-type (dom/get-client-size node)))] + (mf/set-ref-val! observer-ref observer) + (log/debug :action "observe" :js/node node :js/observer observer) + (.observe observer node) + (callback last-resize-type (dom/get-client-size node))))) - (mf/set-ref-val! prev-val-ref node))))] + (mf/set-ref-val! prev-val-ref node))))] (mf/with-effect [] ;; On dismount we need to disconnect the current observer diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index a8f693ce1..fa0f55059 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -70,7 +70,8 @@ (when (and textpalette? (not hide-ui?)) [:& textpalette]) - [:section.workspace-content {:ref node-ref} + [:section.workspace-content {:key (dm/str "workspace-" page-id) + :ref node-ref} [:section.workspace-viewport (when (debug? :coordinates) [:& coordinates/coordinates {:colorpalette? colorpalette?}]) @@ -79,8 +80,7 @@ [:div.history-debug-overlay [:button {:on-click #(st/emit! dw/reinitialize-undo)} "CLEAR"] [:& history-toolbox]]) - [:& viewport {:key (dm/str "workspace-" page-id) - :file file + [:& viewport {:file file :wlocal wlocal :wglobal wglobal :selected selected @@ -131,7 +131,7 @@ project (mf/deref refs/workspace-project) layout (mf/deref refs/workspace-layout) wglobal (mf/deref refs/workspace-global) - ready? (mf/deref refs/workspace-ready?) + ready? (mf/deref refs/workspace-ready?) workspace-read-only? (mf/deref refs/workspace-read-only?) components-v2 (features/use-feature :components-v2)