UNPKG

@roderickhsiao/react-i13n

Version:

[Experiment] React I13n provides a performant and scalable solution to application instrumentation.

32 lines (27 loc) 988 B
"use strict"; exports.__esModule = true; exports["default"] = void 0; var _react = require("react"); var _reactInViewport = require("react-in-viewport"); // @TODO, probably make it plugin so we don't need to included in main bundle if not used var useViewportDetect = function useViewportDetect(_ref) { var executeEvent = _ref.executeEvent, node = _ref.node, ref = _ref.ref, options = _ref.options; var onEnterViewport = (0, _react.useCallback)(function () { node.setIsInViewport(true); executeEvent === null || executeEvent === void 0 ? void 0 : executeEvent('enterViewport'); }, [executeEvent, node]); var onLeaveViewport = (0, _react.useCallback)(function () { node.setIsInViewport(false); }, [node]); (0, _reactInViewport.useInViewport)(ref, options, { disconnectOnLeave: false }, { onEnterViewport: onEnterViewport, onLeaveViewport: onLeaveViewport }); }; var _default = useViewportDetect; exports["default"] = _default;