mirror of
https://github.com/penpot/penpot.git
synced 2026-09-14 16:09:01 +00:00
🐛 Fix modifiers streams
This commit is contained in:
parent
0bee3993ab
commit
e99ed5e9f9
@ -320,6 +320,8 @@
|
|||||||
(let [stoper-s (rx/filter (ptk/type? ::finalize-workspace) stream)
|
(let [stoper-s (rx/filter (ptk/type? ::finalize-workspace) stream)
|
||||||
rparams (rt/get-params state)
|
rparams (rt/get-params state)
|
||||||
features (features/get-enabled-features state team-id)
|
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-enabled? #(features/active-feature? @st/state "render-wasm/v1")
|
||||||
render-wasm-ready? #(and (render-wasm-enabled?)
|
render-wasm-ready? #(and (render-wasm-enabled?)
|
||||||
wasm-state/context-initialized?
|
wasm-state/context-initialized?
|
||||||
|
|||||||
@ -73,22 +73,44 @@
|
|||||||
(def wasm-url-override-ref
|
(def wasm-url-override-ref
|
||||||
(l/derived wasm-url-override st/state))
|
(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?
|
(defn active-feature?
|
||||||
"Given a state and feature, check if feature is enabled."
|
"Given a state and feature, check if feature is enabled."
|
||||||
[state feature]
|
[state feature]
|
||||||
(assert (contains? cfeat/supported-features feature)
|
(assert (contains? cfeat/supported-features feature)
|
||||||
"feature not supported")
|
"feature not supported")
|
||||||
|
|
||||||
(let [wasm-override (when (= feature "render-wasm/v1") (wasm-url-override state))]
|
(cond
|
||||||
(cond
|
(= feature "render-wasm/v1")
|
||||||
(some? wasm-override)
|
(wasm-enabled? state)
|
||||||
wasm-override
|
|
||||||
|
|
||||||
(contains? cfeat/no-migration-features feature)
|
(contains? cfeat/no-migration-features feature)
|
||||||
(enabled-without-migration? state feature)
|
(enabled-without-migration? state feature)
|
||||||
|
|
||||||
:else
|
:else
|
||||||
(enabled-by-flags? state feature))))
|
(enabled-by-flags? state feature)))
|
||||||
|
|
||||||
(defn active-features?
|
(defn active-features?
|
||||||
"Given a state and a set of features, check if the features are all enabled."
|
"Given a state and a set of features, check if the features are all enabled."
|
||||||
@ -116,10 +138,19 @@
|
|||||||
[feature]
|
[feature]
|
||||||
(let [enabled-features (mf/deref features-ref)
|
(let [enabled-features (mf/deref features-ref)
|
||||||
wasm-override (mf/deref wasm-url-override-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
|
(cond
|
||||||
(some? wasm-override)
|
(= feature "render-wasm/v1")
|
||||||
wasm-override
|
wasm-enabled
|
||||||
|
|
||||||
:else
|
:else
|
||||||
(contains? enabled-features feature))))
|
(contains? enabled-features feature))))
|
||||||
@ -173,7 +204,7 @@
|
|||||||
ptk/EffectEvent
|
ptk/EffectEvent
|
||||||
(effect [_ state _]
|
(effect [_ state _]
|
||||||
(let [features (get state :features)]
|
(let [features (get state :features)]
|
||||||
(if (contains? features "render-wasm/v1")
|
(if (active-feature? state "render-wasm/v1")
|
||||||
(wasm/initialize true)
|
(wasm/initialize true)
|
||||||
(wasm/initialize false))
|
(wasm/initialize false))
|
||||||
|
|
||||||
@ -194,7 +225,7 @@
|
|||||||
ptk/EffectEvent
|
ptk/EffectEvent
|
||||||
(effect [_ state _]
|
(effect [_ state _]
|
||||||
(let [features (get state :features)]
|
(let [features (get state :features)]
|
||||||
(if (contains? features "render-wasm/v1")
|
(if (active-feature? state "render-wasm/v1")
|
||||||
(wasm/initialize true)
|
(wasm/initialize true)
|
||||||
(wasm/initialize false))
|
(wasm/initialize false))
|
||||||
|
|
||||||
|
|||||||
@ -367,7 +367,7 @@
|
|||||||
:else
|
:else
|
||||||
(show-unavailable)))))]
|
(show-unavailable)))))]
|
||||||
(reset! canvas-init? false)
|
(reset! canvas-init? false)
|
||||||
(->> wasm.api/module
|
(->> @wasm.api/module
|
||||||
(p/fmap (fn [ready?]
|
(p/fmap (fn [ready?]
|
||||||
(when ready?
|
(when ready?
|
||||||
(try-init 3)))))
|
(try-init 3)))))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user