'use strict';

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

var React = require('react');
var BodyContext = require('@prom-ui/core/BodyContext');

function _interopNamespaceCompat(e) {
    if (e && typeof e === 'object' && 'default' in e) return e;
    var n = Object.create(null);
    if (e) {
        Object.keys(e).forEach(function (k) {
            if (k !== 'default') {
                var d = Object.getOwnPropertyDescriptor(e, k);
                Object.defineProperty(n, k, d.get ? d : {
                    enumerable: true,
                    get: function () { return e[k]; }
                });
            }
        });
    }
    n.default = e;
    return Object.freeze(n);
}

var React__namespace = /*#__PURE__*/_interopNamespaceCompat(React);

/**
 * Хук для React версии 17 и ниже, который эмулирует функционал встроенного хука useId, доступного в React 18 и более поздних версиях.
 */
var useId = function useId() {
  var nativeReactUseIdIsAvailable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
  if (nativeReactUseIdIsAvailable && typeof React__namespace.useId === 'function') {
    return React__namespace.useId();
  }
  var _React$useContext = React__namespace.useContext(BodyContext.BodyContext),
    globalGetUseId = _React$useContext.globalGetUseId;
  var ref = React__namespace.useRef();
  if (!ref.current) ref.current = globalGetUseId();
  return ref.current;
};

exports.useId = useId;
