Skip to content

Commit 3c39574

Browse files
committed
add redux dev tools
1 parent a66ef24 commit 3c39574

File tree

6 files changed

+45
-3
lines changed

6 files changed

+45
-3
lines changed

.env

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
MONGO_URL=mongodb://localhost:27017/p5js-web-editor
22
PORT=8000
3-
SESSION_SECRET=dyR;Ihp9Y/<i=m9&FUBwV\)$";;G:5a-_G4>W@?r~k$JR$nw74=#_Cus[z{yBj`Mq:I8LpWE~g{;B,}t\p/`Wjevkb!$n}N];u`Om57NF^GK@z5qF{0L04)Mz6{Djk
3+
SESSION_SECRET=dyR;Ihp9Y/<i=m9&FUBwV\)$";;G:5a-_G4>W@?r~k$JR$nw74=#_Cus[z{yBj`Mq:I8LpWE~g{;B,}t\p/`Wjevkb!$n}N];u`Om57NF^GK@z5qF{0L04)Mz6{Djk
4+
NODE_ENV=development

client/modules/App/App.jsx

+8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
import React from 'react';
22
import { connect } from 'react-redux';
3+
import DevTools from './components/DevTools';
34

45
class App extends React.Component {
56
constructor(props, context) {
67
super(props, context);
8+
this.state = {isMounted: false};
9+
}
10+
11+
componentDidMount() {
12+
this.setState({isMounted: true});
713
}
814

915
render() {
16+
debugger;
1017
return (
1118
<div className="app">
19+
{this.state.isMounted && !window.devToolsExtension && process.env.NODE_ENV === 'development' && <DevTools />}
1220
{ this.props.children }
1321
</div>
1422
);
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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
8+
toggleVisibilityKey="ctrl-h"
9+
changePositionKey="ctrl-w"
10+
>
11+
<LogMonitor />
12+
</DockMonitor>
13+
);

client/store.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
11
import { createStore, applyMiddleware, compose } from 'redux'
22
import thunk from 'redux-thunk'
3+
import DevTools from './modules/App/components/DevTools'
34
import rootReducer from './reducers'
45

56
export default function configureStore(initialState) {
7+
8+
const enhancers = [
9+
applyMiddleware(thunk),
10+
];
11+
12+
if (process.env.CLIENT && process.env.NODE_ENV === 'development') {
13+
// Enable DevTools only when rendering on client and during development.
14+
enhancers.push(window.devToolsExtension ? window.devToolsExtension() : DevTools.instrument());
15+
}
16+
617
const store = createStore(
718
rootReducer,
819
initialState,
9-
applyMiddleware(thunk)
20+
compose(...enhancers)
1021
)
1122

1223
if (module.hot) {

package.json

+3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
"css-loader": "^0.23.1",
2424
"file-loader": "^0.8.5",
2525
"node-sass": "^3.7.0",
26+
"redux-devtools": "^3.3.1",
27+
"redux-devtools-dock-monitor": "^1.1.1",
28+
"redux-devtools-log-monitor": "^1.0.11",
2629
"sass-loader": "^3.2.0",
2730
"style-loader": "^0.13.1",
2831
"webpack": "^1.13.0",

webpack.config.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ module.exports = {
1414
extensions: ['', '.js', '.jsx'],
1515
},
1616
plugins: [
17-
new webpack.HotModuleReplacementPlugin()
17+
new webpack.HotModuleReplacementPlugin(),
18+
new webpack.DefinePlugin({
19+
'process.env': {
20+
CLIENT: JSON.stringify(true),
21+
'NODE_ENV': JSON.stringify('development'),
22+
}
23+
})
1824
],
1925
module: {
2026
loaders: [

0 commit comments

Comments
 (0)