about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2025-04-04 19:16:39 -0500
committerGitHub <noreply@github.com>2025-04-04 17:16:39 -0700
commit502d660eb4efaada666b3d38971acc7cf5bc2e19 (patch)
tree39c736fa9cddc73fd89c574d34f5eb30303cbdf8
parent6840fbb2377b168c0f468ba4074791e9a35d0f29 (diff)
downloadvoidsky-502d660eb4efaada666b3d38971acc7cf5bc2e19.tar.zst
[Explore] Invalidate queries post-interests edit (#8128)
* Insert fresh interests and reset relevant queries

* reset suggested users

---------

Co-authored-by: Hailey <me@haileyok.com>
-rw-r--r--src/screens/Settings/SettingsInterests.tsx22
-rw-r--r--src/state/queries/trending/useGetSuggestedFeedsQuery.ts4
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(