From cd5352e53a6dc5f4c3bf2afaaa81f48cef8935d2 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 14 Nov 2023 10:17:09 -0600 Subject: [PATCH] Handle end of feed --- src/view/screens/Feeds.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/view/screens/Feeds.tsx b/src/view/screens/Feeds.tsx index 9c3d890053..39a7508fc5 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,15 @@ export const FeedsScreen = withAuthRequired(function FeedsScreenImpl( await refetchPopularFeeds() setIsPTR(false) }, [setIsPTR, refetchPopularFeeds]) + const onEndReached = React.useCallback(() => { + if (isUserSearching || !hasNextPopularFeedsPage || popularFeedsError) return + fetchNextPopularFeedsPage() + }, [ + isUserSearching, + popularFeedsError, + hasNextPopularFeedsPage, + fetchNextPopularFeedsPage, + ]) useFocusEffect( React.useCallback(() => { @@ -474,9 +484,7 @@ export const FeedsScreen = withAuthRequired(function FeedsScreenImpl( /> } initialNumToRender={10} - onEndReached={() => - isUserSearching ? undefined : fetchNextPopularFeedsPage() - } + onEndReached={onEndReached} // @ts-ignore our .web version only -prf desktopFixedHeight />