2020-05-19 17:20:31 +02:00
|
|
|
import { createStore, applyMiddleware, compose } from 'redux'
|
2019-11-28 14:12:48 +01:00
|
|
|
import createSagaMiddleware from 'redux-saga'
|
|
|
|
import { rootReducer } from './reducers/root'
|
|
|
|
import { rootSaga } from './sagas/root'
|
|
|
|
|
|
|
|
let reduxMiddlewares = [];
|
|
|
|
|
|
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
|
|
const createLogger = require('redux-logger').createLogger;
|
|
|
|
const loggerMiddleware = createLogger({
|
|
|
|
collapsed: true,
|
|
|
|
diff: true
|
|
|
|
});
|
|
|
|
reduxMiddlewares.push(loggerMiddleware);
|
|
|
|
}
|
|
|
|
|
2020-05-19 17:20:31 +02:00
|
|
|
const composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
|
|
|
|
|
2019-11-28 14:12:48 +01:00
|
|
|
// create the saga middleware
|
|
|
|
const sagaMiddleware = createSagaMiddleware()
|
|
|
|
reduxMiddlewares.push(sagaMiddleware);
|
|
|
|
|
|
|
|
// mount it on the Store
|
|
|
|
export const store = createStore(
|
|
|
|
rootReducer,
|
2020-05-19 17:20:31 +02:00
|
|
|
composeEnhancers(applyMiddleware(...reduxMiddlewares)),
|
2019-11-28 14:12:48 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
// then run the saga
|
|
|
|
sagaMiddleware.run(rootSaga);
|