@lskjs/uapp
Version:
LSK universal react app wrapper
61 lines (59 loc) • 2.21 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _LinkProvider = _interopRequireDefault(require("@lskjs/link/LinkProvider"));
var _emotionTheming = require("emotion-theming");
var _mobxReact = require("mobx-react");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
var UappProvider = function UappProvider(_ref) {
var app = _ref.app,
page = _ref.page,
rawChildren = _ref.children;
var children = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, rawChildren); // TODO: checks
// console.log({ page });
var MobxProvider = UappProvider.MobxProvider;
var stores;
if (app && app.__providers) {
stores = app.__providers;
} else {
stores = {};
}
if (stores && Object.keys(stores).length && MobxProvider) {
children = /*#__PURE__*/_react["default"].createElement(MobxProvider, (0, _extends2["default"])({}, stores, {
page: page
}), children);
}
var LinkProvider = UappProvider.LinkProvider;
if (app && app.history && LinkProvider) {
children = /*#__PURE__*/_react["default"].createElement(LinkProvider, {
onClick: function onClick(url) {
return app.history.push(url);
}
}, children);
}
var _stores = stores,
theme = _stores.theme;
var ThemeProvider = UappProvider.ThemeProvider;
if (theme && ThemeProvider) {
children = /*#__PURE__*/_react["default"].createElement(ThemeProvider, {
theme: theme
}, children);
}
return children;
};
UappProvider.propTypes = {
// eslint-disable-next-line react/forbid-prop-types
app: _propTypes["default"].object.isRequired,
children: _propTypes["default"].node.isRequired
};
UappProvider.MobxProvider = _mobxReact.Provider;
UappProvider.ThemeProvider = _emotionTheming.ThemeProvider;
UappProvider.LinkProvider = _LinkProvider["default"];
var _default = UappProvider;
exports["default"] = _default;
//# sourceMappingURL=UappProvider.js.map