2018-04-06 14:51:52 +01:00
|
|
|
import {
|
|
|
|
createStore as reduxCreateStore,
|
|
|
|
combineReducers,
|
|
|
|
applyMiddleware
|
|
|
|
} from 'redux';
|
|
|
|
import { combineEpics, createEpicMiddleware } from 'redux-observable';
|
|
|
|
import { routerReducer as router, routerMiddleware } from 'react-router-redux';
|
|
|
|
|
2018-04-11 14:46:46 +01:00
|
|
|
import { reducer as app } from './app';
|
2018-04-06 14:51:52 +01:00
|
|
|
import { reducer as challenge, epics } from '../templates/Challenges/redux';
|
|
|
|
import { reducer as map } from '../components/Map/redux';
|
|
|
|
|
|
|
|
const rootReducer = combineReducers({
|
2018-04-11 14:46:46 +01:00
|
|
|
app,
|
2018-04-06 14:51:52 +01:00
|
|
|
challenge,
|
|
|
|
map,
|
|
|
|
router
|
|
|
|
});
|
|
|
|
|
|
|
|
const rootEpic = combineEpics(...epics);
|
2018-04-11 14:46:46 +01:00
|
|
|
|
2018-04-06 14:51:52 +01:00
|
|
|
const epicMiddleware = createEpicMiddleware(rootEpic, {
|
|
|
|
dependencies: {
|
|
|
|
window: typeof window !== 'undefined' ? window : {},
|
|
|
|
document: typeof window !== 'undefined' ? document : {}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
export const createStore = history =>
|
|
|
|
reduxCreateStore(
|
|
|
|
rootReducer,
|
|
|
|
applyMiddleware(epicMiddleware, routerMiddleware(history))
|
|
|
|
);
|