@mantine/hooks
Version:
A collection of 50+ hooks for state and UI management
27 lines (23 loc) • 699 B
JavaScript
'use client';
;
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