diff options
Diffstat (limited to 'graphgraph-fe/src/GraphHops.js')
-rw-r--r-- | graphgraph-fe/src/GraphHops.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/graphgraph-fe/src/GraphHops.js b/graphgraph-fe/src/GraphHops.js new file mode 100644 index 0000000..e835182 --- /dev/null +++ b/graphgraph-fe/src/GraphHops.js @@ -0,0 +1,65 @@ +import React from 'react' +import { Label } from 'react-bootstrap' +import NumericInput from 'react-numeric-input' +import './GraphHops.css' + +var createNumInput = function (label, callback, current) { + return ( + <div> + <Label>{label}</Label> + <NumericInput onChange={callback} min={0} max={500} value={current} className="hops-input-field" /> + </div> + ) +} + +class GraphHops extends React.Component { + constructor (props) { + super(props) + + this.state = { + value: this.props.defaultValue + } + let p = props.parentHops + let c = props.cousinHops + let ch = props.childHops + + this.onChangeParent = (e) => this._onChangeParent(e) + this.onChangeCousin = (e) => this._onChangeCousin(e) + this.onChangeChild = (e) => this._onChangeChild(e) + this.onChange = (hopsName, num) => this._onChange(hopsName, num) + this.state = { parentHops: p, childHops: ch, cousinHops: c } + } + + _onChange (hopsName, num) { + var s = this.state + s[hopsName] = num + this.setState(s) + + this.props.updateHops(this.state.parentHops, this.state.cousinHops, this.state.childHops) + } + + _onChangeParent (e) { + this.onChange('parentHops', e) + } + + _onChangeCousin (e) { + this.onChange('cousinHops', e) + } + + _onChangeChild (e) { + this.onChange('childHops', e) + } + + render () { + return ( + <div className="hops-input"> + {createNumInput('parent hops', this.onChangeParent, this.state.parentHops)} + {createNumInput('cousin hops', this.onChangeCousin, this.state.cousinHops)} + {createNumInput('child hops', this.onChangeChild, this.state.childHops)} + + </div> + ) + } +} + +export default GraphHops |