react-sign
Version:
Easy load more in react. Is my component on user's viewport?!
3 lines (2 loc) • 845 B
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("react"),t=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,n=function(e){var n=e.onEnter,u=e.onLeave,o=e.children,c=e.threshold,i=void 0===c?0:c,s=e.rootMargin,f=void 0===s?"0px":s,l=r.useRef(!0),a=r.useRef(null),d=r.useRef(),v=r.useMemo((function(){return"number"==typeof f?f+"px":f}),[f]),p=function(e){e[0].isIntersecting?n&&n():u&&!l.current&&u(),l.current&&(l.current=!1)};return r.useEffect((function(){return a.current&&(d.current=new IntersectionObserver(p,{root:null,rootMarginStringValue:v,threshold:i}),d.current.observe(a.current)),function(){var e;a.current&&(null==(e=d.current)||e.unobserve(a.current))}}),[]),t.createElement("div",{ref:a},o)};exports.ReactSign=n,exports.default=n;
//# sourceMappingURL=react-sign.cjs.production.min.js.map