diff options
Diffstat (limited to 'src/view/screens/Home.tsx')
-rw-r--r-- | src/view/screens/Home.tsx | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index 82dd1365c..b8033f0b4 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -18,11 +18,13 @@ import {emitSoftReset} from '#/state/events' import {useSession} from '#/state/session' import {loadString, saveString} from '#/lib/storage' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {clamp} from '#/lib/numbers' type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home'> export function HomeScreen(props: Props) { const {data: preferences} = usePreferencesQuery() - const {feeds: pinnedFeeds} = usePinnedFeedsInfos() + const {feeds: pinnedFeeds, isLoading: isPinnedFeedsLoading} = + usePinnedFeedsInfos() const {isDesktop} = useWebMediaQueries() const [initialPage, setInitialPage] = React.useState<string | undefined>( undefined, @@ -41,7 +43,12 @@ export function HomeScreen(props: Props) { loadLastActivePage() }, []) - if (preferences && pinnedFeeds && initialPage !== undefined) { + if ( + preferences && + pinnedFeeds && + initialPage !== undefined && + !isPinnedFeedsLoading + ) { return ( <HomeScreenReady {...props} @@ -172,7 +179,7 @@ function HomeScreenReady({ <Pager key={pinnedFeedOrderKey} testID="homeScreen" - initialPage={selectedPageIndex} + initialPage={clamp(selectedPageIndex, 0, customFeeds.length)} onPageSelected={onPageSelected} onPageScrollStateChanged={onPageScrollStateChanged} renderTabBar={renderTabBar} |