You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

93 lines
2.7 KiB

  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  7. var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
  8. var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
  9. var _react = _interopRequireDefault(require("react"));
  10. var _propTypes = _interopRequireDefault(require("prop-types"));
  11. var _classnames = _interopRequireDefault(require("classnames"));
  12. var _utils = require("./utils");
  13. var propTypes = {
  14. tag: _utils.tagPropType,
  15. innerRef: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func, _propTypes.default.string]),
  16. disabled: _propTypes.default.bool,
  17. active: _propTypes.default.bool,
  18. className: _propTypes.default.string,
  19. cssModule: _propTypes.default.object,
  20. onClick: _propTypes.default.func,
  21. href: _propTypes.default.any
  22. };
  23. var defaultProps = {
  24. tag: 'a'
  25. };
  26. var NavLink =
  27. /*#__PURE__*/
  28. function (_React$Component) {
  29. (0, _inheritsLoose2.default)(NavLink, _React$Component);
  30. function NavLink(props) {
  31. var _this;
  32. _this = _React$Component.call(this, props) || this;
  33. _this.onClick = _this.onClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
  34. return _this;
  35. }
  36. var _proto = NavLink.prototype;
  37. _proto.onClick = function onClick(e) {
  38. if (this.props.disabled) {
  39. e.preventDefault();
  40. return;
  41. }
  42. if (this.props.href === '#') {
  43. e.preventDefault();
  44. }
  45. if (this.props.onClick) {
  46. this.props.onClick(e);
  47. }
  48. };
  49. _proto.render = function render() {
  50. var _this$props = this.props,
  51. className = _this$props.className,
  52. cssModule = _this$props.cssModule,
  53. active = _this$props.active,
  54. Tag = _this$props.tag,
  55. innerRef = _this$props.innerRef,
  56. attributes = (0, _objectWithoutPropertiesLoose2.default)(_this$props, ["className", "cssModule", "active", "tag", "innerRef"]);
  57. var classes = (0, _utils.mapToCssModules)((0, _classnames.default)(className, 'nav-link', {
  58. disabled: attributes.disabled,
  59. active: active
  60. }), cssModule);
  61. return _react.default.createElement(Tag, (0, _extends2.default)({}, attributes, {
  62. ref: innerRef,
  63. onClick: this.onClick,
  64. className: classes
  65. }));
  66. };
  67. return NavLink;
  68. }(_react.default.Component);
  69. NavLink.propTypes = propTypes;
  70. NavLink.defaultProps = defaultProps;
  71. var _default = NavLink;
  72. exports.default = _default;