UNPKG

@asyarb/use-intersection-observer

Version:

An easy to use React hook wrapper around the IntersectionObserver API.

3 lines (2 loc) 643 B
"use strict";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