Skip to content

Commit f75a3cc

Browse files
incertapiotrwitek
authored andcommitted
Router middleware (piotrwitek#177)
* Add 'connected-react-router' store middleware * Add ConnectedRouter provider to App
1 parent 80df5d4 commit f75a3cc

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

README.md

+7-4
Original file line numberDiff line numberDiff line change
@@ -1102,12 +1102,16 @@ import { RootAction, RootState, Services } from 'MyTypes';
11021102
import { createStore, applyMiddleware } from 'redux';
11031103
import { createEpicMiddleware } from 'redux-observable';
11041104
import { createBrowserHistory } from 'history';
1105+
import { routerMiddleware as createRouterMiddleware } from 'connected-react-router';
11051106

11061107
import { composeEnhancers } from './utils';
11071108
import rootReducer from './root-reducer';
11081109
import rootEpic from './root-epic';
11091110
import services from '../services';
11101111

1112+
// browser history
1113+
export const history = createBrowserHistory();
1114+
11111115
export const epicMiddleware = createEpicMiddleware<
11121116
RootAction,
11131117
RootAction,
@@ -1117,17 +1121,16 @@ export const epicMiddleware = createEpicMiddleware<
11171121
dependencies: services,
11181122
});
11191123

1124+
const routerMiddleware = createRouterMiddleware(history);
1125+
11201126
// configure middlewares
1121-
const middlewares = [epicMiddleware];
1127+
const middlewares = [epicMiddleware, routerMiddleware];
11221128
// compose enhancers
11231129
const enhancer = composeEnhancers(applyMiddleware(...middlewares));
11241130

11251131
// rehydrate state on app start
11261132
const initialState = {};
11271133

1128-
// browser history
1129-
const history = createBrowserHistory();
1130-
11311134
// create store
11321135
const store = createStore(rootReducer(history), initialState, enhancer);
11331136

playground/src/App.tsx

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
import React, { Component } from 'react';
22
import { Provider } from 'react-redux';
3+
import { ConnectedRouter } from 'connected-react-router';
34

4-
import store from './store';
5+
import store, { history } from './store';
56
import Home from './routes/Home';
67

78
class App extends Component {
89
render() {
910
return (
1011
<Provider store={store}>
11-
<Home />
12+
<ConnectedRouter history={history}>
13+
<Home />
14+
</ConnectedRouter>
1215
</Provider>
1316
);
1417
}

playground/src/store/index.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,16 @@ import { RootAction, RootState, Services } from 'MyTypes';
22
import { createStore, applyMiddleware } from 'redux';
33
import { createEpicMiddleware } from 'redux-observable';
44
import { createBrowserHistory } from 'history';
5+
import { routerMiddleware as createRouterMiddleware } from 'connected-react-router';
56

67
import { composeEnhancers } from './utils';
78
import rootReducer from './root-reducer';
89
import rootEpic from './root-epic';
910
import services from '../services';
1011

12+
// browser history
13+
export const history = createBrowserHistory();
14+
1115
export const epicMiddleware = createEpicMiddleware<
1216
RootAction,
1317
RootAction,
@@ -17,17 +21,16 @@ export const epicMiddleware = createEpicMiddleware<
1721
dependencies: services,
1822
});
1923

24+
const routerMiddleware = createRouterMiddleware(history);
25+
2026
// configure middlewares
21-
const middlewares = [epicMiddleware];
27+
const middlewares = [epicMiddleware, routerMiddleware];
2228
// compose enhancers
2329
const enhancer = composeEnhancers(applyMiddleware(...middlewares));
2430

2531
// rehydrate state on app start
2632
const initialState = {};
2733

28-
// browser history
29-
const history = createBrowserHistory();
30-
3134
// create store
3235
const store = createStore(rootReducer(history), initialState, enhancer);
3336

0 commit comments

Comments
 (0)