Skip to content

Commit 85337be

Browse files
committed
Abstract react-redux Provider into Providers
Add ConnectedRouter provider. It's make sense to have separated 'Providers.tsx' file. First reason is for components render tests where redux context is involved, second it's just clear place where we can gather all entities of the same kind
1 parent 9953a74 commit 85337be

File tree

4 files changed

+27
-6
lines changed

4 files changed

+27
-6
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1110,7 +1110,7 @@ import rootEpic from './root-epic';
11101110
import services from '../services';
11111111

11121112
// browser history
1113-
const history = createBrowserHistory();
1113+
export const history = createBrowserHistory();
11141114

11151115
export const epicMiddleware = createEpicMiddleware<
11161116
RootAction,

playground/src/App.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
import React, { Component } from 'react';
2-
import { Provider } from 'react-redux';
32

4-
import store from './store';
3+
import Providers from './Providers';
54
import Home from './routes/Home';
65

76
class App extends Component {
87
render() {
98
return (
10-
<Provider store={store}>
9+
<Providers>
1110
<Home />
12-
</Provider>
11+
</Providers>
1312
);
1413
}
1514
}

playground/src/Providers.tsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import React from 'react';
2+
import { Provider } from 'react-redux';
3+
import { ConnectedRouter } from 'connected-react-router';
4+
5+
import store, { history } from './store';
6+
import { Store } from 'redux';
7+
8+
import { RootState } from 'MyTypes';
9+
10+
type Props = {
11+
testStore?: Store<RootState>;
12+
};
13+
14+
const Providers: React.FC<Props> = ({ children, testStore }) => (
15+
<Provider store={testStore || store}>
16+
<ConnectedRouter history={history}>
17+
{children as any}
18+
</ConnectedRouter>
19+
</Provider>
20+
);
21+
22+
export default Providers;

playground/src/store/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import rootEpic from './root-epic';
1010
import services from '../services';
1111

1212
// browser history
13-
const history = createBrowserHistory();
13+
export const history = createBrowserHistory();
1414

1515
export const epicMiddleware = createEpicMiddleware<
1616
RootAction,

0 commit comments

Comments
 (0)