package.cjs.react-utils.useIsElementVisibleInDom.useIsElementVisibleInDom.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of neeto-commons-frontend Show documentation
Show all versions of neeto-commons-frontend Show documentation
A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _useForceUpdate = _interopRequireDefault(require("./useForceUpdate"));
var useIsElementVisibleInDom = function useIsElementVisibleInDom(target) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
var _useState = (0, _react.useState)(false),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
isIntersecting = _useState2[0],
setIsIntersecting = _useState2[1];
var forceUpdate = (0, _useForceUpdate["default"])();
(0, _react.useEffect)(function () {
if (!target) return forceUpdate();
var observer = new IntersectionObserver(function (_ref) {
var _ref2 = (0, _slicedToArray2["default"])(_ref, 1),
entry = _ref2[0];
return setIsIntersecting(entry.isIntersecting);
}, options);
observer.observe(target);
return function () {
return observer.unobserve(target);
};
}, [target, options]);
return isIntersecting;
};
var _default = useIsElementVisibleInDom;
exports["default"] = _default;
//# sourceMappingURL=useIsElementVisibleInDom.js.map