diff options
-rw-r--r-- | src/screens/Settings/SettingsInterests.tsx | 22 | ||||
-rw-r--r-- | src/state/queries/trending/useGetSuggestedFeedsQuery.ts | 4 |
2 files changed, 23 insertions, 3 deletions
diff --git a/src/screens/Settings/SettingsInterests.tsx b/src/screens/Settings/SettingsInterests.tsx index 9a6132946..7114faae7 100644 --- a/src/screens/Settings/SettingsInterests.tsx +++ b/src/screens/Settings/SettingsInterests.tsx @@ -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'})), ) diff --git a/src/state/queries/trending/useGetSuggestedFeedsQuery.ts b/src/state/queries/trending/useGetSuggestedFeedsQuery.ts index 293457d03..55b633af0 100644 --- a/src/state/queries/trending/useGetSuggestedFeedsQuery.ts +++ b/src/state/queries/trending/useGetSuggestedFeedsQuery.ts @@ -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( |