UNPKG

organism-react-scroll-animate

Version:
40 lines (38 loc) 1.16 kB
"use strict"; var _interopRequireDefault = require("reshow-runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _react = require("react"); var _reshowBuild = _interopRequireDefault(require("reshow-build")); var _winDoc = require("win-doc"); //@ts-check /** * @param {React.ReactElement|string} component * @param {IntersectionObserverCallback} onIntersect * @param {object} options * @returns {React.ReactElement} */ var useIntersectionObserver = function useIntersectionObserver(component, onIntersect, options) { if (options === void 0) { options = {}; } var lastEl = (0, _react.useRef)(); var el = (0, _reshowBuild["default"])(component)({ ref: lastEl }); (0, _react.useEffect)(function () { var dom = lastEl.current; if (!dom) { return; } var observer = new ((0, _winDoc.win)().IntersectionObserver)(onIntersect, options); observer.observe(dom); return function () { observer.unobserve(dom); }; }, [lastEl.current]); return el; }; var _default = useIntersectionObserver; exports["default"] = _default; module.exports = exports.default;