2020-07-06 09:36:45 +00:00
|
|
|
import React, { Suspense } from 'react';
|
2016-11-08 23:54:54 +00:00
|
|
|
import { render } from 'react-dom';
|
2019-08-28 20:08:40 +00:00
|
|
|
import { hot } from 'react-hot-loader/root';
|
2016-11-08 23:54:54 +00:00
|
|
|
import { Provider } from 'react-redux';
|
|
|
|
import { Router, browserHistory } from 'react-router';
|
2020-01-19 21:05:16 +00:00
|
|
|
|
2016-11-08 23:54:54 +00:00
|
|
|
import configureStore from './store';
|
|
|
|
import routes from './routes';
|
2020-04-19 20:41:44 +00:00
|
|
|
import ThemeProvider from './modules/App/components/ThemeProvider';
|
2020-07-06 09:36:45 +00:00
|
|
|
import Loader from './modules/App/components/loader';
|
|
|
|
import i18n from './i18n';
|
2016-11-08 23:54:54 +00:00
|
|
|
|
|
|
|
require('./styles/main.scss');
|
|
|
|
|
2018-10-03 01:03:33 +00:00
|
|
|
// Load the p5 png logo, so that webpack will use it
|
|
|
|
require('./images/p5js-square-logo.png');
|
|
|
|
|
2016-11-08 23:54:54 +00:00
|
|
|
const history = browserHistory;
|
|
|
|
const initialState = window.__INITIAL_STATE__;
|
2019-06-06 21:17:33 +00:00
|
|
|
|
2016-11-08 23:54:54 +00:00
|
|
|
const store = configureStore(initialState);
|
|
|
|
|
2018-05-03 00:34:03 +00:00
|
|
|
const App = () => (
|
2020-04-19 20:41:44 +00:00
|
|
|
<Provider store={store}>
|
|
|
|
<ThemeProvider>
|
2020-01-19 21:05:16 +00:00
|
|
|
<Router history={history} routes={routes(store)} />
|
2020-04-19 20:41:44 +00:00
|
|
|
</ThemeProvider>
|
|
|
|
</Provider>
|
2018-05-03 00:34:03 +00:00
|
|
|
);
|
|
|
|
|
2019-08-28 20:08:40 +00:00
|
|
|
const HotApp = hot(App);
|
2018-05-03 00:34:03 +00:00
|
|
|
|
|
|
|
render(
|
2020-07-06 09:36:45 +00:00
|
|
|
<Suspense fallback={(<Loader />)}>
|
|
|
|
<HotApp />
|
|
|
|
</Suspense>,
|
2017-02-22 19:29:35 +00:00
|
|
|
document.getElementById('root')
|
2016-11-08 23:54:54 +00:00
|
|
|
);
|