provide-page
Version:
Provides automatic server-side rendering and actions (regardless of whether or not client has JavaScript enabled) to React components. Use in conjunction with `provide-router`.
28 lines (25 loc) • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function defaultRenderDocumentToString(html, states, clientStates) {
var _ref = states.page || {},
_ref$documentTitle = _ref.documentTitle,
documentTitle = _ref$documentTitle === undefined ? 'Page' : _ref$documentTitle,
_ref$metaDescription = _ref.metaDescription,
metaDescription = _ref$metaDescription === undefined ? 'Built with provide-page.' : _ref$metaDescription,
_ref$metaRobots = _ref.metaRobots,
metaRobots = _ref$metaRobots === undefined ? 'index,follow' : _ref$metaRobots,
_ref$iconFile = _ref.iconFile,
iconFile = _ref$iconFile === undefined ? '/static/favicon.ico' : _ref$iconFile,
_ref$cssFiles = _ref.cssFiles,
cssFiles = _ref$cssFiles === undefined ? [] : _ref$cssFiles,
_ref$jsFiles = _ref.jsFiles,
jsFiles = _ref$jsFiles === undefined ? [] : _ref$jsFiles;
return '<!DOCTYPE html>' + '<html>' + '<head>' + ('<title>' + documentTitle + '</title>') + '<meta charset="utf-8"/>' + '<meta http-equiv="X-UA-Compatible" content="IE=edge"/>' + '<meta name="viewport" content="width=device-width, initial-scale=1.0"/>' + ('<meta name="description" content="' + metaDescription + '"/>') + ('<meta name="robots" content="' + metaRobots + '"/>') + ('<link rel="shortcut icon" type="image/ico" href="' + iconFile + '"/>') + cssFiles.map(function (cssFile) {
return '<link rel="stylesheet" type="text/css" href="' + cssFile + '"/>';
}).join('') + '</head>' + '<body>' + ('<div id="root">' + html + '</div>') + '<script>' + ('window.clientStates = ' + JSON.stringify(clientStates) + ';') + '</script>' + jsFiles.map(function (jsFile) {
return '<script src="' + jsFile + '"></script>';
}).join('') + '</body>' + '</html>';
}
exports.default = defaultRenderDocumentToString;