Skip to content

Commit 7d02b91

Browse files
committed
Support different monitors
1 parent f367a9d commit 7d02b91

File tree

7 files changed

+44
-14
lines changed

7 files changed

+44
-14
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,10 @@
6161
"react-redux": "^4.0.6",
6262
"redux": "^3.0.5",
6363
"redux-devtools": "^3.0.1",
64+
"redux-devtools-chart-monitor": "^1.1.3",
6465
"redux-devtools-filter-actions": "^1.0.1",
6566
"redux-devtools-log-monitor": "^1.0.2",
67+
"redux-slider-monitor": "^1.0.1",
6668
"redux-thunk": "^1.0.3",
6769
"remotedev-app": "^0.2.2"
6870
}

src/app/containers/App.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import styles from 'remotedev-app/lib/styles';
33
import Instances from 'remotedev-app/lib/components/Instances';
44
import Button from 'remotedev-app/lib/components/Button';
55
import SettingsIcon from 'react-icons/lib/md/settings';
6+
import Monitor from './Monitor';
67

78
export default class App extends Component {
89
static propTypes = {
9-
store: PropTypes.object,
10-
children: PropTypes.element
10+
store: PropTypes.object
1111
};
1212

1313
static update = () => ({});
@@ -18,16 +18,16 @@ export default class App extends Component {
1818
};
1919

2020
render() {
21-
const { store, children, ...childProps } = this.props;
22-
const Monitor = cloneElement(children, childProps);
21+
const { store, ...childProps } = this.props;
2322
return (
2423
<div style={styles.container}>
2524
{store.instances ?
2625
<div style={styles.buttonBar}>
2726
<Instances instances={store.instances} onSelect={this.handleSelectInstance}/>
2827
</div>
2928
: null }
30-
{ Monitor }
29+
<Monitor {...childProps} />
30+
3131
<div style={styles.buttonBar}>
3232
<Button
3333
Icon={SettingsIcon}

src/app/containers/DevTools.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import React from 'react';
22
import { createDevTools } from 'redux-devtools';
3-
import LogMonitor from 'redux-devtools-log-monitor';
4-
import FilterMonitor from 'redux-devtools-filter-actions';
53
import App from './App';
64

7-
export default createDevTools(<App><FilterMonitor><LogMonitor /></FilterMonitor></App>);
5+
export default createDevTools(<App/>);

src/app/containers/Monitor.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import React, { createElement } from 'react';
2+
import FilterMonitor from 'redux-devtools-filter-actions';
3+
import LogMonitor from 'redux-devtools-log-monitor';
4+
import ChartMonitor from 'redux-devtools-chart-monitor';
5+
import SliderMonitor from 'redux-slider-monitor';
6+
7+
function getMonitor() {
8+
const monitorType = location.hash.substr(1);
9+
switch (monitorType) {
10+
case 'SliderMonitor': return SliderMonitor;
11+
case 'ChartMonitor': return ChartMonitor;
12+
default: return LogMonitor;
13+
}
14+
}
15+
16+
export default (props) => (
17+
<FilterMonitor {...props}>{createElement(getMonitor())}</FilterMonitor>
18+
);

src/browser/extension/background/openWindow.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import getMonitorName from '../options/getMonitorName';
12
let windows = {};
23
let lastPosition = null;
34

@@ -23,9 +24,11 @@ export default function openDevToolsWindow(position) {
2324
...customOptions
2425
};
2526
if (action === 'open') {
26-
options.url = chrome.extension.getURL(url + '#' + position);
27-
chrome.windows.create(options, (win) => {
28-
windows[position] = win.id;
27+
getMonitorName(position, monitorName => {
28+
options.url = chrome.extension.getURL(url + '#' + monitorName);
29+
chrome.windows.create(options, (win) => {
30+
windows[position] = win.id;
31+
});
2932
});
3033
}
3134
});
@@ -37,8 +40,8 @@ export default function openDevToolsWindow(position) {
3740
params.left = window.screen.availWidth - params.width;
3841
break;
3942
case 'devtools-bottom':
40-
params.height = 320;
41-
params.top = window.screen.availHeight - 320;
43+
params.height = 200;
44+
params.top = window.screen.availHeight - params.height;
4245
params.width = window.screen.availWidth;
4346
break;
4447
case 'devtools-panel':

src/browser/extension/inject/pageScript.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ window.devToolsExtension = function(config = {}) {
121121
if (action.type === '@@INIT') {
122122
relay('INIT', state, { timestamp: Date.now() });
123123
} else if (!errorOccurred && lastAction !== 'TOGGLE_ACTION' && lastAction !== 'SWEEP') {
124-
if (isLimit(nextActionId) || isFiltered(action)) return;
124+
if (lastAction === 'JUMP_TO_STATE' || isLimit(nextActionId) || isFiltered(action)) return;
125125
relay('ACTION', state, liftedAction, nextActionId);
126126
} else {
127127
if (errorOccurred && !liftedState.computedStates[liftedState.currentStateIndex].error) errorOccurred = false;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export default (type, cb) => {
2+
window.syncOptions.get(options => {
3+
switch (type) {
4+
case 'devtools-bottom': cb(options.bottomMonitor); break;
5+
case 'devtools-right': cb(options.rightMonitor); break;
6+
default: cb(options.leftMonitor);
7+
}
8+
});
9+
};

0 commit comments

Comments
 (0)