export default function (initialState = {}) {
  const store = createStore(rootReducer, initialState, compose(
    applyMiddleware(apiMiddleware, thunk),
    DevTools.instrument()
    )
  );

  if (module.hot) {
    module.hot.accept('./reducers', () =>
      store.replaceReducer(require('./reducers').default)
    );
  }
  return store;
}
Ejemplo n.º 2
0
export default function configureStore(initialState = {}, browserHistory) {
  const middlewares = [];
  const sagaMiddleware = createSagaMiddleware();
  middlewares.push(thunk);
  middlewares.push(routerMiddleware(browserHistory));
  middlewares.push(socketIoMiddleware);
  middlewares.push(sagaMiddleware);

  if (__DEVELOPMENT__) {
    const { createLogger } = require('redux-logger');
    const logger = createLogger({
      predicate: (getState, action) => action.type !== 'EFFECT_TRIGGERED' && action.type !== 'EFFECT_RESOLVED',
    });
    middlewares.push(logger);
  }

  if (__USE_GA__) {
    const { googleAnalyticsMiddleware } = require('../middlewares/ga');
    middlewares.push(googleAnalyticsMiddleware);
  }

  let createStoreWithMiddleware = applyMiddleware(...middlewares);

  if (__DEVTOOLS__) {
    createStoreWithMiddleware = compose(
      createStoreWithMiddleware,
      DevTools.instrument(),
    );
  }

  const finalCreateStore = createStoreWithMiddleware(createStore);
  const store = finalCreateStore(reducers, initialState);
  sagaMiddleware.run(sagas);

  if (__DEVELOPMENT__) {
    if (module.hot) {
      // Enable Webpack hot module replacement for reducers
      module.hot.accept('modules/state', () => {
        const nextReducer = require('modules/state');
        store.replaceReducer(nextReducer);
      });
    }
  }

  return store;
}
Ejemplo n.º 3
0
export default (initialState = {}) => {
  const createStoreWithMiddleware = compose(
    applyMiddleware(routerMiddleware(browserHistory), apiMiddleware, logger),
    DevTools.instrument()
  )(createStore);

  const store = createStoreWithMiddleware(reducer, initialState);

  // Hot reload reducers (requires Webpack or Browserify HMR to be enabled)
  if (module.hot) {
    module.hot.accept('redux/reducers', () => {
      store.replaceReducer(require('redux/reducers').default);
    });
  }

  return store;
};
Ejemplo n.º 4
0
import thunk from 'redux-thunk';
import { createStore, applyMiddleware, compose } from 'redux';

import DevTools from 'components/DevTools';

const middleware = [thunk];
const finalCreateStore = compose(
    applyMiddleware(...middleware),
    DevTools.instrument(),
)(createStore);

export default finalCreateStore;