2018-08-23 15:29:26 +00:00
|
|
|
import React from 'react';
|
|
|
|
import PropTypes from 'prop-types';
|
|
|
|
import { Provider } from 'react-redux';
|
2020-12-16 18:39:52 +00:00
|
|
|
import { I18nextProvider } from 'react-i18next';
|
2018-08-23 15:29:26 +00:00
|
|
|
|
2020-12-16 18:39:52 +00:00
|
|
|
import i18n from './i18n/config';
|
2018-08-23 15:29:26 +00:00
|
|
|
import { createStore } from './src/redux/createStore';
|
2019-02-28 15:44:35 +00:00
|
|
|
import layoutSelector from './utils/gatsby/layoutSelector';
|
2021-01-13 13:12:32 +00:00
|
|
|
import { getheadTagComponents, getPostBodyComponents } from './utils/tags';
|
2018-10-04 13:47:55 +00:00
|
|
|
|
2018-08-23 15:29:26 +00:00
|
|
|
const store = createStore();
|
|
|
|
|
|
|
|
export const wrapRootElement = ({ element }) => {
|
2020-12-16 18:39:52 +00:00
|
|
|
return (
|
|
|
|
<Provider store={store}>
|
|
|
|
<I18nextProvider i18n={i18n}>{element}</I18nextProvider>
|
|
|
|
</Provider>
|
|
|
|
);
|
2018-08-23 15:29:26 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
wrapRootElement.propTypes = {
|
|
|
|
element: PropTypes.any
|
|
|
|
};
|
2018-09-30 10:37:19 +00:00
|
|
|
|
2019-02-28 15:44:35 +00:00
|
|
|
export const wrapPageElement = layoutSelector;
|
|
|
|
|
2019-10-18 15:45:34 +00:00
|
|
|
export const onRenderBody = ({
|
|
|
|
pathname,
|
|
|
|
setHeadComponents,
|
|
|
|
setPostBodyComponents
|
|
|
|
}) => {
|
2021-01-13 13:12:32 +00:00
|
|
|
setHeadComponents(getheadTagComponents());
|
|
|
|
setPostBodyComponents(getPostBodyComponents(pathname));
|
2018-09-30 10:37:19 +00:00
|
|
|
};
|
2021-01-27 13:47:01 +00:00
|
|
|
|
|
|
|
export const onPreRenderHTML = ({
|
|
|
|
getHeadComponents,
|
|
|
|
replaceHeadComponents
|
|
|
|
}) => {
|
|
|
|
const headComponents = getHeadComponents();
|
|
|
|
headComponents.sort((x, y) => {
|
|
|
|
if (x.key === 'bootstrap-min-preload' || x.key === 'bootstrap-min') {
|
|
|
|
return -1;
|
|
|
|
} else if (y.key === 'bootstrap-min-preload' || y.key === 'bootstrap-min') {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
});
|
|
|
|
replaceHeadComponents(headComponents);
|
|
|
|
};
|