mirror of
https://github.com/penpot/penpot.git
synced 2026-09-04 02:58:56 +00:00
⚡ Chunk stale text resize into batches on page load
Process resize-wasm-text-all in groups of 64 with a short delay between chunks so propagate-modifiers does not block the main thread on large pages.
This commit is contained in:
parent
bbc85f8735
commit
fad5e712e7
@ -507,11 +507,19 @@
|
||||
|
||||
;; Resize auto-grow text shapes whose selrect does not match
|
||||
;; the WASM text layout once their fonts finish loading.
|
||||
;; Process in chunks so a large page does not freeze the main
|
||||
;; thread with one propagate-modifiers pass.
|
||||
(->> stream
|
||||
(rx/filter (ptk/type? :app.render-wasm.api/stale-text-selrects))
|
||||
(rx/map deref)
|
||||
(rx/map (fn [{:keys [ids]}]
|
||||
(dwwt/resize-wasm-text-all ids))))
|
||||
(rx/mapcat
|
||||
(fn [{:keys [ids]}]
|
||||
(apply rx/merge
|
||||
(map-indexed
|
||||
(fn [idx chunk]
|
||||
(cond->> (rx/of (dwwt/resize-wasm-text-all chunk))
|
||||
(pos? idx) (rx/delay (* idx 50))))
|
||||
(partition-all 64 ids))))))
|
||||
|
||||
(let [local-commits-s
|
||||
(->> stream
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user