1
0
mirror of https://github.com/Pomax/BezierInfo-2.git synced 2025-08-13 12:14:23 +02:00
This commit is contained in:
Pomax
2016-09-14 14:55:46 -07:00
parent d7d1df1119
commit b9e1d711fd
15 changed files with 538 additions and 74 deletions

View File

@@ -0,0 +1,53 @@
var React = require('react');
var WeightController = React.createClass({
getInitialState() {
return {
owner: false,
weights: [],
closed: false
};
},
bindWeights(owner, weights, closed) {
this.setState({owner, weights, closed});
},
render() {
var type = 'range';
var min = 0;
var max = this.state.weights.length;
var step = 1;
var overlap = this.state.closed;
var baselength = this.state.weights.length;
if (overlap !== false) {
baselength -= overlap;
}
return (
<section className='knot-controls'><h2>weight values</h2>{
this.state.weights.map((value,position) => {
if (overlap && position >= baselength) {
return null;
}
var props = {
type, min, max, step,
value,
onChange: e => {
var k = this.state.weights;
k[position] = e.target.value;
if (overlap && position < overlap) {
k[position+baselength] = e.target.value;
}
this.setState({ weights: k }, () => {
this.state.owner.redraw();
});
}
};
return <div key={'knot'+position}>{min}<input {...props}/>{max} (= {value})</div>;
})
}</section>
);
}
});
module.exports = WeightController;