diff --git a/hooks/use-infinite-scroll.ts b/hooks/use-infinite-scroll.ts index ea383d1..990de4e 100644 --- a/hooks/use-infinite-scroll.ts +++ b/hooks/use-infinite-scroll.ts @@ -30,7 +30,6 @@ export function useInfiniteScroll({ useEffect(() => { if (!inView || loading || !hasMore) return; - let cancelled = false; const currentPage = pageRef.current; const generation = ++fetchGenRef.current; @@ -38,7 +37,7 @@ export function useInfiniteScroll({ fetchMoreRef.current(currentPage) .then(({ data: newData, hasMore: newHasMore }) => { - if (cancelled || fetchGenRef.current !== generation) return; + if (fetchGenRef.current !== generation) return; if (newData.length > 0) { setData((prev) => [...prev, ...newData]); @@ -47,18 +46,14 @@ export function useInfiniteScroll({ setHasMore(newHasMore && newData.length > 0); }) .catch((error) => { - if (cancelled || fetchGenRef.current !== generation) return; + if (fetchGenRef.current !== generation) return; console.error("Error fetching more data:", error); setHasMore(false); }) .finally(() => { - if (cancelled || fetchGenRef.current !== generation) return; + if (fetchGenRef.current !== generation) return; setLoading(false); }); - - return () => { - cancelled = true; - }; }, [inView, loading, hasMore]); // Reset: replace all data, update hasMore, reset page counter.