UNPKG

sharyn

Version:

Combines all the other packages under one.

84 lines (69 loc) 2.42 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _server = require("react-dom/server"); var _reactHelmet = _interopRequireDefault(require("react-helmet")); var _jss = require("react-jss/lib/jss"); var _env = require("@sharyn/env"); var _Providers = _interopRequireDefault(require("@sharyn/shared/Providers")); var _htmlBase = _interopRequireDefault(require("./html-base")); 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 renderPage = function renderPage(ctx, _ref) { var _ref$Providers = _ref.Providers, Providers = _ref$Providers === void 0 ? _Providers.default : _ref$Providers, App = _ref.App, theme = _ref.theme, store = _ref.store, globalStyles = _ref.globalStyles, swPath = _ref.swPath; var appHtml; var css; var helmet; var routerContext = {}; if (!_env.NO_SSR) { var sheetsRegistry = new _jss.SheetsRegistry(); appHtml = (0, _server.renderToString)(_react.default.createElement(Providers, (0, _extends2.default)({ url: ctx.req.url }, { theme: theme, store: store, globalStyles: globalStyles, routerContext: routerContext, sheetsRegistry: sheetsRegistry }, { isSsr: true }), _react.default.createElement(App, null))); css = sheetsRegistry.toString(); helmet = _reactHelmet.default.renderStatic(); } if (routerContext.action === 'REPLACE') { ctx.redirect(routerContext.url); } else { ctx.body = (0, _htmlBase.default)({ appHtml: appHtml, css: css, helmet: helmet, swPath: swPath, windowVars: [['__PRELOADED_STATE__', store.getState()]] }); } }; renderPage.contextTypes = { Providers: _propTypes.default.func, App: _propTypes.default.func.isRequired, theme: _propTypes.default.object.isRequired, store: _propTypes.default.object.isRequired, globalStyles: _propTypes.default.any, swPath: _propTypes.default.string }; var _default = renderPage; exports.default = _default;