about summary refs log tree commit diff
path: root/src/state/queries/post-feed.ts
diff options
context:
space:
mode:
authordan <dan.abramov@gmail.com>2024-05-21 05:03:17 +0100
committerGitHub <noreply@github.com>2024-05-20 21:03:17 -0700
commitb89e4ded2faf064ceed63bdf3e0c3d0124903b12 (patch)
treeddf371cfa142b6ae1d6fcf768bfb4e4ec3195a7e /src/state/queries/post-feed.ts
parentd6625c29d17b8c614b20378c2681b4774d7dd71f (diff)
downloadvoidsky-b89e4ded2faf064ceed63bdf3e0c3d0124903b12.tar.zst
Only fallback to Discover if Following is first pinned (#4146)
Diffstat (limited to 'src/state/queries/post-feed.ts')
-rw-r--r--src/state/queries/post-feed.ts29
1 files changed, 14 insertions, 15 deletions
diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts
index b763f28a0..18c4b65a5 100644
--- a/src/state/queries/post-feed.ts
+++ b/src/state/queries/post-feed.ts
@@ -17,7 +17,6 @@ import {
 import {HomeFeedAPI} from '#/lib/api/feed/home'
 import {aggregateUserInterests} from '#/lib/api/feed/utils'
 import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped'
-import {useGate} from '#/lib/statsig/statsig'
 import {logger} from '#/logger'
 import {STALE} from '#/state/queries'
 import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences/const'
@@ -111,6 +110,11 @@ export function usePostFeedQuery(
   const enabled =
     opts?.enabled !== false && Boolean(moderationOpts) && Boolean(preferences)
   const userInterests = aggregateUserInterests(preferences)
+  const followingPinnedIndex =
+    preferences?.savedFeeds?.findIndex(
+      f => f.pinned && f.value === 'following',
+    ) ?? -1
+  const enableFollowingToDiscoverFallback = followingPinnedIndex === 0
   const {getAgent} = useAgent()
   const lastRun = useRef<{
     data: InfiniteData<FeedPageUnselected>
@@ -118,7 +122,6 @@ export function usePostFeedQuery(
     result: InfiniteData<FeedPage>
   } | null>(null)
   const lastPageCountRef = useRef(0)
-  const gate = useGate()
 
   // Make sure this doesn't invalidate unless really needed.
   const selectArgs = React.useMemo(
@@ -150,15 +153,11 @@ export function usePostFeedQuery(
               feedDesc,
               feedParams: params || {},
               feedTuners,
-              userInterests, // Not in the query key because they don't change.
               getAgent,
-              useBaseFollowingFeed: gate(
-                'reduced_onboarding_and_home_algo_v2',
-                {
-                  // If you're not already in this experiment, we don't want to expose you to it now.
-                  dangerouslyDisableExposureLogging: true,
-                },
-              ),
+              // Not in the query key because they don't change:
+              userInterests,
+              // Not in the query key. Reacting to it switching isn't important:
+              enableFollowingToDiscoverFallback,
             }),
             cursor: undefined,
           }
@@ -392,14 +391,14 @@ function createApi({
   feedTuners,
   userInterests,
   getAgent,
-  useBaseFollowingFeed,
+  enableFollowingToDiscoverFallback,
 }: {
   feedDesc: FeedDescriptor
   feedParams: FeedParams
   feedTuners: FeedTunerFn[]
   userInterests?: string
   getAgent: () => BskyAgent
-  useBaseFollowingFeed: boolean
+  enableFollowingToDiscoverFallback: boolean
 }) {
   if (feedDesc === 'following') {
     if (feedParams.mergeFeedEnabled) {
@@ -410,10 +409,10 @@ function createApi({
         userInterests,
       })
     } else {
-      if (useBaseFollowingFeed) {
-        return new FollowingFeedAPI({getAgent})
-      } else {
+      if (enableFollowingToDiscoverFallback) {
         return new HomeFeedAPI({getAgent, userInterests})
+      } else {
+        return new FollowingFeedAPI({getAgent})
       }
     }
   } else if (feedDesc.startsWith('author')) {