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; + } } /**