[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:
@@ -10,6 +10,9 @@ import {
|
|||||||
usePreferencesQuery,
|
usePreferencesQuery,
|
||||||
} from '#/state/queries/preferences'
|
} from '#/state/queries/preferences'
|
||||||
import {type UsePreferencesQueryResponse} from '#/state/queries/preferences/types'
|
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 {useAgent} from '#/state/session'
|
||||||
import * as Toast from '#/view/com/util/Toast'
|
import * as Toast from '#/view/com/util/Toast'
|
||||||
import {useInterestsDisplayNames} from '#/screens/Onboarding/state'
|
import {useInterestsDisplayNames} from '#/screens/Onboarding/state'
|
||||||
@@ -98,7 +101,24 @@ function Inner({
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
await agent.setInterestsPref({tags: interests})
|
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(
|
Toast.show(
|
||||||
_(msg({message: 'Content preferences updated!', context: 'toast'})),
|
_(msg({message: 'Content preferences updated!', context: 'toast'})),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import {useAgent} from '#/state/session'
|
|||||||
|
|
||||||
export const DEFAULT_LIMIT = 5
|
export const DEFAULT_LIMIT = 5
|
||||||
|
|
||||||
export const createGetTrendsQueryKey = () => ['suggested-feeds']
|
export const createGetSuggestedFeedsQueryKey = () => ['suggested-feeds']
|
||||||
|
|
||||||
export function useGetSuggestedFeedsQuery() {
|
export function useGetSuggestedFeedsQuery() {
|
||||||
const agent = useAgent()
|
const agent = useAgent()
|
||||||
@@ -22,7 +22,7 @@ export function useGetSuggestedFeedsQuery() {
|
|||||||
enabled: !!preferences,
|
enabled: !!preferences,
|
||||||
refetchOnWindowFocus: true,
|
refetchOnWindowFocus: true,
|
||||||
staleTime: STALE.MINUTES.ONE,
|
staleTime: STALE.MINUTES.ONE,
|
||||||
queryKey: createGetTrendsQueryKey(),
|
queryKey: createGetSuggestedFeedsQueryKey(),
|
||||||
queryFn: async () => {
|
queryFn: async () => {
|
||||||
const contentLangs = getContentLanguages().join(',')
|
const contentLangs = getContentLanguages().join(',')
|
||||||
const {data} = await agent.app.bsky.unspecced.getSuggestedFeeds(
|
const {data} = await agent.app.bsky.unspecced.getSuggestedFeeds(
|
||||||
|
|||||||
Reference in New Issue
Block a user