2018-02-24 23:17:04 +00:00
|
|
|
import { composeWithDevTools } from 'redux-devtools-extension'
|
|
|
|
|
|
|
|
import { createStore, applyMiddleware } from 'redux'
|
|
|
|
import createSagaMiddleware from 'redux-saga'
|
|
|
|
import nextReduxWrapper from 'next-redux-wrapper'
|
|
|
|
import nextReduxSaga from 'next-redux-saga'
|
|
|
|
|
|
|
|
import rootReducer from './rootReducer'
|
|
|
|
import rootSaga from './rootSaga'
|
|
|
|
|
|
|
|
const sagaMiddleware = createSagaMiddleware()
|
|
|
|
|
2018-08-20 06:31:24 +00:00
|
|
|
export function configureStore (initialState = {}) {
|
2018-02-24 23:17:04 +00:00
|
|
|
const store = createStore(
|
|
|
|
rootReducer,
|
|
|
|
initialState,
|
|
|
|
composeWithDevTools(applyMiddleware(sagaMiddleware))
|
|
|
|
)
|
|
|
|
store.sagaTask = sagaMiddleware.run(rootSaga)
|
|
|
|
return store
|
|
|
|
}
|
|
|
|
|
|
|
|
export default function (BaseComponent) {
|
|
|
|
return nextReduxWrapper(configureStore)(nextReduxSaga(BaseComponent))
|
|
|
|
}
|