react-infinite-scroll-hook
Version:
A simple hook to create infinite scroll components
6 lines • 3.23 kB
JavaScript
/*!
* react-infinite-scroll-hook v2.0.0 - https://onderonur.github.io/react-infinite-scroll-hook/
* MIT Licensed
*/
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReactInfiniteScrollHook=t(require("react")):e.ReactInfiniteScrollHook=t(e.React)}(window,function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(t,n){t.exports=e},function(e,t,n){e.exports=n(2)},function(e,t,n){"use strict";n.r(t);var r=n(0),o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var i=function(){var e="object"===("undefined"==typeof window?"undefined":o(window)),t=Object(r.useCallback)(function(){return{width:e?window.innerWidth:void 0,height:e?window.innerHeight:void 0}},[e]),n=Object(r.useState)(t()),i=n[0],u=n[1];return Object(r.useEffect)(function(){function n(){u(t())}if(e)return window.addEventListener("resize",n),function(){window.removeEventListener("resize",n)}},[t,e]),i};var u=function(e,t){var n=Object(r.useRef)();Object(r.useEffect)(function(){n.current=e},[e]),Object(r.useEffect)(function(){if(t){var e=setInterval(function(){n.current()},t);return function(){return clearInterval(e)}}},[t])},f="window",c="parent";var a=function(e){var t=e.loading,n=e.hasNextPage,o=e.onLoadMore,a=e.threshold,l=void 0===a?150:a,d=e.checkInterval,p=void 0===d?200:d,s=e.scrollContainer,b=void 0===s?f:s,v=Object(r.useRef)(),y=i(),m=y.height,j=y.width,w=Object(r.useState)(!0),g=w[0],h=w[1];function O(){var e=v.current.parentNode.getBoundingClientRect();return{top:e.top,bottom:e.bottom,left:e.left,right:e.right}}function S(){if(g&&!t&&n&&v.current){if(b===c&&!function(){if(v.current&&v.current.parentNode){var e=O(),t=e.left,n=e.right,r=e.top,o=e.bottom;if(t>j)return!1;if(n<0)return!1;if(r>m)return!1;if(o<0)return!1}return!0}())return;(function(){var e=v.current.getBoundingClientRect().bottom,t=e-m;return b===c&&(t=e-O().bottom),t})()<l&&(h(!1),o())}}return Object(r.useEffect)(function(){t||h(!0)},[t]),u(function(){S()},n?p:0),v};n.d(t,"useInfiniteScroll",function(){return a})}]).default});
//# sourceMappingURL=react-infinite-scroll-hook.min.js.map