mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-08-28 09:00:58 +00:00
31 lines
820 B
JavaScript
31 lines
820 B
JavaScript
'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) => {
|
|
const lastEntry = entries[entries.length - 1];
|
|
setInViewport(lastEntry.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
|