import { applyMiddleware, compose, combineReducers, createStore } from 'redux' import { connectRouter, routerMiddleware } from 'connected-react-router' import { createBrowserHistory } from 'history' // import createDebounce from 'redux-debounced' import thunk from 'redux-thunk' // import { login } from './util' import uploadReducer from './views/upload/upload.reducer' import graphReducer from './views/graph/graph.reducer' import pageReducer from './views/page/page.reducer' import tileReducer from './views/tile/tile.reducer' import siteReducer from './views/site/site.reducer' // import collectionReducer from './views/collection/collection.reducer' const createRootReducer = history => ( combineReducers({ auth: (state = {}) => state, router: connectRouter(history), site: siteReducer, graph: graphReducer, page: pageReducer, tile: tileReducer, upload: uploadReducer, // collection: collectionReducer, }) ) const configureStore = (initialState = {}, history) => { const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose const store = createStore( createRootReducer(history), initialState, composeEnhancers( applyMiddleware( thunk, // createDebounce(), routerMiddleware(history) ), ), ) return store } const history = createBrowserHistory() const store = configureStore({}, history) const { dispatch } = store export { store, history, dispatch }