import { RefObject, useEffect, useState } from 'react'; export const useOnScreen = (ref: RefObject): boolean => { const [isIntersecting, setIntersecting] = useState(false); useEffect(() => { const observer = new IntersectionObserver(([entry]) => setIntersecting(entry.isIntersecting), ); if (ref.current) { observer.observe(ref.current); } return () => { observer.disconnect(); }; }, [ref]); return isIntersecting; };