App_React
1import { useEffect, useRef } from "react";2
3export const useObserver = (ref, canLoad, isLoading, callback) => {4
5const observer = useRef();6
7useEffect(() => {8if(isLoading) return;9if(observer.current) observer.current.disconnect();10
11var calb = function(entries, observer) {12if(entries[0].isIntersecting && canLoad) {13callback()14}15};16
17observer.current = new IntersectionObserver(calb);18observer.current.observe(ref.current)19},[isLoading])20}