🐛 Fix incorrect events handling on webgl render toggle

From the workspace main menu
This commit is contained in:
Andrey Antukh 2026-06-22 11:29:05 +02:00
parent 960b90253f
commit 3b9a895f62
2 changed files with 15 additions and 5 deletions

View File

@ -399,6 +399,7 @@
(fn [_]
;; Start the event collection pipeline
(->> (rx/merge
(rx/filter (ptk/type? ::force-persist) stream)
(->> (rx/from-atom buffer)
(rx/filter #(pos? (count %)))
(rx/debounce 2000))
@ -416,6 +417,7 @@
(rx/map (constantly chunk))))))
(rx/take-until stopper)
(rx/subs! (fn [chunk]
(st/emit! (ptk/data-event ::chunk-persisted {:chunk chunk}))
(swap! buffer remove-from-buffer (count chunk)))
(fn [cause]
(l/error :hint "unexpected error on audit persistence" :cause cause))

View File

@ -44,6 +44,7 @@
[app.util.i18n :as i18n :refer [tr]]
[app.util.keyboard :as kbd]
[beicon.v2.core :as rx]
[potok.v2.core :as ptk]
[rumext.v2 :as mf]))
(mf/defc shortcuts*
@ -936,17 +937,24 @@
ev-name (if (= next-renderer :wasm)
"enable-webgl-rendering"
"disable-webgl-rendering")]
(if (cf/external-feature-flag "renderer-hard-reload" "test")
;; Bare RPC + hard reload: skips `du/update-profile-props`, so
;; `features/recompute-features` is not run here; bootstrap
;; after reload resolves render-wasm/v1 from the saved profile.
(do
(st/emit! (ev/event {::ev/name ev-name
::ev/origin "workspace:menu"}))
(->> (rp/cmd! :update-profile-props {:props {:renderer next-renderer}})
(rx/subs! (fn [_] (dom/reload-current-window true))
(->> (rx/zip
(rp/cmd! :update-profile-props {:props {:renderer next-renderer}})
(rx/filter (ptk/type? ::ev/chunk-persisted) st/stream))
(rx/timeout 2000 (rx/of :timeout))
(rx/subs! (fn [_]
(dom/reload-current-window true))
(fn [_]
(st/emit! (ntf/error (tr "errors.generic")))))))
(st/emit! (ntf/error (tr "errors.generic"))))))
(st/emit! (ev/event {::ev/name ev-name
::ev/origin "workspace:menu"})
(ptk/data-event ::ev/force-persist {})))
;; `update-profile-props` WatchEvent calls
;; `features/recompute-features`.
(st/emit! (ev/event {::ev/name ev-name