consonance
Version:
Fix your typographic scale
44 lines (38 loc) • 1.18 kB
JSX
const React = require('react');
const css = require('../css/base.css');
const R = require('ramda');
const Header = require('./Header.jsx');
const Nav = require('./Nav.jsx');
const Footer = require('./Footer.jsx');
const { RouteHandler } = require('react-router');
const Root = React.createClass({
render() {
var initialProps = {
__html: safeStringify(R.dissoc('webpackStats', this.props))
}
return (
<html>
<head>
<title>{this.props.title}</title>
<style dangerouslySetInnerHTML={{ __html: css }} />
<meta charSet="utf-8" />
</head>
<body className='flex flex-column container'>
<Nav {...this.props} />
<Header {...this.props} />
<RouteHandler {...this.props} />
<Footer {...this.props} />
<script
id='initial-props'
type='application/json'
dangerouslySetInnerHTML={initialProps} />
<script src='bundle.js' />
</body>
</html>
)
}
});
const safeStringify = obj => {
return JSON.stringify(obj).replace(/<\/script/g, '<\\/script').replace(/<!--/g, '<\\!--')
}
module.exports = Root;