Repository URL to install this package:
|
Version:
1.2.7 ▾
|
import React from 'react'
import PropTypes from 'prop-types'
import { HTMLProps } from './typings'
import { Body } from './Body'
// import { styled } from 'view-container'
// styled.theme.colorsPrimary
const primaryColor = 'red'
class HTML extends React.PureComponent<HTMLProps> {
static propTypes = {
htmlAttributes: PropTypes.object,
headerElements: PropTypes.node,
bodyElements: PropTypes.node,
appBodyString: PropTypes.string,
}
static defaultProps = {
htmlAttributes: {
lang: process.env.HTML_LOCALE,
},
headerElements: undefined,
bodyElements: undefined,
appBodyString: '',
}
render() {
const {
htmlAttributes,
headerElements,
bodyElements,
appBodyString,
} = this.props
const language = process.env.HTML_LOCALE
const serverSideRenderedAppView = (
<div key="sudo" id="sudo">
<Body>{appBodyString}</Body>
</div>
)
/**
* @see https://css-tricks.com/prefetching-preloading-prebrowsing/#article-header-id-3
*/
return (
<html lang={language} {...htmlAttributes}>
<head>
<meta name="theme-color" content={primaryColor} />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<link rel="manifest" href="/manifest.json" />
<link rel="dns-prefetch" href="//fonts.googleapis.com/" />
<link rel="dns-prefetch" href="//raderain.sirv.com/" />
{headerElements}
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
{serverSideRenderedAppView}
{bodyElements}
</body>
</html>
)
}
}
export { HTML }