ldx-widgets
Version:
widgets
69 lines (62 loc) • 1.99 kB
JavaScript
(function() {
var React, ToggleButton, ToggleButtonArray, button, div, ref;
React = require('react');
ToggleButton = React.createFactory(require('./toggle_button'));
ref = React.DOM, div = ref.div, button = ref.button;
ToggleButtonArray = React.createClass({
displayName: 'ToggleButtonArray',
propTypes: {
options: React.PropTypes.array.isRequired,
positionClass: React.PropTypes.string,
useTabs: React.PropTypes.bool,
compact: React.PropTypes.bool
},
getInitialState: function() {
return {
value: this.props.value
};
},
render: function() {
var buttons, className, compact, i, index, len, option, options, positionClass, ref1, useTabs, value;
ref1 = this.props, options = ref1.options, value = ref1.value, compact = ref1.compact, positionClass = ref1.positionClass, useTabs = ref1.useTabs;
className = 'toggle-array';
if (compact) {
className += ' compact';
}
if (positionClass != null) {
className += " " + positionClass;
}
buttons = [];
for (index = i = 0, len = options.length; i < len; index = ++i) {
option = options[index];
buttons.push(ToggleButton({
key: index,
ref: option.label,
useTabs: useTabs,
setFormData: this.setFormData,
option: option,
options: options,
selected: option.value === value
}));
}
return div({
className: className
}, buttons);
},
setFormData: function(value) {
return this.setState({
value: value
}, function() {
var base;
return typeof (base = this.props).onChange === "function" ? base.onChange(value, this.props.detail) : void 0;
});
},
getFormData: function() {
return this.state.value;
},
getValue: function() {
return this.getFormData();
}
});
module.exports = ToggleButtonArray;
}).call(this);