UNPKG

mg-js

Version:

A set of useful functions, components and hooks.

26 lines (25 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var jsx_runtime_1 = require("react/jsx-runtime"); var react_1 = require("react"); var useLazyScrolling = function (_a, callback) { var _b = _a === void 0 ? {} : _a, _c = _b.distance, distance = _c === void 0 ? "0px" : _c, _d = _b.initPage, initPage = _d === void 0 ? 0 : _d; var ref = (0, react_1.useRef)(null); var refPage = (0, react_1.useRef)(initPage); var Intersector = (0, react_1.useCallback)(function () { return (0, jsx_runtime_1.jsx)("div", { style: { height: "1px", width: "1px" }, className: 'intersector', ref: ref }); }, []); (0, react_1.useEffect)(function () { var observer = new IntersectionObserver(function (_a) { var isIntersecting = _a[0].isIntersecting; console.log("intrersecting"); if (isIntersecting) { callback(refPage.current++); } }, { root: null, rootMargin: distance }); observer.observe(ref.current); return function () { return observer.unobserve(ref.current); }; }, []); return { Intersector: Intersector }; }; exports.default = useLazyScrolling;