mirror of
https://github.com/penpot/penpot.git
synced 2025-06-06 19:41:39 +02:00
🐛 Fix problems with cache and thumbnails
This commit is contained in:
parent
6c2d2e142b
commit
7dbe39b1b5
4 changed files with 39 additions and 21 deletions
|
@ -13,6 +13,7 @@
|
||||||
[app.common.geom.shapes.transforms :as gtr]
|
[app.common.geom.shapes.transforms :as gtr]
|
||||||
[app.common.math :as mth]
|
[app.common.math :as mth]
|
||||||
[app.common.types.modifiers :as ctm]
|
[app.common.types.modifiers :as ctm]
|
||||||
|
[app.common.types.shape.layout :as ctl]
|
||||||
[app.common.uuid :as uuid]))
|
[app.common.uuid :as uuid]))
|
||||||
|
|
||||||
;; Auxiliary methods to work in an specifica axis
|
;; Auxiliary methods to work in an specifica axis
|
||||||
|
@ -285,13 +286,25 @@
|
||||||
(let [modifiers (ctm/select-child modifiers)
|
(let [modifiers (ctm/select-child modifiers)
|
||||||
|
|
||||||
constraints-h
|
constraints-h
|
||||||
(if-not ignore-constraints
|
(cond
|
||||||
|
(ctl/layout? parent)
|
||||||
|
:left
|
||||||
|
|
||||||
|
(not ignore-constraints)
|
||||||
(:constraints-h child (default-constraints-h child))
|
(:constraints-h child (default-constraints-h child))
|
||||||
|
|
||||||
|
:else
|
||||||
:scale)
|
:scale)
|
||||||
|
|
||||||
constraints-v
|
constraints-v
|
||||||
(if-not ignore-constraints
|
(cond
|
||||||
|
(ctl/layout? parent)
|
||||||
|
:top
|
||||||
|
|
||||||
|
(not ignore-constraints)
|
||||||
(:constraints-v child (default-constraints-v child))
|
(:constraints-v child (default-constraints-v child))
|
||||||
|
|
||||||
|
:else
|
||||||
:scale)]
|
:scale)]
|
||||||
|
|
||||||
(if (and (= :scale constraints-h) (= :scale constraints-v))
|
(if (and (= :scale constraints-h) (= :scale constraints-v))
|
||||||
|
|
|
@ -283,13 +283,13 @@
|
||||||
(fn [old new attr]
|
(fn [old new attr]
|
||||||
(let [old-val (get old attr)
|
(let [old-val (get old attr)
|
||||||
new-val (get new attr)]
|
new-val (get new attr)]
|
||||||
(not= old-val new-val)))]
|
(not= old-val new-val)))
|
||||||
(let [new-obj (update-fn object)]
|
new-obj (update-fn object)]
|
||||||
(if (= object new-obj)
|
(if (= object new-obj)
|
||||||
'()
|
'()
|
||||||
|
|
||||||
(let [attrs (or attrs (d/concat-set (keys object) (keys new-obj)))]
|
(let [attrs (or attrs (d/concat-set (keys object) (keys new-obj)))]
|
||||||
(filter (partial changed? object new-obj) attrs))))))
|
(filter (partial changed? object new-obj) attrs)))))
|
||||||
|
|
||||||
(defn update-shapes
|
(defn update-shapes
|
||||||
"Calculate the changes and undos to be done when a function is applied to a
|
"Calculate the changes and undos to be done when a function is applied to a
|
||||||
|
|
|
@ -55,8 +55,8 @@
|
||||||
[app.main.data.workspace.path.shapes-to-path :as dwps]
|
[app.main.data.workspace.path.shapes-to-path :as dwps]
|
||||||
[app.main.data.workspace.persistence :as dwp]
|
[app.main.data.workspace.persistence :as dwp]
|
||||||
[app.main.data.workspace.selection :as dws]
|
[app.main.data.workspace.selection :as dws]
|
||||||
[app.main.data.workspace.shapes :as dwsh]
|
|
||||||
[app.main.data.workspace.shape-layout :as dwsl]
|
[app.main.data.workspace.shape-layout :as dwsl]
|
||||||
|
[app.main.data.workspace.shapes :as dwsh]
|
||||||
[app.main.data.workspace.state-helpers :as wsh]
|
[app.main.data.workspace.state-helpers :as wsh]
|
||||||
[app.main.data.workspace.thumbnails :as dwth]
|
[app.main.data.workspace.thumbnails :as dwth]
|
||||||
[app.main.data.workspace.transforms :as dwt]
|
[app.main.data.workspace.transforms :as dwt]
|
||||||
|
|
|
@ -29,15 +29,20 @@
|
||||||
|
|
||||||
:else
|
:else
|
||||||
(let [subject (rx/subject)]
|
(let [subject (rx/subject)]
|
||||||
|
(do
|
||||||
(swap! pending assoc key subject)
|
(swap! pending assoc key subject)
|
||||||
(->> observable
|
|
||||||
(rx/catch #(do (rx/error! subject %)
|
(rx/subscribe
|
||||||
(swap! pending dissoc key)
|
observable
|
||||||
(rx/throw %)))
|
|
||||||
(rx/tap
|
|
||||||
(fn [data]
|
(fn [data]
|
||||||
(let [entry {:created-at (dt/now) :data data}]
|
(let [entry {:created-at (dt/now) :data data}]
|
||||||
(swap! cache assoc key entry))
|
(swap! cache assoc key entry))
|
||||||
|
(swap! pending dissoc key)
|
||||||
(rx/push! subject data)
|
(rx/push! subject data)
|
||||||
(rx/end! subject)
|
(rx/end! subject))
|
||||||
(swap! pending dissoc key))))))))
|
|
||||||
|
#(do
|
||||||
|
(swap! pending dissoc key)
|
||||||
|
(rx/error! subject %))))
|
||||||
|
subject))))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue