2016-03-14 23:22:24 +01:00
|
|
|
import { createStore, applyMiddleware, compose } from 'redux';
|
|
|
|
import thunk from 'redux-thunk';
|
2017-06-21 08:40:28 +02:00
|
|
|
import createReducer from 'state';
|
2018-04-05 21:13:32 +02:00
|
|
|
import { routeReducer, routeMiddleware } from 'utils/router';
|
2017-06-07 00:04:37 +02:00
|
|
|
import message from './middleware/message';
|
2017-05-26 08:20:00 +02:00
|
|
|
import createSocketMiddleware from './middleware/socket';
|
|
|
|
import commands from './commands';
|
2016-03-14 23:22:24 +01:00
|
|
|
|
2017-05-07 22:19:15 +02:00
|
|
|
export default function configureStore(socket) {
|
2018-04-06 01:46:22 +02:00
|
|
|
/* eslint-disable no-underscore-dangle */
|
|
|
|
const composeEnhancers =
|
|
|
|
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
|
2017-04-30 02:21:36 +02:00
|
|
|
|
2017-05-07 22:19:15 +02:00
|
|
|
const reducer = createReducer(routeReducer);
|
|
|
|
|
2018-04-06 01:46:22 +02:00
|
|
|
const store = createStore(
|
|
|
|
reducer,
|
|
|
|
composeEnhancers(
|
|
|
|
applyMiddleware(
|
|
|
|
thunk,
|
|
|
|
routeMiddleware,
|
|
|
|
createSocketMiddleware(socket),
|
|
|
|
message,
|
|
|
|
commands
|
|
|
|
)
|
2017-04-30 02:21:36 +02:00
|
|
|
)
|
2018-04-06 01:46:22 +02:00
|
|
|
);
|
2017-05-07 22:19:15 +02:00
|
|
|
|
|
|
|
return store;
|
2015-12-29 00:34:32 +01:00
|
|
|
}
|