export default function configureStore(initialState) { const sagaMiddleware = createSagaMiddleware(); const store = createStore( rootReducer, initialState, compose( applyMiddleware( sagaMiddleware, createLogger() ), DevTools.instrument() ) ); if (module.hot) { // Enable Webpack hot module replacement for reducers module.hot.accept('../reducers', () => { //eslint-disable-next-line const nextRootReducer = require('../reducers').default; store.replaceReducer(nextRootReducer); }); } store.runSaga = sagaMiddleware.run; store.close = () => store.dispatch(END); return store; }
export default function configureStore() { let finalCreateStore; if (__DEVELOPMENT__ && __CLIENT__ && __DEVTOOLS__) { const DevTools = require('containers/DevTools/DevTools'); // eslint-disable-line global-require finalCreateStore = compose( applyMiddleware(socketMidlleware(socket)), window.devToolsExtension ? window.devToolsExtension() : DevTools.instrument(), )(createStore); } else { finalCreateStore = compose( applyMiddleware(socketMidlleware(socket)) )(createStore); } const store = finalCreateStore(reducer); socket.on('state', state => { store.dispatch(setState(state)); }); if (__DEVELOPMENT__ && module.hot) { module.hot.accept('store/reducers', () => { const next = require('store/reducers'); // eslint-disable-line global-require store.replaceReducer(next); }); } return store; }