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; } }

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);
  }

}

Object.defineProperty(JobProvider, "propTypes", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    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
    })
  }
});
Object.defineProperty(JobProvider, "defaultProps", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    jobContext: null,
    rehydrateState: {
      jobs: {}
    }
  }
});
Object.defineProperty(JobProvider, "childContextTypes", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    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;