mirror of
https://github.com/penpot/penpot.git
synced 2026-08-29 08:08:46 +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
d29dab7941
commit
666f43b4ad
@ -507,11 +507,20 @@
|
||||
|
||||
;; 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]}]
|
||||
(->> (partition-all 64 ids)
|
||||
(map-indexed
|
||||
(fn [idx chunk]
|
||||
(if (zero? idx)
|
||||
(rx/of (dwwt/resize-wasm-text-all chunk))
|
||||
(->> (rx/of (dwwt/resize-wasm-text-all chunk))
|
||||
(rx/delay (* idx 50))))))))))
|
||||
|
||||
(let [local-commits-s
|
||||
(->> stream
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user