From bb535485412a0aa7b4b840df7f1aefe215f4a27a Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 18 Apr 2024 10:03:22 -0500 Subject: [PATCH] Update statsig API --- src/state/queries/feed.ts | 3 ++- src/state/shell/selected-feed.tsx | 28 +++++++++++++++++++-------- src/view/com/feeds/FeedSourceCard.tsx | 6 ++---- src/view/screens/Home.tsx | 14 +++++--------- src/view/screens/ProfileFeed.tsx | 3 ++- 5 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts index bec29eb779..7562404d4c 100644 --- a/src/state/queries/feed.ts +++ b/src/state/queries/feed.ts @@ -244,7 +244,8 @@ const pinnedFeedInfosQueryKeyRoot = 'pinnedFeedsInfos' export function usePinnedFeedsInfos() { const {hasSession} = useSession() const {data: preferences, isLoading: isLoadingPrefs} = usePreferencesQuery() - const isPrimaryAlgoExperimentEnabled = useGate( + const gate = useGate() + const isPrimaryAlgoExperimentEnabled = gate( 'reduced_onboarding_and_home_algo', ) const primaryAlgo = preferences?.primaryAlgorithm diff --git a/src/state/shell/selected-feed.tsx b/src/state/shell/selected-feed.tsx index dca3445f33..307de96e6a 100644 --- a/src/state/shell/selected-feed.tsx +++ b/src/state/shell/selected-feed.tsx @@ -12,28 +12,40 @@ const stateContext = React.createContext('home') const setContext = React.createContext((_: string) => {}) function getInitialFeed(gate: (gateName: Gate) => boolean) { + const isPrimaryAlgoExperimentEnabled = gate( + 'reduced_onboarding_and_home_algo', + ) + let feed = isPrimaryAlgoExperimentEnabled ? 'primary-algo' : 'home' + if (isWeb) { if (window.location.pathname === '/') { const params = new URLSearchParams(window.location.search) const feedFromUrl = params.get('feed') if (feedFromUrl) { - // If explicitly booted from a link like /?feed=..., prefer that. + // basically a link to a specific tab, use that every time if present return feedFromUrl } } const feedFromSession = sessionStorage.getItem('lastSelectedHomeFeed') if (feedFromSession) { // Fall back to a previously chosen feed for this browser tab. - return feedFromSession + feed = feedFromSession } } - if (!gate('start_session_with_following')) { - const feedFromPersisted = persisted.get('lastSelectedHomeFeed') - if (feedFromPersisted) { - // Fall back to the last chosen one across all tabs. - return feedFromPersisted - } + + const feedFromPersisted = persisted.get('lastSelectedHomeFeed') + if (feedFromPersisted) { + // Fall back to the last chosen one across all tabs. + feed = feedFromPersisted } + + if (isPrimaryAlgoExperimentEnabled) { + if (feed === 'home') { + return 'home' + } + return 'primary-algo' + } + return 'home' } diff --git a/src/view/com/feeds/FeedSourceCard.tsx b/src/view/com/feeds/FeedSourceCard.tsx index 9caf2b95f7..c1caeb7149 100644 --- a/src/view/com/feeds/FeedSourceCard.tsx +++ b/src/view/com/feeds/FeedSourceCard.tsx @@ -93,9 +93,7 @@ export function FeedSourceCardLoaded({ const {_} = useLingui() const removePromptControl = Prompt.usePromptControl() const navigation = useNavigationDeduped() - const isPrimaryAlgoExperimentEnabled = useGate( - 'reduced_onboarding_and_home_algo', - ) + const gate = useGate() const primaryAlgoDialogControl = Prompt.usePromptControl() const {isPending: isSavePending, mutateAsync: saveFeed} = @@ -239,7 +237,7 @@ export function FeedSourceCardLoaded({ {showFeedSaveButton && - (isPrimaryAlgoExperimentEnabled && isPrimaryAlgo ? ( + (gate('reduced_onboarding_and_home_algo') && isPrimaryAlgo ? (