[Explore] Invalidate queries post-interests edit (#8128)

* Insert fresh interests and reset relevant queries

* reset suggested users

---------

Co-authored-by: Hailey <me@haileyok.com>
This commit is contained in:
Eric Bailey
2025-04-04 19:16:39 -05:00
committed by GitHub
parent 6840fbb237
commit 502d660eb4
2 changed files with 23 additions and 3 deletions
+21 -1
View File
@@ -10,6 +10,9 @@ import {
usePreferencesQuery,
} from '#/state/queries/preferences'
import {type UsePreferencesQueryResponse} from '#/state/queries/preferences/types'
import {createGetSuggestedFeedsQueryKey} from '#/state/queries/trending/useGetSuggestedFeedsQuery'
import {createGetSuggestedUsersQueryKey} from '#/state/queries/trending/useGetSuggestedUsersQuery'
import {createSuggestedStarterPacksQueryKey} from '#/state/queries/useSuggestedStarterPacksQuery'
import {useAgent} from '#/state/session'
import * as Toast from '#/view/com/util/Toast'
import {useInterestsDisplayNames} from '#/screens/Onboarding/state'
@@ -98,7 +101,24 @@ function Inner({
try {
await agent.setInterestsPref({tags: interests})
await qc.invalidateQueries({queryKey: preferencesQueryKey})
qc.setQueriesData(
{queryKey: preferencesQueryKey},
(old?: UsePreferencesQueryResponse) => {
if (!old) return old
old.interests.tags = interests
return old
},
)
await Promise.all([
await qc.resetQueries({
queryKey: createSuggestedStarterPacksQueryKey(),
}),
await qc.resetQueries({queryKey: createGetSuggestedFeedsQueryKey()}),
await qc.resetQueries({
queryKey: createGetSuggestedUsersQueryKey({}),
}),
])
Toast.show(
_(msg({message: 'Content preferences updated!', context: 'toast'})),
)
@@ -11,7 +11,7 @@ import {useAgent} from '#/state/session'
export const DEFAULT_LIMIT = 5
export const createGetTrendsQueryKey = () => ['suggested-feeds']
export const createGetSuggestedFeedsQueryKey = () => ['suggested-feeds']
export function useGetSuggestedFeedsQuery() {
const agent = useAgent()
@@ -22,7 +22,7 @@ export function useGetSuggestedFeedsQuery() {
enabled: !!preferences,
refetchOnWindowFocus: true,
staleTime: STALE.MINUTES.ONE,
queryKey: createGetTrendsQueryKey(),
queryKey: createGetSuggestedFeedsQueryKey(),
queryFn: async () => {
const contentLangs = getContentLanguages().join(',')
const {data} = await agent.app.bsky.unspecced.getSuggestedFeeds(