'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var useMedia = require('@prom-ui/core/useMedia');
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
var React = require('react');
var reactResponsive = require('react-responsive');

function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }

var _slicedToArray__default = /*#__PURE__*/_interopDefaultCompat(_slicedToArray);
var React__default = /*#__PURE__*/_interopDefaultCompat(React);

var MediaProvider = function MediaProvider(_ref) {
  var _ref$resetOnMount = _ref.resetOnMount,
    resetOnMount = _ref$resetOnMount === void 0 ? false : _ref$resetOnMount,
    width = _ref.width,
    children = _ref.children;
  var _useState = React.useState({
      width: width ? useMedia.SCREEN_BREAKPOINTS[width] : 1
    }),
    _useState2 = _slicedToArray__default.default(_useState, 2),
    value = _useState2[0],
    setValue = _useState2[1];
  React.useEffect(function () {
    if (resetOnMount) {
      setValue(undefined);
    }
  }, []);
  return /*#__PURE__*/React__default.default.createElement(reactResponsive.Context.Provider, {
    value: value
  }, children);
};

// PDS core
/**
 * Компонент отображает соответствующий контент от состояние медиа-запроса и обновляет его при изменении размера окна браузера.
 */
var Media = function Media(_ref) {
  var minWidth = _ref.minWidth,
    maxWidth = _ref.maxWidth,
    children = _ref.children;
  var matchMedia = useMedia.useMedia({
    minWidth: minWidth,
    maxWidth: maxWidth
  });
  if (matchMedia) {
    return children;
  }
  return null;
};
Media.displayName = 'Media';

Object.defineProperty(exports, 'SCREEN_BREAKPOINTS', {
    enumerable: true,
    get: function () { return useMedia.SCREEN_BREAKPOINTS; }
});
Object.defineProperty(exports, 'useMedia', {
    enumerable: true,
    get: function () { return useMedia.useMedia; }
});
exports.Media = Media;
exports.MediaProvider = MediaProvider;
