@asyarb/use-intersection-observer
Version:
An easy to use React hook wrapper around the IntersectionObserver API.
3 lines (2 loc) • 643 B
JavaScript
;var e=require("react"),n="undefined"!=typeof window;exports.useIntersectionObserver=function(t){var r=t.ref,i=t.element,c=t.options,s=void 0===c?{triggerOnce:!0,threshold:0}:c,o=t.callback,u=e.useState(!1),f=u[0],a=u[1],v=function(e){if(d){var n=e[0];o&&n.isIntersecting&&o(n),s.triggerOnce&&n.isIntersecting&&d.disconnect(),a(n.isIntersecting)}},d=e.useState(function(){return n?new IntersectionObserver(v,s):void 0})[0];return e.useEffect(function(){var e;if(d)return r?e=r.current:i&&(e=i),e&&d.observe(e),function(){return d.disconnect()}},[r,d,i]),f};
//# sourceMappingURL=use-intersection-observer.cjs.production.min.js.map