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