UNPKG

component-slider

Version:

used to show react components in carousal format

52 lines (43 loc) 1.52 kB
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; }