1 | import {createStore, applyMiddleware, compose} from 'redux';
|
2 | import {routerMiddleware} from 'react-router-redux';
|
3 | import thunk from 'redux-thunk';
|
4 |
|
5 | import reducers from 'reducers';
|
6 |
|
7 | const devTools = window.devToolsExtension ? window.devToolsExtension() : f => f;
|
8 |
|
9 | export default (history, initialState = {}) => {
|
10 |
|
11 | const middlewares = [routerMiddleware(history), thunk];
|
12 | const enhancers = compose(applyMiddleware(...middlewares), devTools);
|
13 | const store = createStore(reducers, initialState, enhancers);
|
14 |
|
15 | if (module.hot) {
|
16 | module.hot.accept('reducers', () => {
|
17 | const nextRootReducer = require('reducers');
|
18 | store.replaceReducer(nextRootReducer);
|
19 | });
|
20 | }
|
21 |
|
22 | return store;
|
23 | };
|