import { useState, useEffect, RefObject } from 'react' const useIntersectionObserver = ( element: RefObject ): { onScreen: boolean } => { const [onScreen, setOnScreen] = useState(false) useEffect(() => { if (element.current) { const observer = new IntersectionObserver(([entry]) => setOnScreen(entry.isIntersecting) ) observer.observe(element.current) return () => { observer.disconnect() } } }, [element, setOnScreen]) return { onScreen, } } export default useIntersectionObserver