fix: stop feeds from stalling on filtered-out pages

a feed gave up whenever a page's items were all filtered out client-side, and `CustomFeedAPI` suppressed the cursor on an empty page, so a feed could report itself exhausted while more pages existed upstream. one empty page is the wrong predicate for exhaustion — the appview legitimately returns an empty page with a cursor when hydration drops everything. extract the paginator both feeds had copied into `useAutoPagination`, and make exhaustion the concern of `getNextPageParam`, which is where the next page param is minted and where a cursor the server has already served can be recognised. `hasNextPage` then tells the truth for manual scrolling too, not just for the auto-paginator.

326eaa2e parent acd3c472 +114 −83
browse files