unstated-enhancers
Version:
Unstated tools for state management
36 lines (35 loc) • 1.4 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var unstated_1 = require("unstated");
var unstated_persist_1 = require("./unstated-persist");
var isBootstrapped = function (container) { return container.hydrated === true || container.persist === undefined || (container.state !== undefined && container.state._persist_version !== undefined); };
function SubscribeGate(props) {
var bootstrapped = unstated_persist_1.PERSIST_ENABLED ? false : true;
return (React.createElement(unstated_1.Subscribe, __assign({}, props), function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (!bootstrapped && args.every(isBootstrapped))
bootstrapped = true;
if (bootstrapped) {
return props.children.apply(props, args);
}
else {
return props.loading || null;
}
}));
}
exports.default = SubscribeGate;