From d2959e1acce8450d7b6144bcd661b78716966c41 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 30 Apr 2021 12:30:05 +0100 Subject: [PATCH] Add mechanism for disabling Betas --- src/components/views/beta/BetaCard.tsx | 5 ++++- src/settings/SettingsStore.ts | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/views/beta/BetaCard.tsx b/src/components/views/beta/BetaCard.tsx index 1233f345d1..96b1fbabe5 100644 --- a/src/components/views/beta/BetaCard.tsx +++ b/src/components/views/beta/BetaCard.tsx @@ -60,7 +60,10 @@ export const BetaPill = ({ onClick }: { onClick?: () => void }) => { }; const BetaCard = ({ title: titleOverride, featureId }: IProps) => { - const { title, caption, disclaimer, image } = SettingsStore.getBetaInfo(featureId); + const info = SettingsStore.getBetaInfo(featureId); + if (!info) return null; // Beta is invalid/disabled + + const { title, caption, disclaimer, image } = info; const value = SettingsStore.getValue(featureId); return
diff --git a/src/settings/SettingsStore.ts b/src/settings/SettingsStore.ts index ff3a5371b0..875a0a87ec 100644 --- a/src/settings/SettingsStore.ts +++ b/src/settings/SettingsStore.ts @@ -258,7 +258,12 @@ export default class SettingsStore { } public static getBetaInfo(settingName: string) { - return SETTINGS[settingName]?.betaInfo; + // consider a beta disabled if the config is explicitly set to false, in which case treat as normal Labs flag + if (SettingsStore.isFeature(settingName) + && SettingsStore.getValueAt(SettingLevel.CONFIG, settingName, null, true, true) !== false + ) { + return SETTINGS[settingName]?.betaInfo; + } } /**