mirror of
https://github.com/penpot/penpot.git
synced 2025-05-18 03:27:20 +02:00
🐛 Fix problems with grid layout and flex children absolute
This commit is contained in:
parent
c8d19c846a
commit
4e1353caf1
7 changed files with 42 additions and 38 deletions
|
@ -1395,7 +1395,7 @@
|
|||
|
||||
(defn- update-flex-child-copy-attrs
|
||||
"Synchronizes the attributes inside the flex-child items (main->copy)"
|
||||
[changes shape-main shape-copy main-container main-component copy-container omit-touched?]
|
||||
[changes _shape-main shape-copy main-container main-component copy-container omit-touched?]
|
||||
(-> changes
|
||||
(pcb/with-container copy-container)
|
||||
(pcb/with-objects (:objects copy-container))
|
||||
|
@ -1448,7 +1448,7 @@
|
|||
|
||||
(defn- update-grid-main-attrs
|
||||
"Synchronizes the `layout-grid-cells` property from the copy to the main shape"
|
||||
[changes shape-main shape-copy main-container copy-container omit-touched?]
|
||||
[changes shape-main shape-copy main-container copy-container _omit-touched?]
|
||||
(let [ids-map
|
||||
(into {}
|
||||
(comp
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
[app.main.store :as st]
|
||||
[app.main.ui.css-cursors :as cur]
|
||||
[app.main.ui.formats :as fmt]
|
||||
[app.main.ui.hooks :as hooks]
|
||||
[app.main.ui.icons :as i]
|
||||
[app.main.ui.workspace.viewport.viewport-ref :as uwvv]
|
||||
[app.util.debug :as dbg]
|
||||
|
@ -937,34 +936,27 @@
|
|||
(map (fn [[_ idx]] idx))
|
||||
(into #{}))
|
||||
|
||||
children
|
||||
(mf/use-memo
|
||||
(mf/deps objects shape modifiers)
|
||||
(fn []
|
||||
(let [ids (cfh/get-children-ids objects (:id shape))
|
||||
objects (-> objects
|
||||
(gsh/apply-objects-modifiers (select-keys modifiers ids))
|
||||
(gsh/update-shapes-geometry (reverse ids)))]
|
||||
(->> (cfh/get-immediate-children objects (:id shape))
|
||||
(keep (fn [child]
|
||||
(when-not (:hidden child)
|
||||
[(gpo/parent-coords-bounds (:points child) (:points shape)) child])))))))
|
||||
|
||||
children (hooks/use-equal-memo children)
|
||||
|
||||
bounds (:points shape)
|
||||
hv #(gpo/start-hv bounds %)
|
||||
vv #(gpo/start-vv bounds %)
|
||||
origin (gpo/origin bounds)
|
||||
|
||||
all-bounds (d/lazy-map (keys objects) #(gsh/shape->points (get objects %)))
|
||||
|
||||
{:keys [row-tracks column-tracks
|
||||
column-total-size column-total-gap
|
||||
row-total-size row-total-gap] :as layout-data}
|
||||
layout-data
|
||||
(mf/use-memo
|
||||
(mf/deps shape children)
|
||||
#(gsg/calc-layout-data shape bounds children all-bounds objects))
|
||||
(mf/deps shape modifiers)
|
||||
(fn []
|
||||
(let [objects (gsh/apply-objects-modifiers objects modifiers)
|
||||
ids (cfh/get-children-ids objects (:id shape))
|
||||
objects (gsh/update-shapes-geometry objects (reverse ids))
|
||||
|
||||
children
|
||||
(->> (cfh/get-immediate-children objects (:id shape) {:remove-hidden true})
|
||||
(map #(vector (gpo/parent-coords-bounds (:points %) (:points shape)) %)))
|
||||
|
||||
children-bounds (d/lazy-map ids #(gsh/shape->points (get objects %)))]
|
||||
(gsg/calc-layout-data shape bounds children children-bounds objects))))
|
||||
|
||||
{:keys [row-tracks column-tracks column-total-size column-total-gap row-total-size row-total-gap]} layout-data
|
||||
|
||||
width (max (gpo/width-points bounds) (+ column-total-size column-total-gap (ctl/h-padding shape)))
|
||||
height (max (gpo/height-points bounds) (+ row-total-size row-total-gap (ctl/v-padding shape)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue