HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //usr/share/opensearch-dashboards/node_modules/react-focus-lock/dist/cjs/clientSideEffect.js
"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var React = _interopRequireWildcard(require("react"));

/* eslint-disable */
// NOT USED
function withSideEffect(reducePropsToState, handleStateChangeOnClient) {
  if (process.env.NODE_ENV !== 'production') {
    if (typeof reducePropsToState !== 'function') {
      throw new Error('Expected reducePropsToState to be a function.');
    }

    if (typeof handleStateChangeOnClient !== 'function') {
      throw new Error('Expected handleStateChangeOnClient to be a function.');
    }
  }

  return function wrap(WrappedComponent) {
    if (process.env.NODE_ENV !== 'production') {
      if (typeof WrappedComponent !== 'function') {
        throw new Error('Expected WrappedComponent to be a React component.');
      }
    }

    var mountedInstances = [];

    function emitChange() {
      console.log('emitting');
      var state = reducePropsToState(mountedInstances.map(function (instance) {
        return instance.current;
      }));
      handleStateChangeOnClient(state);
    }

    var SideEffect = function SideEffect(props) {
      var lastProps = React.useRef(props);
      React.useEffect(function () {
        lastProps.current = props;
      }); // handle mounted instances

      React.useEffect(function () {
        console.log('ins added');
        mountedInstances.push(lastProps);
        return function () {
          console.log('ins removed');
          var index = mountedInstances.indexOf(lastProps);
          mountedInstances.splice(index, 1);
        };
      }, []); // notify updates
      // React.useEffect(emitChange, [props.disabled]);

      return /*#__PURE__*/React.createElement(WrappedComponent, props);
    };

    return SideEffect;
  };
}

var _default = withSideEffect;
exports["default"] = _default;