Repository URL to install this package:
|
Version:
1.2.8 ▾
|
"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;