mirror of
https://github.com/penpot/penpot.git
synced 2025-02-13 18:48:37 -05: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.math :as mth]
|
||||
[app.common.types.modifiers :as ctm]
|
||||
[app.common.types.shape.layout :as ctl]
|
||||
[app.common.uuid :as uuid]))
|
||||
|
||||
;; Auxiliary methods to work in an specifica axis
|
||||
|
@ -285,13 +286,25 @@
|
|||
(let [modifiers (ctm/select-child modifiers)
|
||||
|
||||
constraints-h
|
||||
(if-not ignore-constraints
|
||||
(cond
|
||||
(ctl/layout? parent)
|
||||
:left
|
||||
|
||||
(not ignore-constraints)
|
||||
(:constraints-h child (default-constraints-h child))
|
||||
|
||||
:else
|
||||
:scale)
|
||||
|
||||
constraints-v
|
||||
(if-not ignore-constraints
|
||||
(cond
|
||||
(ctl/layout? parent)
|
||||
:top
|
||||
|
||||
(not ignore-constraints)
|
||||
(:constraints-v child (default-constraints-v child))
|
||||
|
||||
:else
|
||||
:scale)]
|
||||
|
||||
(if (and (= :scale constraints-h) (= :scale constraints-v))
|
||||
|
|
|
@ -283,13 +283,13 @@
|
|||
(fn [old new attr]
|
||||
(let [old-val (get old attr)
|
||||
new-val (get new attr)]
|
||||
(not= old-val new-val)))]
|
||||
(let [new-obj (update-fn object)]
|
||||
(if (= object new-obj)
|
||||
'()
|
||||
(not= old-val new-val)))
|
||||
new-obj (update-fn object)]
|
||||
(if (= object new-obj)
|
||||
'()
|
||||
|
||||
(let [attrs (or attrs (d/concat-set (keys object) (keys new-obj)))]
|
||||
(filter (partial changed? object new-obj) attrs))))))
|
||||
(let [attrs (or attrs (d/concat-set (keys object) (keys new-obj)))]
|
||||
(filter (partial changed? object new-obj) attrs)))))
|
||||
|
||||
(defn update-shapes
|
||||
"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.persistence :as dwp]
|
||||
[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.shapes :as dwsh]
|
||||
[app.main.data.workspace.state-helpers :as wsh]
|
||||
[app.main.data.workspace.thumbnails :as dwth]
|
||||
[app.main.data.workspace.transforms :as dwt]
|
||||
|
|
|
@ -29,15 +29,20 @@
|
|||
|
||||
:else
|
||||
(let [subject (rx/subject)]
|
||||
(swap! pending assoc key subject)
|
||||
(->> observable
|
||||
(rx/catch #(do (rx/error! subject %)
|
||||
(swap! pending dissoc key)
|
||||
(rx/throw %)))
|
||||
(rx/tap
|
||||
(fn [data]
|
||||
(let [entry {:created-at (dt/now) :data data}]
|
||||
(swap! cache assoc key entry))
|
||||
(rx/push! subject data)
|
||||
(rx/end! subject)
|
||||
(swap! pending dissoc key))))))))
|
||||
(do
|
||||
(swap! pending assoc key subject)
|
||||
|
||||
(rx/subscribe
|
||||
observable
|
||||
|
||||
(fn [data]
|
||||
(let [entry {:created-at (dt/now) :data data}]
|
||||
(swap! cache assoc key entry))
|
||||
(swap! pending dissoc key)
|
||||
(rx/push! subject data)
|
||||
(rx/end! subject))
|
||||
|
||||
#(do
|
||||
(swap! pending dissoc key)
|
||||
(rx/error! subject %))))
|
||||
subject))))
|
||||
|
|
Loading…
Add table
Reference in a new issue