import { useInfiniteGames, useWSQuery } from "../../hooks"; import PastMatch from "../../components/PastMatch"; import { useEffect, useRef } from "react"; const MatchHistory = () => { const { data: user } = useWSQuery("user.getSelf", null); const { data, hasNextPage, fetchNextPage, isFetchingNextPage } = useInfiniteGames(user); const loadMoreRef = useRef(null); useEffect(() => { const intersectionObserver = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting && !isFetchingNextPage) { fetchNextPage(); } }); }); const target = loadMoreRef.current; if (target) { intersectionObserver.observe(target); } return () => { if (target) { intersectionObserver.unobserve(target); } }; }, [fetchNextPage, isFetchingNextPage, hasNextPage]); return (
{data?.pages.map((page) => page.data.map((game) => ), )} {hasNextPage && (
Loading...
)}
); }; export default MatchHistory;