From 3fde1bea1bffecb6740f261b88ceb34134e0d418 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 14 Nov 2023 11:28:40 -0600 Subject: [PATCH] Handle end of feed (#1898) * Handle end of feed * Add isFetching --- src/view/screens/Feeds.tsx | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/view/screens/Feeds.tsx b/src/view/screens/Feeds.tsx index 9c3d890053..7a3daee8df 100644 --- a/src/view/screens/Feeds.tsx +++ b/src/view/screens/Feeds.tsx @@ -107,6 +107,7 @@ export const FeedsScreen = withAuthRequired(function FeedsScreenImpl( refetch: refetchPopularFeeds, fetchNextPage: fetchNextPopularFeedsPage, isFetchingNextPage: isPopularFeedsFetchingNextPage, + hasNextPage: hasNextPopularFeedsPage, } = useGetPopularFeedsQuery() const {_} = useLingui() const setMinimalShellMode = useSetMinimalShellMode() @@ -154,6 +155,22 @@ export const FeedsScreen = withAuthRequired(function FeedsScreenImpl( await refetchPopularFeeds() setIsPTR(false) }, [setIsPTR, refetchPopularFeeds]) + const onEndReached = React.useCallback(() => { + if ( + isPopularFeedsFetching || + isUserSearching || + !hasNextPopularFeedsPage || + popularFeedsError + ) + return + fetchNextPopularFeedsPage() + }, [ + isPopularFeedsFetching, + isUserSearching, + popularFeedsError, + hasNextPopularFeedsPage, + fetchNextPopularFeedsPage, + ]) useFocusEffect( React.useCallback(() => { @@ -474,9 +491,7 @@ export const FeedsScreen = withAuthRequired(function FeedsScreenImpl( /> } initialNumToRender={10} - onEndReached={() => - isUserSearching ? undefined : fetchNextPopularFeedsPage() - } + onEndReached={onEndReached} // @ts-ignore our .web version only -prf desktopFixedHeight />