UNPKG

@mantine/hooks

Version:

A collection of 50+ hooks for state and UI management

30 lines (26 loc) 781 B
'use client'; 'use strict'; var React = require('react'); function useInViewport() { const observer = React.useRef(null); const [inViewport, setInViewport] = React.useState(false); const ref = React.useCallback((node) => { if (typeof IntersectionObserver !== "undefined") { if (node && !observer.current) { observer.current = new IntersectionObserver( (entries) => setInViewport(entries.some((entry) => entry.isIntersecting)) ); } else { observer.current?.disconnect(); } if (node) { observer.current?.observe(node); } else { setInViewport(false); } } }, []); return { ref, inViewport }; } exports.useInViewport = useInViewport; //# sourceMappingURL=use-in-viewport.cjs.map