All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.cjs.react-utils.useIsElementVisibleInDom.useIsElementVisibleInDom.js Maven / Gradle / Ivy

Go to download

A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.

There is a newer version: 4.12.3
Show newest version
"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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy