UNPKG

rc-switch

Version:

switch ui component for react

56 lines (54 loc) 1.22 kB
/** @jsx React.DOM */ var React = require('react'); var rcUtil = require('rc-util'); var Switch = React.createClass({ getInitialState() { var props = this.props; var checked = false; if ('checked' in props) { checked = !!this.props.checked; } else { checked = !!this.props.defaultChecked; } return { checked: checked }; }, getDefaultProps() { return { onChange() { } }; }, componentWillReceiveProps(nextProps) { if ('checked' in nextProps) { this.setState({ checked: !!nextProps.checked }); } }, render() { return ( <span className={rcUtil.classSet({ "rc-switch": 1, "rc-switch-checked": this.state.checked, "rc-switch-disabled": this.props.disabled })} onClick = {this.toggleEvent} > </span> ); }, toggleEvent() { if (this.props.disabled) { return; } var self = this; this.setState({ checked: !this.state.checked }, function () { self.props.onChange(self.state.checked); }); } } ); module.exports = Switch;