diff --git a/src/components/MoreComponentsFromSearchParams.tsx b/src/components/MoreComponentsFromSearchParams.tsx deleted file mode 100644 index 68b90e4d..00000000 --- a/src/components/MoreComponentsFromSearchParams.tsx +++ /dev/null @@ -1,67 +0,0 @@ -'use client'; - -import { useRouter } from 'next/navigation'; -import { useCallback, useEffect, useRef, useTransition } from 'react'; -import Spinner from './Spinner'; - -export default function MoreComponentsFromSearchParams({ - path, - label = 'Load more', - triggerOnView = true, - prefetch = true, -}: { - path: string - label?: string - triggerOnView?: boolean - prefetch?: boolean -}) { - const router = useRouter(); - - const [isPending, startTransition] = useTransition(); - - const buttonRef = useRef(null); - - const advance = useCallback(() => startTransition(() => { - router.push(path, { scroll: false }); - }), [router, path]); - - useEffect(() => { - if (prefetch) { - router.prefetch(path); - } - }, [router, path, prefetch]); - - useEffect(() => { - const observer = new IntersectionObserver(e => { - if ( - triggerOnView && - e[0].isIntersecting && - !isPending - ) { - advance(); - } - }, { - root: null, - threshold: 0, - }); - - observer.observe(buttonRef.current!); - - return () => observer.disconnect(); - }, [triggerOnView, advance, isPending]); - - return ( - - ); -}