From 7caf4b9136e13ad038fb2641245ee051815c721c Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 3 Nov 2022 16:13:58 +0100 Subject: [PATCH] :sparkles: Removed constraints when layout child --- .../main/ui/workspace/sidebar/options.cljs | 40 ++++++++++--------- .../sidebar/options/menus/constraints.cljs | 1 - .../options/menus/layout_container.cljs | 17 ++++---- .../sidebar/options/menus/measures.cljs | 7 +--- .../sidebar/options/shapes/bool.cljs | 6 ++- .../sidebar/options/shapes/circle.cljs | 5 ++- .../sidebar/options/shapes/frame.cljs | 5 ++- .../sidebar/options/shapes/group.cljs | 3 +- .../sidebar/options/shapes/image.cljs | 5 ++- .../sidebar/options/shapes/multiple.cljs | 6 ++- .../sidebar/options/shapes/path.cljs | 5 ++- .../sidebar/options/shapes/rect.cljs | 6 ++- .../sidebar/options/shapes/svg_raw.cljs | 5 ++- .../sidebar/options/shapes/text.cljs | 8 ++-- 14 files changed, 67 insertions(+), 52 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options.cljs b/frontend/src/app/main/ui/workspace/sidebar/options.cljs index 5024d3dd97..360151a9c7 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.workspace.sidebar.options (:require [app.common.data :as d] + [app.common.geom.shapes :as gsh] [app.main.data.workspace :as udw] [app.main.refs :as refs] [app.main.store :as st] @@ -36,24 +37,27 @@ (mf/defc shape-options {::mf/wrap [#(mf/throttle % 60)]} [{:keys [shape shapes-with-children page-id file-id shared-libs]}] - [:* - (case (:type shape) - :frame [:& frame/options {:shape shape}] - :group [:& group/options {:shape shape :shape-with-children shapes-with-children :file-id file-id :shared-libs shared-libs}] - :text [:& text/options {:shape shape :file-id file-id :shared-libs shared-libs}] - :rect [:& rect/options {:shape shape}] - :circle [:& circle/options {:shape shape}] - :path [:& path/options {:shape shape}] - :image [:& image/options {:shape shape}] - :svg-raw [:& svg-raw/options {:shape shape}] - :bool [:& bool/options {:shape shape}] - nil) - [:& exports-menu - {:ids [(:id shape)] - :values (select-keys shape [:exports]) - :shape shape - :page-id page-id - :file-id file-id}]]) + (let [workspace-modifiers (mf/deref refs/workspace-modifiers) + modifiers (get-in workspace-modifiers [(:id shape) :modifiers]) + shape (gsh/transform-shape shape modifiers)] + [:* + (case (:type shape) + :frame [:& frame/options {:shape shape}] + :group [:& group/options {:shape shape :shape-with-children shapes-with-children :file-id file-id :shared-libs shared-libs}] + :text [:& text/options {:shape shape :file-id file-id :shared-libs shared-libs}] + :rect [:& rect/options {:shape shape}] + :circle [:& circle/options {:shape shape}] + :path [:& path/options {:shape shape}] + :image [:& image/options {:shape shape}] + :svg-raw [:& svg-raw/options {:shape shape}] + :bool [:& bool/options {:shape shape}] + nil) + [:& exports-menu + {:ids [(:id shape)] + :values (select-keys shape [:exports]) + :shape shape + :page-id page-id + :file-id file-id}]])) (mf/defc options-content {::mf/wrap [mf/memo]} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs index 4d22ffa548..a6089f49d0 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs @@ -30,7 +30,6 @@ frames (map #(deref (refs/object-by-id (:frame-id %))) old-shapes) shapes (as-> old-shapes $ - #_(map gsh/transform-shape $) (map gsh/translate-to-frame $ frames)) values (let [{:keys [x y]} (-> shapes first :points gsh/points->selrect)] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs index 71545cb596..68452f9df7 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs @@ -77,18 +77,18 @@ :stretch nil)) :align-self (if is-col? - (case val - :start i/align-self-column-top - :end i/align-self-column-bottom - :center i/align-self-column-center - :stretch i/align-self-column-strech - :baseline i/align-self-column-baseline) (case val :start i/align-self-row-left :end i/align-self-row-right :center i/align-self-row-center :stretch i/align-self-row-strech - :baseline i/align-self-row-baseline)))) + :baseline i/align-self-row-baseline) + (case val + :start i/align-self-column-top + :end i/align-self-column-bottom + :center i/align-self-column-center + :stretch i/align-self-column-strech + :baseline i/align-self-column-baseline)))) (mf/defc direction-btn [{:keys [dir saved-dir set-direction] :as props}] @@ -170,7 +170,8 @@ [{:keys [values on-change-style on-change] :as props}] (let [padding-type (:layout-padding-type values) - rx (if (apply = (vals (:layout-padding values))) + rx (if (and (not (= :multiple (:layout-padding values))) + (apply = (vals (:layout-padding values)))) (:p1 (:layout-padding values)) "--")] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs index 6488fafe01..5c0f2fa7c0 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs @@ -69,9 +69,7 @@ ;; -- User/drawing coords (mf/defc measures-menu [{:keys [ids ids-with-children values type all-types shape] :as props}] - (let [workspace-modifiers (mf/deref refs/workspace-modifiers) - - options (if (= type :multiple) + (let [options (if (= type :multiple) (reduce #(union %1 %2) (map #(get type->options %) all-types)) (get type->options type)) @@ -97,9 +95,6 @@ ;; the shape with the mouse, generate a copy of the shapes applying ;; the transient transformations. shapes (as-> old-shapes $ - (map (fn [shape] - (let [modifiers (get-in workspace-modifiers [(:id shape) :modifiers])] - (gsh/transform-shape shape modifiers))) $) (map gsh/translate-to-frame $ frames)) ;; For rotated or stretched shapes, the origin point we show in the menu diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/bool.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/bool.cljs index 1c45a1bf24..ff84041d0a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/bool.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/bool.cljs @@ -41,8 +41,10 @@ :values layout-item-values :is-layout-child? true :shape shape}]) - [:& constraints-menu {:ids ids - :values constraint-values}] + + (when (not is-layout-child?) + [:& constraints-menu {:ids ids + :values constraint-values}]) [:& layer-menu {:ids ids :type type :values layer-values}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/circle.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/circle.cljs index af0878b7eb..812e3c8d98 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/circle.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/circle.cljs @@ -43,8 +43,9 @@ :is-layout-child? true :is-layout-container? false :shape shape}]) - [:& constraints-menu {:ids ids - :values constraint-values}] + (when (not is-layout-child?) + [:& constraints-menu {:ids ids + :values constraint-values}]) [:& layer-menu {:ids ids :type type :values layer-values}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs index 219518ec1a..1fcb34ed6e 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs @@ -43,8 +43,9 @@ :values measure-values :type type :shape shape}] - [:& constraints-menu {:ids ids - :values constraint-values}] + (when (not is-layout-child?) + [:& constraints-menu {:ids ids + :values constraint-values}]) (when (or layout-active? is-layout-container?) [:& layout-container-menu {:type type :ids [(:id shape)] :values layout-container-values}]) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/group.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/group.cljs index b81a4a46ab..6f921a4b01 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/group.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/group.cljs @@ -62,7 +62,8 @@ :is-layout-container? false :values layout-item-values}]) - [:& constraints-menu {:ids constraint-ids :values constraint-values}] + (when (not is-layout-child?) + [:& constraints-menu {:ids constraint-ids :values constraint-values}]) [:& layer-menu {:type type :ids layer-ids :values layer-values}] (when-not (empty? fill-ids) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs index d2b1a8358a..0f99ca9790 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs @@ -44,8 +44,9 @@ :is-layout-child? true :shape shape}]) - [:& constraints-menu {:ids ids - :values constraint-values}] + (when (not is-layout-child?) + [:& constraints-menu {:ids ids + :values constraint-values}]) [:& layer-menu {:ids ids :type type diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs index 17f5f70514..06425fd9ed 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs @@ -253,6 +253,10 @@ [props] (let [shapes (unchecked-get props "shapes") shapes-with-children (unchecked-get props "shapes-with-children") + + workspace-modifiers (mf/deref refs/workspace-modifiers) + shapes (map #(gsh/transform-shape % (get-in workspace-modifiers [(:id %) :modifiers])) shapes) + page-id (unchecked-get props "page-id") file-id (unchecked-get props "file-id") shared-libs (unchecked-get props "shared-libs") @@ -319,7 +323,7 @@ :is-layout-container? true :values layout-item-values}]) - (when-not (empty? constraint-ids) + (when-not (or (empty? constraint-ids) is-layout-child?) [:& constraints-menu {:ids constraint-ids :values constraint-values}]) (when-not (empty? layer-ids) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/path.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/path.cljs index 22f750df4b..5b1a894264 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/path.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/path.cljs @@ -43,8 +43,9 @@ :is-layout-child? true :is-layout-container? false :shape shape}]) - [:& constraints-menu {:ids ids - :values constraint-values}] + (when (not is-layout-child?) + [:& constraints-menu {:ids ids + :values constraint-values}]) [:& layer-menu {:ids ids :type type :values layer-values}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/rect.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/rect.cljs index 654aad11b8..582f476d84 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/rect.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/rect.cljs @@ -44,8 +44,10 @@ :values layout-item-values :is-layout-child? true :shape shape}]) - [:& constraints-menu {:ids ids - :values constraint-values}] + + (when (not is-layout-child?) + [:& constraints-menu {:ids ids + :values constraint-values}]) [:& layer-menu {:ids ids :type type diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/svg_raw.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/svg_raw.cljs index bd7a2c1388..e05bf68d81 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/svg_raw.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/svg_raw.cljs @@ -120,8 +120,9 @@ :is-layout-child? true :shape shape}]) - [:& constraints-menu {:ids ids - :values constraint-values}] + (when (not is-layout-child?) + [:& constraints-menu {:ids ids + :values constraint-values}]) [:& fill-menu {:ids ids :type type diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs index 620832b1d6..7c84cdeb57 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs @@ -78,9 +78,11 @@ :values layout-item-values :is-layout-child? true :shape shape}]) - [:& constraints-menu - {:ids ids - :values (select-keys shape constraint-attrs)}] + + (when (not is-layout-child?) + [:& constraints-menu + {:ids ids + :values (select-keys shape constraint-attrs)}]) [:& layer-menu {:ids ids :type type