react-bootstrap
Version:
Bootstrap 3 components build with React
79 lines (63 loc) • 2.33 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var MenuItem = _react2['default'].createClass({
displayName: 'MenuItem',
propTypes: {
header: _react2['default'].PropTypes.bool,
divider: _react2['default'].PropTypes.bool,
href: _react2['default'].PropTypes.string,
title: _react2['default'].PropTypes.string,
target: _react2['default'].PropTypes.string,
onSelect: _react2['default'].PropTypes.func,
eventKey: _react2['default'].PropTypes.any,
active: _react2['default'].PropTypes.bool
},
getDefaultProps: function getDefaultProps() {
return {
href: '#',
active: false
};
},
handleClick: function handleClick(e) {
if (this.props.onSelect) {
e.preventDefault();
this.props.onSelect(this.props.eventKey, this.props.href, this.props.target);
}
},
renderAnchor: function renderAnchor() {
return _react2['default'].createElement(
'a',
{ onClick: this.handleClick, href: this.props.href, target: this.props.target, title: this.props.title, tabIndex: '-1' },
this.props.children
);
},
render: function render() {
var classes = {
'dropdown-header': this.props.header,
'divider': this.props.divider,
'active': this.props.active
};
var children = null;
if (this.props.header) {
children = this.props.children;
} else if (!this.props.divider) {
children = this.renderAnchor();
}
return _react2['default'].createElement(
'li',
_extends({}, this.props, { role: 'presentation', title: null, href: null,
className: (0, _classnames2['default'])(this.props.className, classes) }),
children
);
}
});
exports['default'] = MenuItem;
module.exports = exports['default'];