1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/frontend/src/index.tsx

63 lines
2.0 KiB
TypeScript
Raw Normal View History

import './wdyr';
2016-12-22 14:09:16 +01:00
import 'whatwg-fetch';
import './app.css';
2016-11-10 14:26:24 +01:00
import ReactDOM from 'react-dom';
import { Route, BrowserRouter as Router } from 'react-router-dom';
2016-11-10 14:26:24 +01:00
import { Provider } from 'react-redux';
import { ThemeProvider, CssBaseline } from '@material-ui/core';
2016-11-10 14:26:24 +01:00
import thunkMiddleware from 'redux-thunk';
2017-01-06 11:52:44 +01:00
import { createStore, applyMiddleware, compose } from 'redux';
import { DndProvider } from 'react-dnd';
import { HTML5Backend } from 'react-dnd-html5-backend';
import { StylesProvider } from '@material-ui/core/styles';
2016-11-10 14:26:24 +01:00
import mainTheme from './themes/main-theme';
2016-11-10 14:26:24 +01:00
import store from './store';
2018-01-29 09:07:10 +01:00
import MetricsPoller from './metrics-poller';
import App from './component/AppContainer';
import ScrollToTop from './component/scroll-to-top';
import { writeWarning } from './security-logger';
import AccessProvider from './component/AccessProvider/AccessProvider';
import { getBasePath } from './utils/format-path';
2016-11-10 14:26:24 +01:00
2017-01-06 11:52:44 +01:00
let composeEnhancers;
if (
process.env.NODE_ENV !== 'production' &&
(window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
) {
composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;
2017-01-06 11:52:44 +01:00
} else {
composeEnhancers = compose;
writeWarning();
2017-01-06 11:52:44 +01:00
}
const unleashStore = createStore(
store,
composeEnhancers(applyMiddleware(thunkMiddleware))
);
2018-01-29 09:07:10 +01:00
const metricsPoller = new MetricsPoller(unleashStore);
metricsPoller.start();
2016-11-10 14:26:24 +01:00
ReactDOM.render(
<Provider store={unleashStore}>
<DndProvider backend={HTML5Backend}>
<AccessProvider store={unleashStore}>
<Router basename={`${getBasePath()}`}>
<ThemeProvider theme={mainTheme}>
<StylesProvider injectFirst>
<CssBaseline />
<ScrollToTop>
<Route path="/" component={App} />
</ScrollToTop>
</StylesProvider>
</ThemeProvider>
</Router>
</AccessProvider>
</DndProvider>
</Provider>,
document.getElementById('app')
);