From b99be94442213743aee96ab96d6ba7be622cb2da Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 22 Apr 2024 11:02:54 -0500 Subject: [PATCH] Migrate usePinnedFeedInfos --- src/state/queries/feed.ts | 51 ++++++-------------------- src/state/queries/preferences/const.ts | 2 +- 2 files changed, 12 insertions(+), 41 deletions(-) diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts index b39ab9bf18..e8243f699a 100644 --- a/src/state/queries/feed.ts +++ b/src/state/queries/feed.ts @@ -14,7 +14,6 @@ import { } from '@tanstack/react-query' import {DISCOVER_FEED_URI} from '#/lib/constants' -import {useGate} from '#/lib/statsig/statsig' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' import {STALE} from '#/state/queries' @@ -251,33 +250,21 @@ const pinnedFeedInfosQueryKeyRoot = 'pinnedFeedsInfos' export function usePinnedFeedsInfos() { const {hasSession} = useSession() const {data: preferences, isLoading: isLoadingPrefs} = usePreferencesQuery() - const gate = useGate() - const isPrimaryAlgoExperimentEnabled = gate( - 'reduced_onboarding_and_home_algo', - ) - const primaryAlgo = preferences?.primaryAlgorithm - const pinnedUris = preferences?.feeds?.pinned ?? [] - const feedUris = pinnedUris.filter(uri => getFeedTypeFromUri(uri) === 'feed') - const listUris = pinnedUris.filter(uri => getFeedTypeFromUri(uri) === 'list') - - if ( - isPrimaryAlgoExperimentEnabled && - hasSession && - primaryAlgo?.enabled && - primaryAlgo?.uri - ) { - feedUris.unshift(primaryAlgo.uri) - } - - // used for query key - const allUris = feedUris.concat(listUris) + const pinnedFeeds = preferences?.savedFeeds.filter(feed => feed.pinned) ?? [] + const feedUris = pinnedFeeds + .filter(feed => feed.type === 'feed') + .map(f => f.value) + const listUris = pinnedFeeds + .filter(feed => feed.type === 'list') + .map(f => f.value) return useQuery({ staleTime: STALE.INFINITY, enabled: !isLoadingPrefs, queryKey: [ pinnedFeedInfosQueryKeyRoot, - (hasSession ? 'authed:' : 'unauthed:') + allUris.join(','), + (hasSession ? 'authed:' : 'unauthed:') + + pinnedFeeds.map(f => f.value).join(','), ], queryFn: async () => { let resolved = new Map() @@ -313,25 +300,9 @@ export function usePinnedFeedsInfos() { await Promise.allSettled([feedsPromise, ...listsPromises]) - // if primary algo is enabled and was fetched, add it to the front of the list - if (primaryAlgo?.enabled && primaryAlgo?.uri) { - const feedInfo = resolved.get(primaryAlgo.uri) - if (feedInfo) { - feedInfo.isPrimaryAlgorithm = true - result.unshift(feedInfo) - } - } - - const pinnedUrisSansPrimary = pinnedUris.filter(uri => { - if (primaryAlgo?.enabled) { - return uri !== primaryAlgo?.uri - } - return true - }) - // order the feeds/lists in the order they were pinned - for (let pinnedUri of pinnedUrisSansPrimary) { - const feedInfo = resolved.get(pinnedUri) + for (let pinnedFeed of pinnedFeeds) { + const feedInfo = resolved.get(pinnedFeed.value) if (feedInfo) { result.push(feedInfo) } diff --git a/src/state/queries/preferences/const.ts b/src/state/queries/preferences/const.ts index c89e9825ca..314b6a8232 100644 --- a/src/state/queries/preferences/const.ts +++ b/src/state/queries/preferences/const.ts @@ -45,5 +45,5 @@ export const DEFAULT_LOGGED_OUT_PREFERENCES: UsePreferencesQueryResponse = { threadViewPrefs: DEFAULT_THREAD_VIEW_PREFS, userAge: 13, // TODO(pwi) interests: {tags: []}, - primaryAlgorithm: {enabled: undefined}, + savedFeeds: [], // TODO could put stub ehre }