Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / SSR / react-jobs / JobProvider.js
Size: Mime:
"use strict";

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

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

var _propTypes = _interopRequireDefault(require("prop-types"));

var _createJobContext = _interopRequireDefault(require("./createJobContext"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

let JobProvider = class JobProvider extends _react.Component {
  constructor(props, context) {
    super(props, context); // This is a workaround because each element instance of a job needs its
    // own ids.  So between the bootstrapping and the render we need to reset
    // the id counter to ensure the ids will match.

    if (props.jobContext) {
      props.jobContext.resetIds();
    }
  }

  componentWillMount() {
    this.jobContext = this.props.jobContext || (0, _createJobContext.default)();
    this.rehydrateState = this.props.rehydrateState;
  }

  getChildContext() {
    return {
      jobs: {
        getNextId: this.jobContext.getNextId,
        register: this.jobContext.register,
        get: this.jobContext.get,
        getRehydrate: id => this.rehydrateState.jobs[id],
        removeRehydrate: id => {
          delete this.rehydrateState.jobs[id];
        }
      }
    };
  }

  render() {
    return _react.default.Children.only(this.props.children);
  }

};
JobProvider.propTypes = {
  children: _propTypes.default.node.isRequired,
  jobContext: _propTypes.default.shape({
    getNextId: _propTypes.default.func.isRequired,
    resetIds: _propTypes.default.func.isRequired,
    register: _propTypes.default.func.isRequired,
    get: _propTypes.default.func.isRequired,
    getState: _propTypes.default.func.isRequired
  }),
  rehydrateState: _propTypes.default.shape({
    jobs: _propTypes.default.object.isRequired
  })
};
JobProvider.defaultProps = {
  jobContext: null,
  rehydrateState: {
    jobs: {}
  }
};
JobProvider.childContextTypes = {
  jobs: _propTypes.default.shape({
    getNextId: _propTypes.default.func.isRequired,
    register: _propTypes.default.func.isRequired,
    get: _propTypes.default.func.isRequired,
    getRehydrate: _propTypes.default.func.isRequired,
    removeRehydrate: _propTypes.default.func.isRequired
  }).isRequired
};
var _default = JobProvider;
exports.default = _default;