diff options
| author | gabrhr <[email protected]> | 2022-04-20 10:19:29 -0500 |
|---|---|---|
| committer | gabrhr <[email protected]> | 2022-04-20 10:19:29 -0500 |
| commit | e13e630cd6e4fc0b1ff92098a28a770794c7bb9a (patch) | |
| tree | e68ad2f947d1b3ec454529b35f37ca2f223e5431 /front/odiparpack/app/redux/configureStore.js | |
| parent | 457816ac1129fcc6019d2fc795b6693ee6776d59 (diff) | |
| download | DP1_project-e13e630cd6e4fc0b1ff92098a28a770794c7bb9a.tar.gz DP1_project-e13e630cd6e4fc0b1ff92098a28a770794c7bb9a.tar.bz2 DP1_project-e13e630cd6e4fc0b1ff92098a28a770794c7bb9a.zip | |
AƱadir plantilla
Base para front
Diffstat (limited to 'front/odiparpack/app/redux/configureStore.js')
| -rw-r--r-- | front/odiparpack/app/redux/configureStore.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/front/odiparpack/app/redux/configureStore.js b/front/odiparpack/app/redux/configureStore.js new file mode 100644 index 0000000..49a6b7b --- /dev/null +++ b/front/odiparpack/app/redux/configureStore.js @@ -0,0 +1,53 @@ +/** + * Create the store with dynamic reducers + */ + +import { createStore, applyMiddleware, compose } from 'redux'; +import { fromJS } from 'immutable'; +import { routerMiddleware } from 'connected-react-router/immutable'; +import createSagaMiddleware from 'redux-saga'; +import createReducer from './reducers'; + +const sagaMiddleware = createSagaMiddleware(); + +export default function configureStore(initialState = {}, history) { + // Create the store with two middlewares + // 1. sagaMiddleware: Makes redux-sagas work + // 2. routerMiddleware: Syncs the location/URL path to the state + const middlewares = [sagaMiddleware, routerMiddleware(history)]; + + const enhancers = [applyMiddleware(...middlewares)]; + + // If Redux DevTools Extension is installed use it, otherwise use Redux compose + /* eslint-disable no-underscore-dangle, indent */ + const composeEnhancers = process.env.NODE_ENV !== 'production' + && typeof window === 'object' + && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ + ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ + // TODO Try to remove when `react-router-redux` is out of beta, LOCATION_CHANGE should not be fired more than once after hot reloading + // Prevent recomputing reducers for `replaceReducer` + shouldHotReload: false, + }) + : compose; + /* eslint-enable */ + const store = createStore( + createReducer(), + fromJS(initialState), + composeEnhancers(...enhancers), + ); + + // Extensions + store.runSaga = sagaMiddleware.run; + store.injectedReducers = {}; // Reducer registry + store.injectedSagas = {}; // Saga registry + + // Make reducers hot reloadable, see http://mxs.is/googmo + /* istanbul ignore next */ + if (module.hot) { + module.hot.accept('./reducers', () => { + store.replaceReducer(createReducer(store.injectedReducers)); + }); + } + + return store; +} |
