storybook/docs/html.js
hypnos 2e8240d176 Fix/suppress current eslint warnings.
Raise `import/no-unresolved` and `import/extensions` to error level
everywhere except `docs`
2017-10-02 01:40:46 +03:00

67 lines
1.8 KiB
JavaScript

/* eslint-disable react/no-danger */
import React from 'react';
import PropTypes from 'prop-types';
import DocumentTitle from 'react-document-title';
import { prefixLink } from 'gatsby/dist/isomorphic/gatsby-helpers';
import favicon from './design/homepage/storybook-icon.png';
const BUILD_TIME = new Date().getTime();
const HTML = props => {
const title = DocumentTitle.rewind();
let css;
if (process.env.NODE_ENV === 'production') {
// eslint-disable-next-line
css = <style dangerouslySetInnerHTML={{ __html: require('!raw!./public/styles.css') }} />;
}
const searchScript = [
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />,
<script
type="text/javascript"
src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"
/>,
<script
type="text/javascript"
dangerouslySetInnerHTML={{
__html: `docsearch({
apiKey: 'a4f7f972f1d8f99a66e237e7fd2e489f',
indexName: 'storybook-js',
inputSelector: '#search',
debug: false // Set debug to true if you want to inspect the dropdown
});`,
}}
/>,
];
return (
<html lang="en">
<head>
<meta charSet="utf-8" />
<meta httpEquiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{title}</title>
<link rel="icon" href={favicon} type="image/x-icon" />
{css}
</head>
<body>
<div id="react-mount" dangerouslySetInnerHTML={{ __html: props.body }} />
<script src={prefixLink(`/bundle.js?t=${BUILD_TIME}`)} />
{searchScript}
</body>
</html>
);
};
HTML.displayName = 'HTML';
HTML.propTypes = {
body: PropTypes.string,
};
HTML.defaultProps = {
body: '',
};
export default HTML;