Disable other queries if full experience is disabled

This commit is contained in:
Eric Bailey
2025-04-08 14:29:18 -05:00
parent 052ffcf1d9
commit 41298228a1
5 changed files with 23 additions and 20 deletions
+6 -4
View File
@@ -252,7 +252,7 @@ export function Explore({
isFetchingNextPage: isFetchingNextFeedsPage, isFetchingNextPage: isFetchingNextFeedsPage,
error: feedsError, error: feedsError,
fetchNextPage: fetchNextFeedsPage, fetchNextPage: fetchNextFeedsPage,
} = useGetPopularFeedsQuery({limit: 10}) } = useGetPopularFeedsQuery({limit: 10, enabled: useFullExperience})
const interestsNux = useNux(Nux.ExploreInterestsCard) const interestsNux = useNux(Nux.ExploreInterestsCard)
const showInterestsNux = const showInterestsNux =
interestsNux.status === 'ready' && !interestsNux.nux?.completed interestsNux.status === 'ready' && !interestsNux.nux?.completed
@@ -262,7 +262,7 @@ export function Explore({
isLoading: isLoadingSuggestedSPs, isLoading: isLoadingSuggestedSPs,
error: suggestedSPsError, error: suggestedSPsError,
isRefetching: isRefetchingSuggestedSPs, isRefetching: isRefetchingSuggestedSPs,
} = useSuggestedStarterPacksQuery() } = useSuggestedStarterPacksQuery({enabled: useFullExperience})
const isLoadingMoreFeeds = isFetchingNextFeedsPage && !isLoadingFeeds const isLoadingMoreFeeds = isFetchingNextFeedsPage && !isLoadingFeeds
const [hasPressedLoadMoreFeeds, setHasPressedLoadMoreFeeds] = useState(false) const [hasPressedLoadMoreFeeds, setHasPressedLoadMoreFeeds] = useState(false)
@@ -285,7 +285,9 @@ export function Explore({
hasPressedLoadMoreFeeds, hasPressedLoadMoreFeeds,
]) ])
const {data: suggestedFeeds} = useGetSuggestedFeedsQuery() const {data: suggestedFeeds} = useGetSuggestedFeedsQuery({
enabled: useFullExperience,
})
const { const {
data: feedPreviewSlices, data: feedPreviewSlices,
query: { query: {
@@ -295,7 +297,7 @@ export function Explore({
hasNextPage: hasNextPageFeedPreviews, hasNextPage: hasNextPageFeedPreviews,
error: feedPreviewSlicesError, error: feedPreviewSlicesError,
}, },
} = useFeedPreviews(suggestedFeeds?.feeds ?? []) } = useFeedPreviews(suggestedFeeds?.feeds ?? [], useFullExperience)
const qc = useQueryClient() const qc = useQueryClient()
const [isPTR, setIsPTR] = useState(false) const [isPTR, setIsPTR] = useState(false)
+2 -1
View File
@@ -120,6 +120,7 @@ export type FeedPreviewItem =
export function useFeedPreviews( export function useFeedPreviews(
feedsMaybeWithDuplicates: AppBskyFeedDefs.GeneratorView[], feedsMaybeWithDuplicates: AppBskyFeedDefs.GeneratorView[],
isEnabled: boolean = true,
) { ) {
const feeds = useMemo( const feeds = useMemo(
() => () =>
@@ -135,7 +136,7 @@ export function useFeedPreviews(
const {data: preferences} = usePreferencesQuery() const {data: preferences} = usePreferencesQuery()
const userInterests = aggregateUserInterests(preferences) const userInterests = aggregateUserInterests(preferences)
const moderationOpts = useModerationOpts() const moderationOpts = useModerationOpts()
const enabled = feeds.length > 0 const enabled = feeds.length > 0 && isEnabled
const query = useInfiniteQuery({ const query = useInfiniteQuery({
enabled, enabled,
+11 -11
View File
@@ -1,18 +1,18 @@
import {useCallback, useEffect, useMemo, useRef} from 'react' import {useCallback, useEffect, useMemo, useRef} from 'react'
import { import {
AppBskyActorDefs, type AppBskyActorDefs,
AppBskyFeedDefs, type AppBskyFeedDefs,
AppBskyGraphDefs, type AppBskyGraphDefs,
AppBskyUnspeccedGetPopularFeedGenerators, type AppBskyUnspeccedGetPopularFeedGenerators,
AtUri, AtUri,
moderateFeedGenerator, moderateFeedGenerator,
RichText, RichText,
} from '@atproto/api' } from '@atproto/api'
import { import {
InfiniteData, type InfiniteData,
keepPreviousData, keepPreviousData,
QueryClient, type QueryClient,
QueryKey, type QueryKey,
useInfiniteQuery, useInfiniteQuery,
useMutation, useMutation,
useQuery, useQuery,
@@ -28,7 +28,7 @@ import {usePreferencesQuery} from '#/state/queries/preferences'
import {useAgent, useSession} from '#/state/session' import {useAgent, useSession} from '#/state/session'
import {router} from '#/routes' import {router} from '#/routes'
import {useModerationOpts} from '../preferences/moderation-opts' import {useModerationOpts} from '../preferences/moderation-opts'
import {FeedDescriptor} from './post-feed' import {type FeedDescriptor} from './post-feed'
import {precacheResolvedUri} from './resolve-uri' import {precacheResolvedUri} from './resolve-uri'
export type FeedSourceFeedInfo = { export type FeedSourceFeedInfo = {
@@ -203,12 +203,12 @@ export const KNOWN_AUTHED_ONLY_FEEDS = [
'at://did:plc:vpkhqolt662uhesyj6nxm7ys/app.bsky.feed.generator/followpics', // the gram, by why 'at://did:plc:vpkhqolt662uhesyj6nxm7ys/app.bsky.feed.generator/followpics', // the gram, by why
] ]
type GetPopularFeedsOptions = {limit?: number} type GetPopularFeedsOptions = {limit?: number; enabled?: boolean}
export function createGetPopularFeedsQueryKey( export function createGetPopularFeedsQueryKey(
options?: GetPopularFeedsOptions, options?: GetPopularFeedsOptions,
) { ) {
return ['getPopularFeeds', options] return ['getPopularFeeds', options?.limit]
} }
export function useGetPopularFeedsQuery(options?: GetPopularFeedsOptions) { export function useGetPopularFeedsQuery(options?: GetPopularFeedsOptions) {
@@ -237,7 +237,7 @@ export function useGetPopularFeedsQuery(options?: GetPopularFeedsOptions) {
QueryKey, QueryKey,
string | undefined string | undefined
>({ >({
enabled: Boolean(moderationOpts), enabled: Boolean(moderationOpts) && options?.enabled !== false,
queryKey: createGetPopularFeedsQueryKey(options), queryKey: createGetPopularFeedsQueryKey(options),
queryFn: async ({pageParam}) => { queryFn: async ({pageParam}) => {
const res = await agent.app.bsky.unspecced.getPopularFeedGenerators({ const res = await agent.app.bsky.unspecced.getPopularFeedGenerators({
@@ -13,13 +13,13 @@ export const DEFAULT_LIMIT = 5
export const createGetSuggestedFeedsQueryKey = () => ['suggested-feeds'] export const createGetSuggestedFeedsQueryKey = () => ['suggested-feeds']
export function useGetSuggestedFeedsQuery() { export function useGetSuggestedFeedsQuery({enabled}: {enabled?: boolean}) {
const agent = useAgent() const agent = useAgent()
const {data: preferences} = usePreferencesQuery() const {data: preferences} = usePreferencesQuery()
const savedFeeds = preferences?.savedFeeds const savedFeeds = preferences?.savedFeeds
return useQuery({ return useQuery({
enabled: !!preferences, enabled: !!preferences && enabled !== false,
staleTime: STALE.MINUTES.THREE, staleTime: STALE.MINUTES.THREE,
queryKey: createGetSuggestedFeedsQueryKey(), queryKey: createGetSuggestedFeedsQueryKey(),
queryFn: async () => { queryFn: async () => {
@@ -13,13 +13,13 @@ export const createSuggestedStarterPacksQueryKey = () => [
'suggested-starter-packs', 'suggested-starter-packs',
] ]
export function useSuggestedStarterPacksQuery() { export function useSuggestedStarterPacksQuery({enabled}: {enabled?: boolean}) {
const agent = useAgent() const agent = useAgent()
const {data: preferences} = usePreferencesQuery() const {data: preferences} = usePreferencesQuery()
const contentLangs = getContentLanguages().join(',') const contentLangs = getContentLanguages().join(',')
return useQuery({ return useQuery({
enabled: !!preferences, enabled: !!preferences && enabled !== false,
staleTime: STALE.MINUTES.THREE, staleTime: STALE.MINUTES.THREE,
queryKey: createSuggestedStarterPacksQueryKey(), queryKey: createSuggestedStarterPacksQueryKey(),
async queryFn() { async queryFn() {