Skip to content

Commit 58a0db8

Browse files
author
jasonford
committed
add optional progress to every node
1 parent e7bb467 commit 58a0db8

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

src/Keyboard.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let pressedEvents = [];
33
let pressedKeys = '';
44

55
document.body.addEventListener('keypress', function (e) {
6+
// only catch keypresses not in a box
7+
if (e.target !== document.body) return;
68
pressedKeys += e.key;
79
let handlers = [];
810
pressedEvents.forEach((pressHandlers)=>{
@@ -25,6 +27,9 @@ let onlyKeyDownKeys = {
2527
};
2628

2729
document.body.addEventListener('keydown', function (e) {
30+
// only catch keypresses not in a box
31+
if (e.target !== document.body) return;
32+
2833
if (onlyKeyDownKeys[e.key]) {
2934
pressedKeys += e.key;
3035
let handlers = [];

src/TreeChartChildEditor.js

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,40 @@ let TreeChartChildEditor = React.createClass({
2828
let that = this;
2929
return function (e) {
3030
let update = {};
31-
update[field] = e.target.value;
31+
let value = e.target.value;
32+
if (e.target.type === 'checkbox') {
33+
value = e.target.checked;
34+
}
3235
if (validate) {
33-
update[field] = validate(e.target.value);
36+
value = validate(value);
3437
}
38+
update[field] = value;
3539
firebase.database().ref(that.props.path).update(update);
3640
}
3741
},
3842
render() {
43+
let progressEnabled = this.state.element.progress === 0 || this.state.element.progress > 0;
44+
let progressBar = <div>
45+
<input type="range" onChange={this.update('progress', parseInt)} value={this.state.element.progress}/>
46+
{this.state.element.progress}
47+
</div>
3948
return <div ref="root" className="TreeChartChildEditor">
4049
<input type="text" className="TreeChartChildEditorTitle" value={this.state.element.title} onChange={this.update('title')}/>
4150
<select className="TreeChartChildEditorImportance" default={this.state.element.importance} value={this.state.element.importance} onChange={this.update('importance', parseInt)}>
4251
{[1,2,3,4,5].map((importance)=>{return <option key={importance} value={importance}>{importance}</option>})}
4352
</select>
44-
<select className="TreeChartChildEditorType" default={this.state.element.type} value={this.state.element.type} onChange={this.update('type')}>
53+
<select
54+
className="TreeChartChildEditorType"
55+
default={this.state.element.type}
56+
value={this.state.element.type}
57+
onChange={this.update('type')}>
4558
{types.map((type)=>{return <option key={type} value={type}>{type}</option>})}
4659
</select>
60+
<input
61+
type="checkbox"
62+
checked={progressEnabled}
63+
onChange={this.update('progress', (val)=>{return val ? 0 : null})}/>
64+
{progressEnabled ? progressBar : null}
4765
</div>;
4866
}
4967
});

0 commit comments

Comments
 (0)