component-slider
Version:
used to show react components in carousal format
52 lines (43 loc) • 1.52 kB
JavaScript
import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from '../reducers';
import createHelpers from './createHelpers';
import reduxLogger from 'redux-logger';
export default function configureStore(initialState, helpersConfig) {
const helpers = createHelpers(helpersConfig);
const middleware = [thunk.withExtraArgument(helpers)];
let enhancer;
if (__DEV__) {
if (process.env.BROWSER) {
const createLogger = reduxLogger;
middleware.push(createLogger({
collapsed: true,
}));
} else {
// Server side redux action logger
middleware.push(store => next => action => { // eslint-disable-line no-unused-vars
return next(action);
});
}
// https://github.com/zalmoxisus/redux-devtools-extension#redux-devtools-extension
let devToolsExtension = f => f;
if (process.env.BROWSER && window.devToolsExtension) {
devToolsExtension = window.devToolsExtension();
}
enhancer = compose(
applyMiddleware(...middleware),
devToolsExtension,
);
} else {
enhancer = applyMiddleware(...middleware);
}
// See https://github.com/rackt/redux/releases/tag/v3.1.0
const store = createStore(rootReducer, initialState, enhancer);
// Hot reload reducers (requires Webpack or Browserify HMR to be enabled)
if (__DEV__ && module.hot) {
module.hot.accept('../reducers', () =>
store.replaceReducer(rootReducer.default)
);
}
return store;
}