import { createStore, applyMiddleware, compose, bindActionCreators } from 'redux'
import { createEpicMiddleware } from 'redux-observable'
import { actions as toastrActions } from 'react-redux-toastr'
import reducer from './reducers'
import rootEpic from './epics'
export default function configureStore (preloadedState) {
const epicMiddleware = createEpicMiddleware()
const middlewares = [epicMiddleware]
// https://github.com/zalmoxisus/redux-devtools-extension#11-basic-store
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose
const composedEnhancers = composeEnhancers(
applyMiddleware(...middlewares)
// other store enhancers could be added here
)
const store = createStore(reducer, preloadedState, composedEnhancers)
epicMiddleware.run(rootEpic)
bindActionCreators(toastrActions, store.dispatch)
return store
}