mirror of
https://github.com/penpot/penpot.git
synced 2026-08-01 19:06:18 +00:00
✨ Remove tracks update multispan cells
This commit is contained in:
parent
b0136fef29
commit
714b2c8805
@ -631,52 +631,68 @@
|
|||||||
(assoc :layout-grid-cells layout-grid-cells))))
|
(assoc :layout-grid-cells layout-grid-cells))))
|
||||||
|
|
||||||
|
|
||||||
(defn make-remove-track
|
(defn make-remove-cell
|
||||||
[attr track-num]
|
[attr span-attr track-num]
|
||||||
(comp #(= % track-num) attr second))
|
(fn [[_ cell]]
|
||||||
|
;; Only remove cells with span=1 otherwise the cell will be fixed
|
||||||
|
(and (= track-num (get cell attr))
|
||||||
|
(= (get cell span-attr) 1))))
|
||||||
|
|
||||||
(defn make-decrease-track-num
|
(defn make-decrease-track-num
|
||||||
[attr track-num]
|
[attr span-attr track-num]
|
||||||
(fn [[key value]]
|
(fn [[id cell]]
|
||||||
(let [new-val
|
(let [inner-track?
|
||||||
(cond-> value
|
(or (= track-num (get cell attr))
|
||||||
(> (get value attr) track-num)
|
(and (< (get cell attr) track-num (+ (get cell attr) (get cell span-attr)))))
|
||||||
(update attr dec))]
|
|
||||||
[key new-val])))
|
displace-cell?
|
||||||
|
(and (not inner-track?) (< track-num (get cell attr)))
|
||||||
|
|
||||||
|
cell
|
||||||
|
(cond-> cell
|
||||||
|
inner-track?
|
||||||
|
(update span-attr dec)
|
||||||
|
|
||||||
|
displace-cell?
|
||||||
|
(update attr dec))]
|
||||||
|
|
||||||
|
[id cell])))
|
||||||
|
|
||||||
;; TODO: CHECK CELLS MULTI SPAN
|
|
||||||
(defn remove-grid-column
|
(defn remove-grid-column
|
||||||
[parent index]
|
[parent index]
|
||||||
|
|
||||||
(let [track-num (inc index)
|
(let [track-num (inc index)
|
||||||
|
|
||||||
decrease-track-num (make-decrease-track-num :column track-num)
|
decrease-track-num (make-decrease-track-num :column :column-span track-num)
|
||||||
remove-track? (make-remove-track :column track-num)
|
remove-track? (make-remove-cell :column :column-span track-num)
|
||||||
|
|
||||||
remove-cells
|
update-cells
|
||||||
(fn [cells]
|
(fn [cells]
|
||||||
(into {} (comp
|
(into {}
|
||||||
(remove remove-track?)
|
(comp (remove remove-track?)
|
||||||
(map decrease-track-num)) cells))]
|
(map decrease-track-num))
|
||||||
|
cells))]
|
||||||
(-> parent
|
(-> parent
|
||||||
(update :layout-grid-columns d/remove-at-index index)
|
(update :layout-grid-columns d/remove-at-index index)
|
||||||
(update :layout-grid-cells remove-cells)
|
(update :layout-grid-cells update-cells)
|
||||||
(assign-cells))))
|
(assign-cells))))
|
||||||
|
|
||||||
(defn remove-grid-row
|
(defn remove-grid-row
|
||||||
[parent index]
|
[parent index]
|
||||||
(let [track-num (inc index)
|
(let [track-num (inc index)
|
||||||
|
|
||||||
decrease-track-num (make-decrease-track-num :row track-num)
|
decrease-track-num (make-decrease-track-num :row :row-span track-num)
|
||||||
remove-track? (make-remove-track :row track-num)
|
remove-track? (make-remove-cell :row :row-span track-num)
|
||||||
|
|
||||||
remove-cells
|
update-cells
|
||||||
(fn [cells]
|
(fn [cells]
|
||||||
(into {} (comp
|
(into {}
|
||||||
(remove remove-track?)
|
(comp (remove remove-track?)
|
||||||
(map decrease-track-num)) cells))]
|
(map decrease-track-num))
|
||||||
|
cells))]
|
||||||
(-> parent
|
(-> parent
|
||||||
(update :layout-grid-rows d/remove-at-index index)
|
(update :layout-grid-rows d/remove-at-index index)
|
||||||
(update :layout-grid-cells remove-cells)
|
(update :layout-grid-cells update-cells)
|
||||||
(assign-cells))))
|
(assign-cells))))
|
||||||
|
|
||||||
(defn get-cells
|
(defn get-cells
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user