feat(editor): Load fixed template list as experiment (#6632)

* feat(editor): Load fixed template list as experiment

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* Improve templates loading

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* get rid of endResult message

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* Do not lazy-load when fixedListExperiment

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

---------

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
This commit is contained in:
OlegIvaniv
2023-07-10 17:11:42 +02:00
committed by GitHub
parent aa53c46367
commit e9966224ea
8 changed files with 71 additions and 59 deletions

View File

@@ -10,7 +10,6 @@ import {
EXPERIMENTS_TO_TRACK,
LOCAL_STORAGE_EXPERIMENT_OVERRIDES,
ONBOARDING_EXPERIMENT,
TEMPLATE_EXPERIMENT,
} from '@/constants';
import { useTelemetryStore } from './telemetry.store';
import { debounce } from 'lodash-es';
@@ -134,7 +133,6 @@ export const usePostHog = defineStore('posthog', () => {
// does not need to be debounced really, but tracking does not fire without delay on page load
addExperimentOverrides();
trackExperimentsDebounced(featureFlags.value);
evaluateExperiments(featureFlags.value);
} else {
// depend on client side evaluation if serverside evaluation fails
window.posthog?.onFeatureFlags?.((keys: string[], map: FeatureFlags) => {
@@ -143,21 +141,10 @@ export const usePostHog = defineStore('posthog', () => {
// must be debounced because it is called multiple times by posthog
trackExperimentsDebounced(featureFlags.value);
evaluateExperimentsDebounced(featureFlags.value);
});
}
};
const evaluateExperiments = (featureFlags: FeatureFlags) => {
Object.keys(featureFlags).forEach((name) => {
const variant = featureFlags[name];
if (name === TEMPLATE_EXPERIMENT.name && variant === TEMPLATE_EXPERIMENT.variant) {
settingsStore.disableTemplates();
}
});
};
const evaluateExperimentsDebounced = debounce(evaluateExperiments, 2000);
const trackExperiments = (featureFlags: FeatureFlags) => {
EXPERIMENTS_TO_TRACK.forEach((name) => trackExperiment(featureFlags, name));
};