🐛 Fix modifiers streams

This commit is contained in:
Belén Albeza 2026-04-27 15:34:10 +02:00 committed by Alonso Torres
parent 0bee3993ab
commit e99ed5e9f9
3 changed files with 47 additions and 14 deletions

View File

@ -320,6 +320,8 @@
(let [stoper-s (rx/filter (ptk/type? ::finalize-workspace) stream)
rparams (rt/get-params state)
features (features/get-enabled-features state team-id)
;; since render-wasm/v1 can be hot-toggled by the user, we need to query it
;; from the state with active-feature?
render-wasm-enabled? #(features/active-feature? @st/state "render-wasm/v1")
render-wasm-ready? #(and (render-wasm-enabled?)
wasm-state/context-initialized?

View File

@ -73,22 +73,44 @@
(def wasm-url-override-ref
(l/derived wasm-url-override st/state))
(defn- wasm-enabled?
[state]
(let [override (wasm-url-override state)
renderer (when (contains? cf/flags :render-switch)
(-> state :profile :props :renderer))]
(cond
(some? override)
override
(contains? cf/flags :render-switch)
(case renderer
:wasm true
:svg false
;; SVG renderer as default until profile data arrives OR if render-switch
;; flag is disabled.
false)
(contains? cfeat/no-migration-features "render-wasm/v1")
(enabled-without-migration? state "render-wasm/v1")
:else
(enabled-by-flags? state "render-wasm/v1"))))
(defn active-feature?
"Given a state and feature, check if feature is enabled."
[state feature]
(assert (contains? cfeat/supported-features feature)
"feature not supported")
(let [wasm-override (when (= feature "render-wasm/v1") (wasm-url-override state))]
(cond
(some? wasm-override)
wasm-override
(cond
(= feature "render-wasm/v1")
(wasm-enabled? state)
(contains? cfeat/no-migration-features feature)
(enabled-without-migration? state feature)
(contains? cfeat/no-migration-features feature)
(enabled-without-migration? state feature)
:else
(enabled-by-flags? state feature))))
:else
(enabled-by-flags? state feature)))
(defn active-features?
"Given a state and a set of features, check if the features are all enabled."
@ -116,10 +138,19 @@
[feature]
(let [enabled-features (mf/deref features-ref)
wasm-override (mf/deref wasm-url-override-ref)
wasm-override (when (= feature "render-wasm/v1") wasm-override)]
renderer (mf/deref (l/derived #(-> % :profile :props :renderer) st/state))
wasm-enabled (cond
(some? wasm-override)
wasm-override
(contains? cf/flags :render-switch)
(= renderer :wasm)
:else
(contains? enabled-features "render-wasm/v1"))]
(cond
(some? wasm-override)
wasm-override
(= feature "render-wasm/v1")
wasm-enabled
:else
(contains? enabled-features feature))))
@ -173,7 +204,7 @@
ptk/EffectEvent
(effect [_ state _]
(let [features (get state :features)]
(if (contains? features "render-wasm/v1")
(if (active-feature? state "render-wasm/v1")
(wasm/initialize true)
(wasm/initialize false))
@ -194,7 +225,7 @@
ptk/EffectEvent
(effect [_ state _]
(let [features (get state :features)]
(if (contains? features "render-wasm/v1")
(if (active-feature? state "render-wasm/v1")
(wasm/initialize true)
(wasm/initialize false))

View File

@ -367,7 +367,7 @@
:else
(show-unavailable)))))]
(reset! canvas-init? false)
(->> wasm.api/module
(->> @wasm.api/module
(p/fmap (fn [ready?]
(when ready?
(try-init 3)))))