Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  3. import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
  4. import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
  5. import React from 'react';
  6. import PropTypes from 'prop-types';
  7. import classNames from 'classnames';
  8. import { mapToCssModules, omit, tagPropType } from './utils';
  9. var propTypes = {
  10. children: PropTypes.node,
  11. active: PropTypes.bool,
  12. disabled: PropTypes.bool,
  13. divider: PropTypes.bool,
  14. tag: tagPropType,
  15. header: PropTypes.bool,
  16. onClick: PropTypes.func,
  17. className: PropTypes.string,
  18. cssModule: PropTypes.object,
  19. toggle: PropTypes.bool
  20. };
  21. var contextTypes = {
  22. toggle: PropTypes.func
  23. };
  24. var defaultProps = {
  25. tag: 'button',
  26. toggle: true
  27. };
  28. var DropdownItem =
  29. /*#__PURE__*/
  30. function (_React$Component) {
  31. _inheritsLoose(DropdownItem, _React$Component);
  32. function DropdownItem(props) {
  33. var _this;
  34. _this = _React$Component.call(this, props) || this;
  35. _this.onClick = _this.onClick.bind(_assertThisInitialized(_assertThisInitialized(_this)));
  36. _this.getTabIndex = _this.getTabIndex.bind(_assertThisInitialized(_assertThisInitialized(_this)));
  37. return _this;
  38. }
  39. var _proto = DropdownItem.prototype;
  40. _proto.onClick = function onClick(e) {
  41. if (this.props.disabled || this.props.header || this.props.divider) {
  42. e.preventDefault();
  43. return;
  44. }
  45. if (this.props.onClick) {
  46. this.props.onClick(e);
  47. }
  48. if (this.props.toggle) {
  49. this.context.toggle(e);
  50. }
  51. };
  52. _proto.getTabIndex = function getTabIndex() {
  53. if (this.props.disabled || this.props.header || this.props.divider) {
  54. return '-1';
  55. }
  56. return '0';
  57. };
  58. _proto.render = function render() {
  59. var tabIndex = this.getTabIndex();
  60. var role = tabIndex > -1 ? 'menuitem' : undefined;
  61. var _omit = omit(this.props, ['toggle']),
  62. className = _omit.className,
  63. cssModule = _omit.cssModule,
  64. divider = _omit.divider,
  65. Tag = _omit.tag,
  66. header = _omit.header,
  67. active = _omit.active,
  68. props = _objectWithoutPropertiesLoose(_omit, ["className", "cssModule", "divider", "tag", "header", "active"]);
  69. var classes = mapToCssModules(classNames(className, {
  70. disabled: props.disabled,
  71. 'dropdown-item': !divider && !header,
  72. active: active,
  73. 'dropdown-header': header,
  74. 'dropdown-divider': divider
  75. }), cssModule);
  76. if (Tag === 'button') {
  77. if (header) {
  78. Tag = 'h6';
  79. } else if (divider) {
  80. Tag = 'div';
  81. } else if (props.href) {
  82. Tag = 'a';
  83. }
  84. }
  85. return React.createElement(Tag, _extends({
  86. type: Tag === 'button' && (props.onClick || this.props.toggle) ? 'button' : undefined
  87. }, props, {
  88. tabIndex: tabIndex,
  89. role: role,
  90. className: classes,
  91. onClick: this.onClick
  92. }));
  93. };
  94. return DropdownItem;
  95. }(React.Component);
  96. DropdownItem.propTypes = propTypes;
  97. DropdownItem.defaultProps = defaultProps;
  98. DropdownItem.contextTypes = contextTypes;
  99. export default DropdownItem;