@roderickhsiao/react-i13n
Version:
[Experiment] React I13n provides a performant and scalable solution to application instrumentation.
32 lines (27 loc) • 988 B
JavaScript
;
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;