'use strict';

var slicedToArray = require('../../slicedToArray-BcL7fKuL.js');
var react = require('react');
var reactUtils_useIsElementVisibleInDom_useForceUpdate = require('./useForceUpdate.js');
require('../../unsupportedIterableToArray-BoHMiKNA.js');

var useIsElementVisibleInDom = function useIsElementVisibleInDom(target) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
  var _useState = react.useState(false),
    _useState2 = slicedToArray._slicedToArray(_useState, 2),
    isIntersecting = _useState2[0],
    setIsIntersecting = _useState2[1];
  var forceUpdate = reactUtils_useIsElementVisibleInDom_useForceUpdate();
  react.useEffect(function () {
    if (!target) return forceUpdate();
    var observer = new IntersectionObserver(function (_ref) {
      var _ref2 = slicedToArray._slicedToArray(_ref, 1),
        entry = _ref2[0];
      return setIsIntersecting(entry.isIntersecting);
    }, options);
    observer.observe(target);
    return function () {
      return observer.unobserve(target);
    };
  }, [target, options]);
  return isIntersecting;
};

module.exports = useIsElementVisibleInDom;
//# sourceMappingURL=useIsElementVisibleInDom.js.map
