mirror of
https://github.com/Pomax/BezierInfo-2.git
synced 2025-02-24 17:42:43 +01:00
40 lines
960 B
JavaScript
40 lines
960 B
JavaScript
var React = require('react');
|
|
|
|
var KnotController = React.createClass({
|
|
getInitialState() {
|
|
return {
|
|
owner: false,
|
|
knots: []
|
|
};
|
|
},
|
|
bindKnots(owner, knots) {
|
|
this.setState({owner, knots});
|
|
},
|
|
render() {
|
|
var type = 'range';
|
|
var min = 0;
|
|
var max = this.state.knots.length;
|
|
var step = 1;
|
|
return (
|
|
<section className='knot-controls'><h2>knot values</h2>{
|
|
this.state.knots.map((value,position) => {
|
|
var props = {
|
|
type, min, max, step,
|
|
value,
|
|
onChange: e => {
|
|
var k = this.state.knots;
|
|
k[position] = e.target.value;
|
|
this.setState({ knots: k }, () => {
|
|
this.state.owner.redraw();
|
|
});
|
|
}
|
|
};
|
|
return <div key={'knot'+position}>{min}<input {...props}/>{max} (= {value})</div>;
|
|
})
|
|
}</section>
|
|
);
|
|
}
|
|
});
|
|
|
|
module.exports = KnotController;
|