react-bootstrap
Version:
Bootstrap 3 components build with React
86 lines (68 loc) • 2.37 kB
JavaScript
'use strict';
var _extends = require('babel-runtime/helpers/extends')['default'];
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
exports.__esModule = true;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _SafeAnchor = require('./SafeAnchor');
var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
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,
disabled: _react2['default'].PropTypes.bool
},
getDefaultProps: function getDefaultProps() {
return {
active: false
};
},
handleClick: function handleClick(e) {
if (this.props.disabled) {
e.preventDefault();
return;
}
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(
_SafeAnchor2['default'],
{ 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,
'disabled': this.props.disabled
};
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: _classnames2['default'](this.props.className, classes) }),
children
);
}
});
exports['default'] = MenuItem;
module.exports = exports['default'];