From 98600df2800bc6133644ea6041189f5109b9cbda Mon Sep 17 00:00:00 2001 From: Pavel Ropakov Date: Mon, 23 Jan 2023 14:47:49 +0300 Subject: [PATCH] fix(analytics): 14294 - prevent init of analytics with empty features --- src/core/app/features.ts | 1 - src/core/shared_state/featureFlags.ts | 4 ++-- src/views/Map/Map.tsx | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/core/app/features.ts b/src/core/app/features.ts index ae5e3ec94..9fb405885 100644 --- a/src/core/app/features.ts +++ b/src/core/app/features.ts @@ -25,6 +25,5 @@ export function setFeatures(value: BackendFeature[] | null) { value?.forEach((ft) => { newFeatures[ft.name] = true; }); - featureFlagsAtom.set.dispatch(newFeatures); store.dispatch([featureFlagsAtom.set(newFeatures), featuresWereSetAtom.setTrue()]); } diff --git a/src/core/shared_state/featureFlags.ts b/src/core/shared_state/featureFlags.ts index 6759c5ff5..8a60a3e71 100644 --- a/src/core/shared_state/featureFlags.ts +++ b/src/core/shared_state/featureFlags.ts @@ -5,14 +5,14 @@ import { AppFeature } from '~core/auth/types'; export const FeatureFlag = AppFeature; export const featureFlagsAtom = createAtom( - { set: (state = appConfig.effectiveFeatures) => state }, + { set: (state = { ...appConfig.effectiveFeatures }) => state }, ({ onAction }, state = {}) => { onAction('set', (f) => { if (f) { state = f; } else { // reset to defaults - state = appConfig.effectiveFeatures; + state = { ...appConfig.effectiveFeatures }; } }); diff --git a/src/views/Map/Map.tsx b/src/views/Map/Map.tsx index df61daeec..14bd92220 100644 --- a/src/views/Map/Map.tsx +++ b/src/views/Map/Map.tsx @@ -99,7 +99,7 @@ export function MapPage() { - {featureFlags && ( + {Object.keys(featureFlags).length > 0 && ( } // if EVENTS_LIST is enabled, we always have default feed