UNPKG

@atlaskit/renderer

Version:
24 lines 699 B
import { useEffect, useRef, useState } from 'react'; export const useInViewport = () => { const trackingRef = useRef(null); const [isInViewport, setIsInViewport] = useState(false); useEffect(() => { if (!trackingRef || !(trackingRef !== null && trackingRef !== void 0 && trackingRef.current)) { return; } const target = trackingRef.current; const observer = new IntersectionObserver(entries => { for (const entry of entries) { if (entry.isIntersecting) { setIsInViewport(true); } } }); observer.observe(target); return () => observer.disconnect(); }, [trackingRef]); return { isInViewport, trackingRef }; };