Files
socialhose-php/frontend/app/redux/configureStore.js
2022-12-09 08:36:26 -06:00

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;
}