redux-schema-form
Version:
use redux-form like formly
44 lines • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var React = require("react");
var ResolveMaybePromise = /** @class */ (function (_super) {
tslib_1.__extends(ResolveMaybePromise, _super);
function ResolveMaybePromise() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.state = {
maybePromise: null
};
_this.unmounted = false;
return _this;
}
ResolveMaybePromise.prototype.loadOptions = function (rawOptions) {
var _this = this;
if (typeof rawOptions === 'function') {
if (!rawOptions.length)
rawOptions().then(function (maybePromise) { return !_this.unmounted && _this.setState({
maybePromise: maybePromise
}); });
}
else if (rawOptions instanceof Array)
this.setState({
maybePromise: rawOptions
});
};
ResolveMaybePromise.prototype.componentDidUpdate = function (prevProps) {
if (prevProps.maybePromise !== this.props.maybePromise)
this.loadOptions(this.props.maybePromise);
};
ResolveMaybePromise.prototype.componentWillUnmount = function () {
this.unmounted = true;
};
ResolveMaybePromise.prototype.componentDidMount = function () {
this.loadOptions(this.props.maybePromise);
};
ResolveMaybePromise.prototype.render = function () {
return this.props.children(this.state.maybePromise);
};
return ResolveMaybePromise;
}(React.PureComponent));
exports.ResolveMaybePromise = ResolveMaybePromise;
//# sourceMappingURL=resolve-maybe-promise.js.map