diff options
-rw-r--r-- | src/state/queries/feed.ts | 1 | ||||
-rw-r--r-- | src/view/screens/Home.tsx | 13 |
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 { |