Skip to content

Commit 391f585

Browse files
committed
Update real-world example to React 0.14 and Redux DevTools Beta 3
1 parent e6141ae commit 391f585

File tree

11 files changed

+116
-84
lines changed

11 files changed

+116
-84
lines changed

examples/real-world/components/Explore.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ export default class Explore extends Component {
5050
<p>
5151
Code on <a href={GITHUB_REPO} target="_blank">Github</a>.
5252
</p>
53+
<p>
54+
Move the DevTools with Ctrl+W or hide them with Ctrl+H.
55+
</p>
5356
</div>
5457
);
5558
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
import { createDevTools } from 'redux-devtools';
3+
import LogMonitor from 'redux-devtools-log-monitor';
4+
import DockMonitor from 'redux-devtools-dock-monitor';
5+
6+
export default createDevTools(
7+
<DockMonitor toggleVisibilityKey="H"
8+
changePositionKey="W">
9+
<LogMonitor />
10+
</DockMonitor>
11+
);
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import React, { Component, PropTypes } from 'react';
2+
import { Provider } from 'react-redux';
3+
import { ReduxRouter } from 'redux-router';
4+
import DevTools from './DevTools';
5+
6+
export default class Root extends Component {
7+
render() {
8+
const { store } = this.props;
9+
return (
10+
<Provider store={store}>
11+
<div>
12+
<ReduxRouter />
13+
<DevTools />
14+
</div>
15+
</Provider>
16+
);
17+
}
18+
}
19+
20+
Root.propTypes = {
21+
store: PropTypes.object.isRequired
22+
};
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
if (process.env.NODE_ENV === 'production') {
2+
module.exports = require('./Root.prod');
3+
} else {
4+
module.exports = require('./Root.dev');
5+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import React, { Component, PropTypes } from 'react';
2+
import { Provider } from 'react-redux';
3+
import { ReduxRouter } from 'redux-router';
4+
5+
export default class Root extends Component {
6+
render() {
7+
const { store } = this.props;
8+
return (
9+
<Provider store={store}>
10+
<ReduxRouter />
11+
</Provider>
12+
);
13+
}
14+
}
15+
16+
Root.propTypes = {
17+
store: PropTypes.object.isRequired
18+
};

examples/real-world/createDevToolsWindow.js

Lines changed: 0 additions & 39 deletions
This file was deleted.

examples/real-world/index.js

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,12 @@
11
import 'babel-core/polyfill';
22
import React from 'react';
33
import { render } from 'react-dom';
4-
import { Provider } from 'react-redux';
5-
import { ReduxRouter } from 'redux-router';
4+
import Root from './containers/Root';
65
import configureStore from './store/configureStore';
76

87
const store = configureStore();
98

109
render(
11-
<Provider store={store}>
12-
<ReduxRouter />
13-
</Provider>,
10+
<Root store={store} />,
1411
document.getElementById('root')
1512
);
16-
17-
if (process.env.NODE_ENV !== 'production') {
18-
// Use require because imports can't be conditional.
19-
// In production, you should ensure process.env.NODE_ENV
20-
// is envified so that Uglify can eliminate this
21-
// module and its dependencies as dead code.
22-
require('./createDevToolsWindow')(store);
23-
}

examples/real-world/package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
"isomorphic-fetch": "^2.1.1",
2121
"lodash": "^3.10.1",
2222
"normalizr": "^1.0.0",
23-
"react": "^0.14.0-rc1",
24-
"react-dom": "^0.14.0-rc1",
23+
"react": "^0.14.0",
24+
"react-dom": "^0.14.0",
2525
"react-redux": "^2.1.2",
2626
"react-router": "^1.0.0-rc1",
2727
"redux": "^3.0.0",
@@ -32,11 +32,13 @@
3232
"devDependencies": {
3333
"babel-core": "^5.6.18",
3434
"babel-loader": "^5.1.4",
35-
"redux-devtools": "^2.1.5",
3635
"babel-plugin-react-transform": "^1.1.0",
3736
"concurrently": "^0.1.1",
3837
"express": "^4.13.3",
3938
"react-transform-hmr": "^1.0.0",
39+
"redux-devtools": "^3.0.0-beta-3",
40+
"redux-devtools-dock-monitor": "^1.0.0-beta-3",
41+
"redux-devtools-log-monitor": "^1.0.0-beta-3",
4042
"webpack": "^1.9.11",
4143
"webpack-dev-middleware": "^1.2.0",
4244
"webpack-hot-middleware": "^2.2.0"
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { createStore, applyMiddleware, compose } from 'redux';
2+
import { reduxReactRouter } from 'redux-router';
3+
import DevTools from '../containers/DevTools';
4+
import createHistory from 'history/lib/createBrowserHistory';
5+
import routes from '../routes';
6+
import thunk from 'redux-thunk';
7+
import api from '../middleware/api';
8+
import createLogger from 'redux-logger';
9+
import rootReducer from '../reducers';
10+
11+
const finalCreateStore = compose(
12+
applyMiddleware(thunk, api),
13+
reduxReactRouter({ routes, createHistory }),
14+
applyMiddleware(createLogger()),
15+
DevTools.instrument()
16+
)(createStore);
17+
18+
export default function configureStore(initialState) {
19+
const store = finalCreateStore(rootReducer, initialState);
20+
21+
if (module.hot) {
22+
// Enable Webpack hot module replacement for reducers
23+
module.hot.accept('../reducers', () => {
24+
const nextRootReducer = require('../reducers');
25+
store.replaceReducer(nextRootReducer);
26+
});
27+
}
28+
29+
return store;
30+
}
Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,5 @@
1-
import { createStore, applyMiddleware, compose } from 'redux';
2-
import { reduxReactRouter } from 'redux-router';
3-
import { devTools } from 'redux-devtools';
4-
import createHistory from 'history/lib/createBrowserHistory';
5-
import routes from '../routes';
6-
import thunk from 'redux-thunk';
7-
import api from '../middleware/api';
8-
import createLogger from 'redux-logger';
9-
import rootReducer from '../reducers';
10-
11-
const finalCreateStore = compose(
12-
applyMiddleware(thunk, api),
13-
reduxReactRouter({ routes, createHistory }),
14-
applyMiddleware(createLogger()),
15-
devTools()
16-
)(createStore);
17-
18-
export default function configureStore(initialState) {
19-
const store = finalCreateStore(rootReducer, initialState);
20-
21-
if (module.hot) {
22-
// Enable Webpack hot module replacement for reducers
23-
module.hot.accept('../reducers', () => {
24-
const nextRootReducer = require('../reducers');
25-
store.replaceReducer(nextRootReducer);
26-
});
27-
}
28-
29-
return store;
1+
if (process.env.NODE_ENV === 'production') {
2+
module.exports = require('./configureStore.prod');
3+
} else {
4+
module.exports = require('./configureStore.dev');
305
}

0 commit comments

Comments
 (0)