hooks-me
Version:
<div align="center"> <h1>hooks-me</h1> <div>React useful hooks.</div>
26 lines (25 loc) • 885 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
var useIsVisible = function (ref, rootMargin) {
if (rootMargin === void 0) { rootMargin = "0px"; }
var _a = (0, react_1.useState)(false), isVisible = _a[0], setIsVisible = _a[1];
(0, react_1.useEffect)(function () {
if (ref.current == null) {
return;
}
var observer = new IntersectionObserver(function (_a) {
var entry = _a[0];
return setIsVisible(entry.isIntersecting);
}, { rootMargin: rootMargin });
observer.observe(ref.current);
return function () {
if (ref.current == null) {
return;
}
observer.unobserve(ref.current);
};
}, [ref.current, rootMargin]);
return isVisible;
};
exports.default = useIsVisible;