1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports.default = void 0;
|
9 |
|
10 | var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends"));
|
11 |
|
12 | var _react = _interopRequireDefault(require("react"));
|
13 |
|
14 | var _server = require("react-dom/server");
|
15 |
|
16 | var _reactHelmet = _interopRequireDefault(require("react-helmet"));
|
17 |
|
18 | var _jss = require("react-jss/lib/jss");
|
19 |
|
20 | var _env = require("@sharyn/env");
|
21 |
|
22 | var _Providers = _interopRequireDefault(require("@sharyn/components/Providers"));
|
23 |
|
24 | var _htmlBase = _interopRequireDefault(require("./html-base"));
|
25 |
|
26 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 | var renderPage = function renderPage(ctx, _ref) {
|
33 | var _ref$Providers = _ref.Providers,
|
34 | Providers = _ref$Providers === void 0 ? _Providers.default : _ref$Providers,
|
35 | App = _ref.App,
|
36 | theme = _ref.theme,
|
37 | store = _ref.store,
|
38 | globalStyles = _ref.globalStyles,
|
39 | swPath = _ref.swPath;
|
40 | var appHtml;
|
41 | var css;
|
42 | var helmet;
|
43 | var routerContext = {};
|
44 |
|
45 | if (!_env.NO_SSR) {
|
46 | var sheetsRegistry = new _jss.SheetsRegistry();
|
47 | appHtml = (0, _server.renderToString)(_react.default.createElement(Providers, (0, _extends2.default)({
|
48 | url: ctx.req.url
|
49 | }, {
|
50 | theme: theme,
|
51 | store: store,
|
52 | globalStyles: globalStyles,
|
53 | routerContext: routerContext,
|
54 | sheetsRegistry: sheetsRegistry
|
55 | }, {
|
56 | isSsr: true
|
57 | }), _react.default.createElement(App, null)));
|
58 | css = sheetsRegistry.toString();
|
59 | helmet = _reactHelmet.default.renderStatic();
|
60 | }
|
61 |
|
62 | if (routerContext.action === 'REPLACE') {
|
63 | ctx.redirect(routerContext.url);
|
64 | } else {
|
65 | ctx.body = (0, _htmlBase.default)({
|
66 | appHtml: appHtml,
|
67 | css: css,
|
68 | helmet: helmet,
|
69 | swPath: swPath,
|
70 | windowVars: [['__PRELOADED_STATE__', store.getState()]]
|
71 | });
|
72 | }
|
73 | };
|
74 |
|
75 | renderPage.contextTypes = {
|
76 | Providers: _propTypes.default.func,
|
77 | App: _propTypes.default.func.isRequired,
|
78 | theme: _propTypes.default.object.isRequired,
|
79 | store: _propTypes.default.object.isRequired,
|
80 | globalStyles: _propTypes.default.any,
|
81 | swPath: _propTypes.default.string
|
82 | };
|
83 | var _default = renderPage;
|
84 | exports.default = _default; |
\ | No newline at end of file |