45 lines
1.2 KiB
JavaScript
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) });
|
|
} |