about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2023-12-18 16:42:37 -0600
committerGitHub <noreply@github.com>2023-12-18 14:42:37 -0800
commit14c77255ddabef8efa3d9d3922d137b1475bab71 (patch)
tree3876203dd15cc18d9c95ec25e09f7f732fc2bc1b /src
parent8df4fd4d570d64e794e8929353d6b7360928476b (diff)
downloadvoidsky-14c77255ddabef8efa3d9d3922d137b1475bab71.tar.zst
Use same source for pinned feeds on Home and tab/sidebars (#2235)
Diffstat (limited to 'src')
-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 {