sharyn
Version:
Combines all the other packages under one.
99 lines (74 loc) • 3.59 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread"));
var _react = _interopRequireDefault(require("react"));
var _createGenerateClassName = _interopRequireDefault(require("@material-ui/core/styles/createGenerateClassName"));
var _MuiThemeProvider = _interopRequireDefault(require("@material-ui/core/styles/MuiThemeProvider"));
var _jss = _interopRequireDefault(require("jss"));
var _jssPresetDefault = _interopRequireDefault(require("jss-preset-default"));
var _reactHotLoader = require("react-hot-loader");
var _JssProvider = _interopRequireDefault(require("react-jss/lib/JssProvider"));
var _reactRedux = require("react-redux");
var _BrowserRouter = _interopRequireDefault(require("react-router-dom/BrowserRouter"));
var _StaticRouter = _interopRequireDefault(require("react-router-dom/StaticRouter"));
var _nest = _interopRequireDefault(require("recompose/nest"));
var _withProps = _interopRequireDefault(require("recompose/withProps"));
var _spread = _interopRequireDefault(require("@sharyn/util/spread"));
var _spreadIf = _interopRequireDefault(require("@sharyn/util/spread-if"));
var _GlobalStylesProvider = _interopRequireDefault(require("./GlobalStylesProvider"));
var _propTypes = _interopRequireDefault(require("prop-types"));
/* eslint-disable import/no-extraneous-dependencies */
// flow-disable-next-line
// flow-disable-next-line
// flow-disable-next-line
var defaultJss = _jss.default.setup((0, _jssPresetDefault.default)());
var Providers = function Providers(_ref) {
var children = _ref.children,
App = _ref.App,
theme = _ref.theme,
globalStyles = _ref.globalStyles,
store = _ref.store,
isSsr = _ref.isSsr,
url = _ref.url,
_ref$jss = _ref.jss,
jss = _ref$jss === void 0 ? defaultJss : _ref$jss,
routerContext = _ref.routerContext,
sheetsRegistry = _ref.sheetsRegistry;
var NestedProviders = (0, _nest.default)(isSsr ? (0, _withProps.default)((0, _spread.default)({
location: url,
context: routerContext
}))(_StaticRouter.default) : _BrowserRouter.default, (0, _withProps.default)((0, _objectSpread2.default)({
jss: jss,
generateClassName: (0, _createGenerateClassName.default)()
}, (0, _spread.default)({
registry: sheetsRegistry
})))(_JssProvider.default), (0, _withProps.default)({
store: store
})(_reactRedux.Provider), (0, _withProps.default)((0, _objectSpread2.default)({
theme: theme
}, (0, _spreadIf.default)(isSsr, {
sheetsManager: new _map.default()
})))(_MuiThemeProvider.default), (0, _withProps.default)({
globalStyles: globalStyles
})(_GlobalStylesProvider.default));
return _react.default.createElement(NestedProviders, null, App ? _react.default.createElement(App, null) : children);
};
Providers.propTypes = {
children: _propTypes.default.any,
App: _propTypes.default.func,
store: _propTypes.default.object.isRequired,
theme: _propTypes.default.object.isRequired,
globalStyles: _propTypes.default.any,
jss: _propTypes.default.object,
isSsr: _propTypes.default.bool,
url: _propTypes.default.string,
routerContext: _propTypes.default.object,
sheetsRegistry: _propTypes.default.object
};
var _default = (0, _reactHotLoader.hot)(module)(Providers);
exports.default = _default;