react-hackathon-board
Version:
Hackathon board with React/node/mongo
29 lines (24 loc) • 991 B
JavaScript
import { applyMiddleware, compose, createStore } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './rootReducer';
import { routerMiddleware } from 'react-router-redux';
export default function configureStore (initialState = {}, history) {
const router = routerMiddleware(history);
// Compose final middleware and use devtools in debug environment
let middleware = applyMiddleware(thunk, router);
if (__DEBUG__) {
const devTools = window.devToolsExtension
? window.devToolsExtension()
: require('containers/DevTools').default.instrument();
middleware = compose(middleware, devTools);
}
// Create final store and subscribe router in debug env ie. for devtools
const store = middleware(createStore)(rootReducer, initialState);
if (module.hot) {
module.hot.accept('./rootReducer', () => {
const nextRootReducer = require('./rootReducer').default;
store.replaceReducer(nextRootReducer);
});
}
return store;
}