diff --git a/frontend/src/app/main/features.cljs b/frontend/src/app/main/features.cljs index 130549451d..9fc02dfe5a 100644 --- a/frontend/src/app/main/features.cljs +++ b/frontend/src/app/main/features.cljs @@ -50,17 +50,41 @@ (set/union (get team :features)) (setup-wasm-features state)))) +(defn enabled-by-flags? + [{:keys [features-runtime features]} feature] + (or (contains? features-runtime feature) + (contains? features feature))) + +(defn enabled-without-migration? + [{:keys [features-runtime features]} feature] + (or (contains? features-runtime feature) + (contains? global-enabled-features feature) + (contains? features feature))) + +(defn wasm-url-override + [state] + (case (get (rt/get-params state) :wasm) + "true" true + "false" false + nil)) + (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 [runtime-features (get state :features-runtime) - enabled-features (get state :features)] - (or (contains? runtime-features feature) - (if (contains? cfeat/no-migration-features feature) - (or (contains? global-enabled-features feature) - (contains? enabled-features feature)) - (contains? enabled-features 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 + + (contains? cfeat/no-migration-features feature) + (enabled-without-migration? state feature) + + :else + (enabled-by-flags? state feature)))) (def ^:private features-ref (l/derived (l/key :features) st/state)) diff --git a/frontend/src/app/main/ui/workspace/shapes/text/text_edition_outline.cljs b/frontend/src/app/main/ui/workspace/shapes/text/text_edition_outline.cljs index 76e52c9537..10c5c71e16 100644 --- a/frontend/src/app/main/ui/workspace/shapes/text/text_edition_outline.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/text/text_edition_outline.cljs @@ -17,6 +17,7 @@ (mf/defc text-edition-outline [{:keys [shape zoom modifiers]}] + (println "text-edition-outline" (features/active-feature? @st/state "render-wasm/v1")) (if (features/active-feature? @st/state "render-wasm/v1") (let [{:keys [width height]} (wasm.api/get-text-dimensions (:id shape)) selrect-transform (mf/deref refs/workspace-selrect)