From c08608e5d06d395eafa22ecf2d2dc777d6a511f4 Mon Sep 17 00:00:00 2001 From: Scott Nonnenberg Date: Wed, 12 Oct 2022 10:39:05 -0700 Subject: [PATCH] Expand beta check for stories availability --- ts/state/selectors/items.ts | 6 +++++- ts/types/Stories.ts | 6 ++++-- ts/util/createIPCEvents.tsx | 6 ++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ts/state/selectors/items.ts b/ts/state/selectors/items.ts index 61333227b11..19c3a11442e 100644 --- a/ts/state/selectors/items.ts +++ b/ts/state/selectors/items.ts @@ -15,6 +15,7 @@ import type { } from '../../types/Colors'; import { DEFAULT_CONVERSATION_COLOR } from '../../types/Colors'; import { getPreferredReactionEmoji as getPreferredReactionEmojiFromStoredValue } from '../../reactions/preferredReactionEmoji'; +import { isBeta } from '../../util/version'; const DEFAULT_PREFERRED_LEFT_PANE_WIDTH = 320; @@ -63,13 +64,16 @@ export const getUsernamesEnabled = createSelector( isRemoteConfigFlagEnabled(remoteConfig, 'desktop.usernames') ); +// Note: types/Stories is the other place this check is done export const getStoriesEnabled = createSelector( getItems, getRemoteConfig, (state: ItemsStateType, remoteConfig: ConfigMapType): boolean => !state.hasStoriesDisabled && (isRemoteConfigFlagEnabled(remoteConfig, 'desktop.internalUser') || - isRemoteConfigFlagEnabled(remoteConfig, 'desktop.stories')) + isRemoteConfigFlagEnabled(remoteConfig, 'desktop.stories') || + (isRemoteConfigFlagEnabled(remoteConfig, 'desktop.stories.beta') && + isBeta(window.getVersion()))) ); export const getDefaultConversationColor = createSelector( diff --git a/ts/types/Stories.ts b/ts/types/Stories.ts index 3e7e147ecf5..4853a2d9df6 100644 --- a/ts/types/Stories.ts +++ b/ts/types/Stories.ts @@ -157,12 +157,14 @@ export enum StorySendMode { Never = 'Never', } -const getStoriesAvailable = () => +// Note: selectors/items is the other place this check is done +export const getStoriesAvailable = (): boolean => isEnabled('desktop.stories') || isEnabled('desktop.internalUser') || (isEnabled('desktop.stories.beta') && isBeta(window.getVersion())); -const getStoriesDisabled = () => window.Events.getHasStoriesDisabled(); +export const getStoriesDisabled = (): boolean => + window.Events.getHasStoriesDisabled(); export const getStoriesBlocked = (): boolean => !getStoriesAvailable() || getStoriesDisabled(); diff --git a/ts/util/createIPCEvents.tsx b/ts/util/createIPCEvents.tsx index 309ad9b3c09..464e19db206 100644 --- a/ts/util/createIPCEvents.tsx +++ b/ts/util/createIPCEvents.tsx @@ -4,7 +4,7 @@ import { webFrame } from 'electron'; import type { AudioDevice } from 'ringrtc'; import * as React from 'react'; -import * as RemoteConfig from '../RemoteConfig'; +import { getStoriesAvailable } from '../types/Stories'; import type { ZoomFactorType } from '../types/Storage.d'; import type { @@ -343,9 +343,7 @@ export function createIPCEvents( isPhoneNumberSharingEnabled: () => isPhoneNumberSharingEnabled(), isPrimary: () => window.textsecure.storage.user.getDeviceId() === 1, - shouldShowStoriesSettings: () => - RemoteConfig.isEnabled('desktop.internalUser') || - RemoteConfig.isEnabled('desktop.stories'), + shouldShowStoriesSettings: () => getStoriesAvailable(), syncRequest: () => new Promise((resolve, reject) => { const FIVE_MINUTES = 5 * durations.MINUTE;