UNPKG

@mantine/hooks

Version:

A collection of 50+ hooks for state and UI management

27 lines (23 loc) 699 B
'use client'; 'use strict'; var React = require('react'); function useInViewport() { const ref = React.useRef(null); const [inViewport, setInViewport] = React.useState(false); const observer = React.useMemo(() => { if (typeof IntersectionObserver === "undefined") { return null; } return new IntersectionObserver(([entry]) => setInViewport(entry.isIntersecting)); }, [ref]); React.useEffect(() => { if (ref.current && observer) { observer.observe(ref.current); return () => observer.disconnect(); } return () => null; }, []); return { ref, inViewport }; } exports.useInViewport = useInViewport; //# sourceMappingURL=use-in-viewport.cjs.map