2019-02-17 20:57:59 +01:00
|
|
|
import { applyMiddleware, createStore } from 'redux'
|
2017-07-13 20:55:29 +02:00
|
|
|
import createSagaMiddleware from 'redux-saga'
|
2020-05-25 18:21:35 +02:00
|
|
|
import { createWrapper } from 'next-redux-wrapper'
|
2018-05-16 10:47:12 +02:00
|
|
|
|
2020-06-05 16:59:13 +02:00
|
|
|
import rootReducer from './reducer'
|
2017-07-13 20:55:29 +02:00
|
|
|
import rootSaga from './saga'
|
|
|
|
|
2020-05-18 21:24:37 +02:00
|
|
|
const bindMiddleware = (middleware) => {
|
2018-01-26 17:09:49 +01:00
|
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
|
|
const { composeWithDevTools } = require('redux-devtools-extension')
|
|
|
|
return composeWithDevTools(applyMiddleware(...middleware))
|
|
|
|
}
|
|
|
|
return applyMiddleware(...middleware)
|
|
|
|
}
|
|
|
|
|
2020-06-05 16:59:13 +02:00
|
|
|
export const makeStore = (context) => {
|
2019-02-17 20:57:59 +01:00
|
|
|
const sagaMiddleware = createSagaMiddleware()
|
2020-06-05 16:59:13 +02:00
|
|
|
const store = createStore(rootReducer, bindMiddleware([sagaMiddleware]))
|
2017-07-13 20:55:29 +02:00
|
|
|
|
2019-02-17 20:57:59 +01:00
|
|
|
store.sagaTask = sagaMiddleware.run(rootSaga)
|
2018-05-13 18:26:17 +02:00
|
|
|
|
2017-07-13 20:55:29 +02:00
|
|
|
return store
|
|
|
|
}
|
|
|
|
|
2020-05-25 18:21:35 +02:00
|
|
|
export const wrapper = createWrapper(makeStore, { debug: true })
|