UNPKG

3.69 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
14
15var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16
17var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
18
19var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20
21var _inherits2 = require('babel-runtime/helpers/inherits');
22
23var _inherits3 = _interopRequireDefault(_inherits2);
24
25var _classnames = require('classnames');
26
27var _classnames2 = _interopRequireDefault(_classnames);
28
29var _react = require('react');
30
31var _react2 = _interopRequireDefault(_react);
32
33var _propTypes = require('prop-types');
34
35var _propTypes2 = _interopRequireDefault(_propTypes);
36
37var _SafeAnchor = require('./SafeAnchor');
38
39var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
40
41var _createChainedFunction = require('./utils/createChainedFunction');
42
43var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
44
45function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
46
47var propTypes = {
48 active: _propTypes2.default.bool,
49 disabled: _propTypes2.default.bool,
50 role: _propTypes2.default.string,
51 href: _propTypes2.default.string,
52 onClick: _propTypes2.default.func,
53 onSelect: _propTypes2.default.func,
54 eventKey: _propTypes2.default.any
55};
56
57var defaultProps = {
58 active: false,
59 disabled: false
60};
61
62var NavItem = function (_React$Component) {
63 (0, _inherits3.default)(NavItem, _React$Component);
64
65 function NavItem(props, context) {
66 (0, _classCallCheck3.default)(this, NavItem);
67
68 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
69
70 _this.handleClick = _this.handleClick.bind(_this);
71 return _this;
72 }
73
74 NavItem.prototype.handleClick = function handleClick(e) {
75 if (this.props.disabled) {
76 e.preventDefault();
77 return;
78 }
79
80 if (this.props.onSelect) {
81 this.props.onSelect(this.props.eventKey, e);
82 }
83 };
84
85 NavItem.prototype.render = function render() {
86 var _props = this.props,
87 active = _props.active,
88 disabled = _props.disabled,
89 onClick = _props.onClick,
90 className = _props.className,
91 style = _props.style,
92 props = (0, _objectWithoutProperties3.default)(_props, ['active', 'disabled', 'onClick', 'className', 'style']);
93
94
95 delete props.onSelect;
96 delete props.eventKey;
97
98 // These are injected down by `<Nav>` for building `<SubNav>`s.
99 delete props.activeKey;
100 delete props.activeHref;
101
102 if (!props.role) {
103 if (props.href === '#') {
104 props.role = 'button';
105 }
106 } else if (props.role === 'tab') {
107 props['aria-selected'] = active;
108 }
109
110 return _react2.default.createElement(
111 'li',
112 {
113 role: 'presentation',
114 className: (0, _classnames2.default)(className, { active: active, disabled: disabled }),
115 style: style
116 },
117 _react2.default.createElement(_SafeAnchor2.default, (0, _extends3.default)({}, props, {
118 disabled: disabled,
119 onClick: (0, _createChainedFunction2.default)(onClick, this.handleClick)
120 }))
121 );
122 };
123
124 return NavItem;
125}(_react2.default.Component);
126
127NavItem.propTypes = propTypes;
128NavItem.defaultProps = defaultProps;
129
130exports.default = NavItem;
131module.exports = exports['default'];
\No newline at end of file