1
0
mirror of https://github.com/ascribe/onion.git synced 2024-06-30 21:52:08 +02:00
onion/js/components/ascribe_forms/input_checkbox.js
2015-07-28 12:03:45 +02:00

58 lines
1.4 KiB
JavaScript

'use strict';
import React from 'react';
let InputCheckbox = React.createClass({
propTypes: {
required: React.PropTypes.bool,
defaultChecked: React.PropTypes.bool,
children: React.PropTypes.oneOfType([
React.PropTypes.arrayOf(React.PropTypes.element),
React.PropTypes.element
]).isRequired
},
getInitialState() {
return {
value: this.props.defaultChecked
};
},
componentDidMount() {
this.props.onChange({
target: {
value: this.state.value
}
});
},
onChange() {
let value = !this.refs.checkbox.getDOMNode().checked;
this.setState({value: value});
this.props.onChange({
target: {
value: value
}
});
},
render() {
console.log(this.state.value);
return (
<span
onClick={this.onChange}>
<input
type="checkbox"
ref="checkbox"
onChange={this.onChange}
checked={this.state.value}
defaultChecked={this.props.defaultChecked}/>
<span className="checkbox">
{this.props.children}
</span>
</span>
);
}
});
export default InputCheckbox;