39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
import { applyMiddleware, compose, createStore } from 'redux';
|
|
import thunk from 'redux-thunk';
|
|
import { routerMiddleware } from 'react-router-redux';
|
|
import { history } from '../main';
|
|
|
|
export const hasBrowserExt = window.__REDUX_DEVTOOLS_EXTENSION__;
|
|
|
|
export default function configureStore(initialState, rootReducer) {
|
|
const middleware = applyMiddleware(thunk, routerMiddleware(history));
|
|
|
|
let createStoreWithMiddleware;
|
|
|
|
if (process.env.NODE_ENV === 'development') {
|
|
if (hasBrowserExt) {
|
|
// show browser devtools if available
|
|
const storeEnhancers =
|
|
(typeof window === 'object' &&
|
|
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) ||
|
|
compose;
|
|
|
|
createStoreWithMiddleware = storeEnhancers(middleware);
|
|
} else {
|
|
createStoreWithMiddleware = compose(
|
|
middleware,
|
|
require('./utils/DevTools').default.instrument()
|
|
);
|
|
}
|
|
} else {
|
|
createStoreWithMiddleware = compose(middleware);
|
|
}
|
|
|
|
const store = createStoreWithMiddleware(createStore)(
|
|
rootReducer,
|
|
initialState
|
|
);
|
|
|
|
return store;
|
|
}
|