about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/state/queries/feed.ts1
-rw-r--r--src/view/screens/Home.tsx13
2 files changed, 10 insertions, 4 deletions
diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts
index c9d81bc17..c87e95f03 100644
--- a/src/state/queries/feed.ts
+++ b/src/state/queries/feed.ts
@@ -249,6 +249,7 @@ export function usePinnedFeedsInfos(): {
               // these requests can fail, need to filter those out
               try {
                 return await queryClient.fetchQuery({
+                  staleTime: STALE.SECONDS.FIFTEEN,
                   queryKey: feedSourceInfoQueryKey({uri}),
                   queryFn: async () => {
                     const type = getFeedTypeFromUri(uri)
diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx
index bfe440265..82dd1365c 100644
--- a/src/view/screens/Home.tsx
+++ b/src/view/screens/Home.tsx
@@ -12,6 +12,7 @@ import {FeedPage} from 'view/com/feeds/FeedPage'
 import {HomeLoggedOutCTA} from '../com/auth/HomeLoggedOutCTA'
 import {useSetMinimalShellMode, useSetDrawerSwipeDisabled} from '#/state/shell'
 import {usePreferencesQuery} from '#/state/queries/preferences'
+import {usePinnedFeedsInfos, FeedSourceInfo} from '#/state/queries/feed'
 import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types'
 import {emitSoftReset} from '#/state/events'
 import {useSession} from '#/state/session'
@@ -21,6 +22,7 @@ import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
 type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home'>
 export function HomeScreen(props: Props) {
   const {data: preferences} = usePreferencesQuery()
+  const {feeds: pinnedFeeds} = usePinnedFeedsInfos()
   const {isDesktop} = useWebMediaQueries()
   const [initialPage, setInitialPage] = React.useState<string | undefined>(
     undefined,
@@ -39,11 +41,12 @@ export function HomeScreen(props: Props) {
     loadLastActivePage()
   }, [])
 
-  if (preferences && initialPage !== undefined) {
+  if (preferences && pinnedFeeds && initialPage !== undefined) {
     return (
       <HomeScreenReady
         {...props}
         preferences={preferences}
+        pinnedFeeds={pinnedFeeds}
         initialPage={isDesktop ? 'Following' : initialPage}
       />
     )
@@ -58,9 +61,11 @@ export function HomeScreen(props: Props) {
 
 function HomeScreenReady({
   preferences,
+  pinnedFeeds,
   initialPage,
 }: Props & {
   preferences: UsePreferencesQueryResponse
+  pinnedFeeds: FeedSourceInfo[]
   initialPage: string
 }) {
   const {hasSession} = useSession()
@@ -82,9 +87,9 @@ function HomeScreenReady({
   }, [preferences.feeds.pinned, selectedPage])
 
   const customFeeds = React.useMemo(() => {
-    const pinned = preferences.feeds.pinned
+    const pinned = pinnedFeeds
     const feeds: FeedDescriptor[] = []
-    for (const uri of pinned) {
+    for (const {uri} of pinned) {
       if (uri.includes('app.bsky.feed.generator')) {
         feeds.push(`feedgen|${uri}`)
       } else if (uri.includes('app.bsky.graph.list')) {
@@ -92,7 +97,7 @@ function HomeScreenReady({
       }
     }
     return feeds
-  }, [preferences.feeds.pinned])
+  }, [pinnedFeeds])
 
   const homeFeedParams = React.useMemo<FeedParams>(() => {
     return {