freeCodeCamp/client/gatsby-ssr.js

45 lines
1.1 KiB
JavaScript
Raw Normal View History

import React from 'react';
import PropTypes from 'prop-types';
import { Provider } from 'react-redux';
import headComponents from './src/head';
import { createStore } from './src/redux/createStore';
2019-02-28 15:44:35 +00:00
import layoutSelector from './utils/gatsby/layoutSelector';
const store = createStore();
export const wrapRootElement = ({ element }) => {
2019-02-20 15:41:33 +03:00
return <Provider store={store}>{element}</Provider>;
};
wrapRootElement.propTypes = {
element: PropTypes.any
};
2019-02-28 15:44:35 +00:00
export const wrapPageElement = layoutSelector;
export const onRenderBody = ({ setHeadComponents, setPostBodyComponents }) => {
setHeadComponents([...headComponents]);
2018-11-29 12:12:15 +00:00
setPostBodyComponents(
[
<script
async={true}
key='gtag-script'
src='https://www.googletagmanager.com/gtag/js?id=AW-795617839'
/>,
<script
dangerouslySetInnerHTML={{
__html: `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-795617839');
`
2018-11-29 12:12:15 +00:00
}}
key='gtag-dataLayer'
/>
].filter(Boolean)
);
};