2021-08-02 13:39:40 +00:00
|
|
|
import cookies from 'browser-cookies';
|
2018-08-23 15:29:26 +00:00
|
|
|
import PropTypes from 'prop-types';
|
2021-08-02 13:39:40 +00:00
|
|
|
import React from 'react';
|
2020-12-16 08:02:52 +00:00
|
|
|
import { I18nextProvider } from 'react-i18next';
|
2021-08-02 13:39:40 +00:00
|
|
|
import { Provider } from 'react-redux';
|
2018-08-23 15:29:26 +00:00
|
|
|
|
2020-12-16 08:02:52 +00:00
|
|
|
import i18n from './i18n/config';
|
2021-06-25 14:45:37 +00:00
|
|
|
import AppMountNotifier from './src/components/app-mount-notifier';
|
2021-08-02 13:39:40 +00:00
|
|
|
import { createStore } from './src/redux/createStore';
|
2021-07-12 07:05:01 +00:00
|
|
|
import layoutSelector from './utils/gatsby/layout-selector';
|
2018-08-23 15:29:26 +00:00
|
|
|
|
|
|
|
const store = createStore();
|
|
|
|
|
|
|
|
export const wrapRootElement = ({ element }) => {
|
2018-08-30 14:27:53 +00:00
|
|
|
return (
|
|
|
|
<Provider store={store}>
|
2020-12-16 08:02:52 +00:00
|
|
|
<I18nextProvider i18n={i18n}>
|
|
|
|
<AppMountNotifier render={() => element} />
|
|
|
|
</I18nextProvider>
|
2018-08-30 14:27:53 +00:00
|
|
|
</Provider>
|
|
|
|
);
|
2018-08-23 15:29:26 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
wrapRootElement.propTypes = {
|
|
|
|
element: PropTypes.any
|
|
|
|
};
|
2019-01-22 21:53:35 +00:00
|
|
|
|
2019-02-28 15:44:35 +00:00
|
|
|
export const wrapPageElement = layoutSelector;
|
2019-03-06 07:00:19 +00:00
|
|
|
|
|
|
|
export const disableCorePrefetching = () => true;
|
2021-07-16 15:49:47 +00:00
|
|
|
|
|
|
|
export const onClientEntry = () => {
|
|
|
|
// the token must be erased since it is only valid for the old _csrf secret
|
|
|
|
cookies.erase('csrf_token');
|
|
|
|
};
|