ldx-widgets
Version:
widgets
78 lines (70 loc) • 2.22 kB
JavaScript
(function() {
var React, SelectPvrOption, div;
React = require('react');
div = React.DOM.div;
/*
Select Popover Option, see select_pvr.coffee for docs
*/
SelectPvrOption = React.createClass({
displayName: 'SelectPvrOption',
render: function() {
var className, disabled, hasSubLabel, isSelected, labelClass, lh, noWrapOptions, option, optionHeight, optionKey, ref;
ref = this.props, option = ref.option, isSelected = ref.isSelected, optionHeight = ref.optionHeight, hasSubLabel = ref.hasSubLabel, className = ref.className, noWrapOptions = ref.noWrapOptions, disabled = ref.disabled;
className = 'select-pvr-option';
if (isSelected) {
className += ' is-selected';
}
if (noWrapOptions) {
className += ' no-wrap';
}
if (disabled) {
className += ' is-disabled';
}
if (hasSubLabel) {
className += ' has-sublabel';
lh = optionHeight / 2;
} else {
lh = optionHeight;
}
labelClass = 'label';
if (option.info != null) {
labelClass += ' has-info';
}
optionKey = option.id || option.value;
return div({
key: optionKey,
className: className,
onClick: this.handleClick,
style: {
height: optionHeight,
lineHeight: lh + "px"
}
}, [
div({
key: 'label',
className: 'main-label'
}, [
option.info ? div({
key: 'info',
className: 'info'
}, option.info) : void 0, div({
key: 'label',
className: labelClass
}, option.label), option.subLabel ? div({
key: 'sub-label',
className: 'sub-label'
}, option.subLabel) : void 0
])
]);
},
handleClick: function(e) {
var disabled, handleClick, isSelected, option, ref;
e.stopPropagation();
ref = this.props, handleClick = ref.handleClick, option = ref.option, isSelected = ref.isSelected, disabled = ref.disabled;
if (!(isSelected || disabled)) {
return handleClick(option);
}
}
});
module.exports = SelectPvrOption;
}).call(this);