forgeplus-react/src/index.js

45 lines
1.2 KiB
JavaScript

import './public-path'
import { AppContainer } from 'react-hot-loader';
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter, Route } from 'react-router-dom'
import './index.css';
import App from './App';
import { configureUrlQuery } from 'react-url-query';
import history from './history';
import configureStore from './redux/stores/configureStore';
import { Provider } from 'react-redux';
import StyleContext from 'isomorphic-style-loader/StyleContext'
configureUrlQuery({ history });
const store = configureStore();
window.__useKindEditor = false;
const insertCss = (...styles) => {
const removeCss = styles.map(style => style._insertCss && style._insertCss());
return () => removeCss.forEach(dispose => dispose && dispose())
}
const render = (Component) => {
ReactDOM.hydrate(
<AppContainer>
{/* <Component /> */}
<Provider store={store}>
<BrowserRouter basename='/'>
<StyleContext.Provider value={{insertCss}}>
<Route path='/' component={App}></Route>
</StyleContext.Provider>
</BrowserRouter>
</Provider>
</AppContainer>,
document.getElementById('root')
)
}
render(App);
if (module.hot) {
module.hot.accept('./App', () => { render(App) });
}