UNPKG

3.32 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.default = void 0;
7
8var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends"));
9
10var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutPropertiesLoose"));
11
12var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inheritsLoose"));
13
14var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
15
16var _classnames = _interopRequireDefault(require("classnames"));
17
18var _react = _interopRequireDefault(require("react"));
19
20var _propTypes = _interopRequireDefault(require("prop-types"));
21
22var _SafeAnchor = _interopRequireDefault(require("./SafeAnchor"));
23
24var _createChainedFunction = _interopRequireDefault(require("./utils/createChainedFunction"));
25
26var propTypes = {
27 active: _propTypes.default.bool,
28 disabled: _propTypes.default.bool,
29 role: _propTypes.default.string,
30 href: _propTypes.default.string,
31 onClick: _propTypes.default.func,
32 onSelect: _propTypes.default.func,
33 eventKey: _propTypes.default.any
34};
35var defaultProps = {
36 active: false,
37 disabled: false
38};
39
40var NavItem =
41/*#__PURE__*/
42function (_React$Component) {
43 (0, _inheritsLoose2.default)(NavItem, _React$Component);
44
45 function NavItem(props, context) {
46 var _this;
47
48 _this = _React$Component.call(this, props, context) || this;
49 _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
50 return _this;
51 }
52
53 var _proto = NavItem.prototype;
54
55 _proto.handleClick = function handleClick(e) {
56 if (this.props.disabled) {
57 e.preventDefault();
58 return;
59 }
60
61 if (this.props.onSelect) {
62 this.props.onSelect(this.props.eventKey, e);
63 }
64 };
65
66 _proto.render = function render() {
67 var _this$props = this.props,
68 active = _this$props.active,
69 disabled = _this$props.disabled,
70 onClick = _this$props.onClick,
71 className = _this$props.className,
72 style = _this$props.style,
73 props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, ["active", "disabled", "onClick", "className", "style"]);
74 delete props.onSelect;
75 delete props.eventKey; // These are injected down by `<Nav>` for building `<SubNav>`s.
76
77 delete props.activeKey;
78 delete props.activeHref;
79
80 if (!props.role) {
81 if (props.href === '#') {
82 props.role = 'button';
83 }
84 } else if (props.role === 'tab') {
85 props['aria-selected'] = active;
86 }
87
88 return _react.default.createElement("li", {
89 role: "presentation",
90 className: (0, _classnames.default)(className, {
91 active: active,
92 disabled: disabled
93 }),
94 style: style
95 }, _react.default.createElement(_SafeAnchor.default, (0, _extends2.default)({}, props, {
96 disabled: disabled,
97 onClick: (0, _createChainedFunction.default)(onClick, this.handleClick)
98 })));
99 };
100
101 return NavItem;
102}(_react.default.Component);
103
104NavItem.propTypes = propTypes;
105NavItem.defaultProps = defaultProps;
106var _default = NavItem;
107exports.default = _default;
108module.exports = exports["default"];
\No newline at end of file