import classnames from 'classnames'; import React from 'react'; import Checkmark from '../icons/Checkmark'; const METHODS_TO_BIND = ['handleCheckboxChange']; export default class Checkbox extends React.Component { constructor() { super(); this.state = {checked: false}; METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } componentDidMount() { if (this.props.checked != null && this.state.checked !== this.props.checked) { this.setState({checked: this.props.checked}); } } handleCheckboxChange() { let currentCheckedState = this.state.checked; let newCheckedState = !currentCheckedState; this.setState({checked: newCheckedState}); if (this.props.onChange) { this.props.onChange(newCheckedState); } } render() { let classes = classnames('checkbox', { 'is-checked': this.state.checked }); return ( ); } } Checkbox.defaultProps = { checked: false };