@talend/react-bootstrap
Version:
Bootstrap 3 components built with React
81 lines (79 loc) • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classnames = _interopRequireDefault(require("classnames"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _SafeAnchor = _interopRequireDefault(require("./SafeAnchor"));
var _createChainedFunction = _interopRequireDefault(require("./utils/createChainedFunction"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const propTypes = {
active: _propTypes.default.bool,
disabled: _propTypes.default.bool,
role: _propTypes.default.string,
href: _propTypes.default.string,
onClick: _propTypes.default.func,
onSelect: _propTypes.default.func,
eventKey: _propTypes.default.any
};
const defaultProps = {
active: false,
disabled: false
};
class NavItem extends _react.default.Component {
constructor(props, context) {
super(props, context);
this.handleClick = this.handleClick.bind(this);
}
handleClick(e) {
if (this.props.disabled) {
e.preventDefault();
return;
}
if (this.props.onSelect) {
this.props.onSelect(this.props.eventKey, e);
}
}
render() {
const {
active,
disabled,
onClick,
className,
style,
...props
} = this.props;
delete props.onSelect;
delete props.eventKey;
// These are injected down by `<Nav>` for building `<SubNav>`s.
delete props.activeKey;
delete props.activeHref;
if (!props.role) {
if (props.href === '#') {
props.role = 'button';
}
} else if (props.role === 'tab') {
props['aria-selected'] = active;
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
role: "presentation",
className: (0, _classnames.default)(className, {
active,
disabled
}),
style: style,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SafeAnchor.default, {
...props,
disabled: disabled,
onClick: (0, _createChainedFunction.default)(onClick, this.handleClick)
})
});
}
}
NavItem.propTypes = propTypes;
NavItem.defaultProps = defaultProps;
var _default = exports.default = NavItem;
//# sourceMappingURL=NavItem.js.map