Skip to content

Commit b160f90

Browse files
author
Nikita Kirsanov
committed
📦 configureStore module was extracted from boot.jsx
1 parent bdb5def commit b160f90

File tree

2 files changed

+34
-26
lines changed

2 files changed

+34
-26
lines changed

src/boot.jsx

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,25 @@ import * as React from 'react';
22
import { render } from 'react-dom';
33
import injectTapEventPlugin from 'react-tap-event-plugin';
44

5-
import './polyfills';
6-
75
import { Router, Route, browserHistory, IndexRoute } from 'react-router';
8-
import { syncHistoryWithStore, routerReducer, routerMiddleware } from 'react-router-redux';
6+
import { syncHistoryWithStore } from 'react-router-redux';
97

10-
import { combineReducers, createStore, applyMiddleware } from 'redux';
118
import { Provider } from 'react-redux';
12-
import thunkMiddleware from 'redux-thunk';
13-
import createLogger from 'redux-logger';
149

15-
import { reducer as formReducer } from 'redux-form';
10+
import './polyfills';
1611

17-
import * as reducers from './reducers';
1812
import { fetchUser } from './actions/user.actions';
1913

2014
import App from './containers/app/app';
2115
import Feed from './containers/feed/feed';
2216
import SettingsPage from './containers/settings.page';
2317
import AboutPage from './components/about-page';
2418

25-
injectTapEventPlugin();
19+
import configureStore from './configureStore';
2620

27-
// Apply the middleware to the store
28-
const routeMiddleware = routerMiddleware(browserHistory);
21+
const store = configureStore();
2922

30-
const middlewares = [thunkMiddleware, routeMiddleware];
31-
32-
if (process.env.NODE_ENV === 'development') {
33-
const loggerMiddleware = createLogger();
34-
middlewares.push(loggerMiddleware);
35-
}
36-
37-
const store = createStore(
38-
combineReducers({
39-
...reducers,
40-
routing: routerReducer,
41-
form: formReducer,
42-
}),
43-
applyMiddleware(...middlewares)
44-
);
23+
injectTapEventPlugin();
4524

4625
// Create an enhanced history that syncs navigation events with the store
4726
const history = syncHistoryWithStore(browserHistory, store);

src/configureStore.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { combineReducers, createStore, applyMiddleware } from 'redux';
2+
import { browserHistory } from 'react-router';
3+
import { routerReducer, routerMiddleware } from 'react-router-redux';
4+
import thunkMiddleware from 'redux-thunk';
5+
import createLogger from 'redux-logger';
6+
import { reducer as formReducer } from 'redux-form';
7+
8+
import * as reducers from './reducers';
9+
10+
const rootReducer = combineReducers({
11+
...reducers,
12+
routing: routerReducer,
13+
form: formReducer,
14+
});
15+
16+
const middlewares = [thunkMiddleware, routerMiddleware(browserHistory)];
17+
18+
if (process.env.NODE_ENV !== 'production') {
19+
const loggerMiddleware = createLogger();
20+
middlewares.push(loggerMiddleware);
21+
}
22+
23+
export default function configureStore(preloadedState) {
24+
return createStore(
25+
rootReducer,
26+
preloadedState,
27+
applyMiddleware(...middlewares)
28+
);
29+
}

0 commit comments

Comments
 (0)