mirror of
https://github.com/penpot/penpot.git
synced 2025-02-24 15:56:11 -05:00
✨ Removed constraints when layout child
This commit is contained in:
parent
4ecc166055
commit
7caf4b9136
14 changed files with 67 additions and 52 deletions
|
@ -7,6 +7,7 @@
|
||||||
(ns app.main.ui.workspace.sidebar.options
|
(ns app.main.ui.workspace.sidebar.options
|
||||||
(:require
|
(:require
|
||||||
[app.common.data :as d]
|
[app.common.data :as d]
|
||||||
|
[app.common.geom.shapes :as gsh]
|
||||||
[app.main.data.workspace :as udw]
|
[app.main.data.workspace :as udw]
|
||||||
[app.main.refs :as refs]
|
[app.main.refs :as refs]
|
||||||
[app.main.store :as st]
|
[app.main.store :as st]
|
||||||
|
@ -36,24 +37,27 @@
|
||||||
(mf/defc shape-options
|
(mf/defc shape-options
|
||||||
{::mf/wrap [#(mf/throttle % 60)]}
|
{::mf/wrap [#(mf/throttle % 60)]}
|
||||||
[{:keys [shape shapes-with-children page-id file-id shared-libs]}]
|
[{:keys [shape shapes-with-children page-id file-id shared-libs]}]
|
||||||
[:*
|
(let [workspace-modifiers (mf/deref refs/workspace-modifiers)
|
||||||
(case (:type shape)
|
modifiers (get-in workspace-modifiers [(:id shape) :modifiers])
|
||||||
:frame [:& frame/options {:shape shape}]
|
shape (gsh/transform-shape shape modifiers)]
|
||||||
: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}]
|
(case (:type shape)
|
||||||
:rect [:& rect/options {:shape shape}]
|
:frame [:& frame/options {:shape shape}]
|
||||||
:circle [:& circle/options {:shape shape}]
|
:group [:& group/options {:shape shape :shape-with-children shapes-with-children :file-id file-id :shared-libs shared-libs}]
|
||||||
:path [:& path/options {:shape shape}]
|
:text [:& text/options {:shape shape :file-id file-id :shared-libs shared-libs}]
|
||||||
:image [:& image/options {:shape shape}]
|
:rect [:& rect/options {:shape shape}]
|
||||||
:svg-raw [:& svg-raw/options {:shape shape}]
|
:circle [:& circle/options {:shape shape}]
|
||||||
:bool [:& bool/options {:shape shape}]
|
:path [:& path/options {:shape shape}]
|
||||||
nil)
|
:image [:& image/options {:shape shape}]
|
||||||
[:& exports-menu
|
:svg-raw [:& svg-raw/options {:shape shape}]
|
||||||
{:ids [(:id shape)]
|
:bool [:& bool/options {:shape shape}]
|
||||||
:values (select-keys shape [:exports])
|
nil)
|
||||||
:shape shape
|
[:& exports-menu
|
||||||
:page-id page-id
|
{:ids [(:id shape)]
|
||||||
:file-id file-id}]])
|
:values (select-keys shape [:exports])
|
||||||
|
:shape shape
|
||||||
|
:page-id page-id
|
||||||
|
:file-id file-id}]]))
|
||||||
|
|
||||||
(mf/defc options-content
|
(mf/defc options-content
|
||||||
{::mf/wrap [mf/memo]}
|
{::mf/wrap [mf/memo]}
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
frames (map #(deref (refs/object-by-id (:frame-id %))) old-shapes)
|
frames (map #(deref (refs/object-by-id (:frame-id %))) old-shapes)
|
||||||
|
|
||||||
shapes (as-> old-shapes $
|
shapes (as-> old-shapes $
|
||||||
#_(map gsh/transform-shape $)
|
|
||||||
(map gsh/translate-to-frame $ frames))
|
(map gsh/translate-to-frame $ frames))
|
||||||
|
|
||||||
values (let [{:keys [x y]} (-> shapes first :points gsh/points->selrect)]
|
values (let [{:keys [x y]} (-> shapes first :points gsh/points->selrect)]
|
||||||
|
|
|
@ -77,18 +77,18 @@
|
||||||
:stretch nil))
|
:stretch nil))
|
||||||
|
|
||||||
:align-self (if is-col?
|
: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
|
(case val
|
||||||
:start i/align-self-row-left
|
:start i/align-self-row-left
|
||||||
:end i/align-self-row-right
|
:end i/align-self-row-right
|
||||||
:center i/align-self-row-center
|
:center i/align-self-row-center
|
||||||
:stretch i/align-self-row-strech
|
: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
|
(mf/defc direction-btn
|
||||||
[{:keys [dir saved-dir set-direction] :as props}]
|
[{:keys [dir saved-dir set-direction] :as props}]
|
||||||
|
@ -170,7 +170,8 @@
|
||||||
[{:keys [values on-change-style on-change] :as props}]
|
[{:keys [values on-change-style on-change] :as props}]
|
||||||
|
|
||||||
(let [padding-type (:layout-padding-type values)
|
(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))
|
(:p1 (:layout-padding values))
|
||||||
"--")]
|
"--")]
|
||||||
|
|
||||||
|
|
|
@ -69,9 +69,7 @@
|
||||||
;; -- User/drawing coords
|
;; -- User/drawing coords
|
||||||
(mf/defc measures-menu
|
(mf/defc measures-menu
|
||||||
[{:keys [ids ids-with-children values type all-types shape] :as props}]
|
[{:keys [ids ids-with-children values type all-types shape] :as props}]
|
||||||
(let [workspace-modifiers (mf/deref refs/workspace-modifiers)
|
(let [options (if (= type :multiple)
|
||||||
|
|
||||||
options (if (= type :multiple)
|
|
||||||
(reduce #(union %1 %2) (map #(get type->options %) all-types))
|
(reduce #(union %1 %2) (map #(get type->options %) all-types))
|
||||||
(get type->options type))
|
(get type->options type))
|
||||||
|
|
||||||
|
@ -97,9 +95,6 @@
|
||||||
;; the shape with the mouse, generate a copy of the shapes applying
|
;; the shape with the mouse, generate a copy of the shapes applying
|
||||||
;; the transient transformations.
|
;; the transient transformations.
|
||||||
shapes (as-> old-shapes $
|
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))
|
(map gsh/translate-to-frame $ frames))
|
||||||
|
|
||||||
;; For rotated or stretched shapes, the origin point we show in the menu
|
;; For rotated or stretched shapes, the origin point we show in the menu
|
||||||
|
|
|
@ -41,8 +41,10 @@
|
||||||
:values layout-item-values
|
:values layout-item-values
|
||||||
:is-layout-child? true
|
:is-layout-child? true
|
||||||
:shape shape}])
|
: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
|
[:& layer-menu {:ids ids
|
||||||
:type type
|
:type type
|
||||||
:values layer-values}]
|
:values layer-values}]
|
||||||
|
|
|
@ -43,8 +43,9 @@
|
||||||
:is-layout-child? true
|
:is-layout-child? true
|
||||||
:is-layout-container? false
|
:is-layout-container? false
|
||||||
:shape shape}])
|
:shape shape}])
|
||||||
[:& constraints-menu {:ids ids
|
(when (not is-layout-child?)
|
||||||
:values constraint-values}]
|
[:& constraints-menu {:ids ids
|
||||||
|
:values constraint-values}])
|
||||||
[:& layer-menu {:ids ids
|
[:& layer-menu {:ids ids
|
||||||
:type type
|
:type type
|
||||||
:values layer-values}]
|
:values layer-values}]
|
||||||
|
|
|
@ -43,8 +43,9 @@
|
||||||
:values measure-values
|
:values measure-values
|
||||||
:type type
|
:type type
|
||||||
:shape shape}]
|
:shape shape}]
|
||||||
[:& constraints-menu {:ids ids
|
(when (not is-layout-child?)
|
||||||
:values constraint-values}]
|
[:& constraints-menu {:ids ids
|
||||||
|
:values constraint-values}])
|
||||||
(when (or layout-active? is-layout-container?)
|
(when (or layout-active? is-layout-container?)
|
||||||
[:& layout-container-menu {:type type :ids [(:id shape)] :values layout-container-values}])
|
[:& layout-container-menu {:type type :ids [(:id shape)] :values layout-container-values}])
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,8 @@
|
||||||
:is-layout-container? false
|
:is-layout-container? false
|
||||||
:values layout-item-values}])
|
: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}]
|
[:& layer-menu {:type type :ids layer-ids :values layer-values}]
|
||||||
|
|
||||||
(when-not (empty? fill-ids)
|
(when-not (empty? fill-ids)
|
||||||
|
|
|
@ -44,8 +44,9 @@
|
||||||
:is-layout-child? true
|
:is-layout-child? true
|
||||||
:shape shape}])
|
:shape shape}])
|
||||||
|
|
||||||
[:& constraints-menu {:ids ids
|
(when (not is-layout-child?)
|
||||||
:values constraint-values}]
|
[:& constraints-menu {:ids ids
|
||||||
|
:values constraint-values}])
|
||||||
|
|
||||||
[:& layer-menu {:ids ids
|
[:& layer-menu {:ids ids
|
||||||
:type type
|
:type type
|
||||||
|
|
|
@ -253,6 +253,10 @@
|
||||||
[props]
|
[props]
|
||||||
(let [shapes (unchecked-get props "shapes")
|
(let [shapes (unchecked-get props "shapes")
|
||||||
shapes-with-children (unchecked-get props "shapes-with-children")
|
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")
|
page-id (unchecked-get props "page-id")
|
||||||
file-id (unchecked-get props "file-id")
|
file-id (unchecked-get props "file-id")
|
||||||
shared-libs (unchecked-get props "shared-libs")
|
shared-libs (unchecked-get props "shared-libs")
|
||||||
|
@ -319,7 +323,7 @@
|
||||||
:is-layout-container? true
|
:is-layout-container? true
|
||||||
:values layout-item-values}])
|
: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}])
|
[:& constraints-menu {:ids constraint-ids :values constraint-values}])
|
||||||
|
|
||||||
(when-not (empty? layer-ids)
|
(when-not (empty? layer-ids)
|
||||||
|
|
|
@ -43,8 +43,9 @@
|
||||||
:is-layout-child? true
|
:is-layout-child? true
|
||||||
:is-layout-container? false
|
:is-layout-container? false
|
||||||
:shape shape}])
|
:shape shape}])
|
||||||
[:& constraints-menu {:ids ids
|
(when (not is-layout-child?)
|
||||||
:values constraint-values}]
|
[:& constraints-menu {:ids ids
|
||||||
|
:values constraint-values}])
|
||||||
[:& layer-menu {:ids ids
|
[:& layer-menu {:ids ids
|
||||||
:type type
|
:type type
|
||||||
:values layer-values}]
|
:values layer-values}]
|
||||||
|
|
|
@ -44,8 +44,10 @@
|
||||||
:values layout-item-values
|
:values layout-item-values
|
||||||
:is-layout-child? true
|
:is-layout-child? true
|
||||||
:shape shape}])
|
: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
|
[:& layer-menu {:ids ids
|
||||||
:type type
|
:type type
|
||||||
|
|
|
@ -120,8 +120,9 @@
|
||||||
:is-layout-child? true
|
:is-layout-child? true
|
||||||
:shape shape}])
|
:shape shape}])
|
||||||
|
|
||||||
[:& constraints-menu {:ids ids
|
(when (not is-layout-child?)
|
||||||
:values constraint-values}]
|
[:& constraints-menu {:ids ids
|
||||||
|
:values constraint-values}])
|
||||||
|
|
||||||
[:& fill-menu {:ids ids
|
[:& fill-menu {:ids ids
|
||||||
:type type
|
:type type
|
||||||
|
|
|
@ -78,9 +78,11 @@
|
||||||
:values layout-item-values
|
:values layout-item-values
|
||||||
:is-layout-child? true
|
:is-layout-child? true
|
||||||
:shape shape}])
|
:shape shape}])
|
||||||
[:& constraints-menu
|
|
||||||
{:ids ids
|
(when (not is-layout-child?)
|
||||||
:values (select-keys shape constraint-attrs)}]
|
[:& constraints-menu
|
||||||
|
{:ids ids
|
||||||
|
:values (select-keys shape constraint-attrs)}])
|
||||||
|
|
||||||
[:& layer-menu {:ids ids
|
[:& layer-menu {:ids ids
|
||||||
:type type
|
:type type
|
||||||
|
|
Loading…
Add table
Reference in a new issue