import {applyMiddleware, compose, createStore} from "redux"; import persistState from "redux-localstorage"; import {createLogger} from "redux-logger"; import createSagaMiddleware from 'redux-saga'; import thunk from "redux-thunk"; import {authRedirectMiddleware} from "../auth/index"; import rootReducer from "../reducers/index"; import rootSaga from "../sagas/index"; import {dummyMiddleware} from "./middlewares/dummy-middleware"; import {viewportAdjustmentMiddleware} from "./middlewares/viewport-adjustment"; const sagaMiddleware = createSagaMiddleware(); let logger; if (process.env.NODE_ENV !== 'production') { logger = createLogger(); } const middlewares = [ process.env.NODE_ENV === 'production' ? dummyMiddleware : logger, thunk, sagaMiddleware, authRedirectMiddleware, viewportAdjustmentMiddleware, ]; export default function configureStore() { const store = createStore( rootReducer, compose( persistState("auth"), applyMiddleware(...middlewares) ) ); sagaMiddleware.run(rootSaga); return store; }