Code coverage report for src/components/multi-select.cjsx

Statements: 35% (7 / 20)      Branches: 0% (0 / 4)      Functions: 0% (0 / 4)      Lines: 35% (7 / 20)      Ignored: none     

All files » src/components/ » multi-select.cjsx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59                                                                                                        
var BS, Icon, MultiSelect, React, classnames;
 
React = require('react');
 
BS = require('react-bootstrap');
 
classnames = require('classnames');
 
Icon = require('./icon');
 
MultiSelect = React.createClass({displayName: "MultiSelect",
  propTypes: {
    title: React.PropTypes.string.isRequired,
    className: React.PropTypes.string,
    selections: React.PropTypes.arrayOf(React.PropTypes.shape({
      id: React.PropTypes.string,
      title: React.PropTypes.string,
      selected: React.PropTypes.bool
    })).isRequired,
    onSelect: React.PropTypes.func
  },
  onSelect: function(selection) {
    var base;
    return typeof (base = this.props).onSelect === "function" ? base.onSelect(_.findWhere(this.props.selections, {
      id: selection
    })) : void 0;
  },
  renderMenuSelection: function(selection) {
    return React.createElement(BS.MenuItem, {
      "key": selection.id,
      "eventKey": selection.id
    }, React.createElement(Icon, {
      "type": (selection.selected ? 'check-square-o' : 'square-o')
    }), selection.title);
  },
  render: function() {
    var classNames, selection;
    classNames = classnames('multi-select', this.props.className);
    return React.createElement(BS.DropdownButton, {
      "navItem": this.props.navItem,
      "className": classNames,
      "onSelect": this.onSelect,
      "title": this.props.title
    }, (function() {
      var i, len, ref, results;
      ref = this.props.selections;
      results = [];
      for (i = 0, len = ref.length; i < len; i++) {
        selection = ref[i];
        results.push(this.renderMenuSelection(selection));
      }
      return results;
    }).call(this));
  }
});
 
module.exports = MultiSelect;