UNPKG

ldx-widgets

Version:

widgets

69 lines (62 loc) 1.99 kB
(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);