DropdownMenu.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = void 0;
  8. var _rcMenu = _interopRequireWildcard(require("rc-menu"));
  9. var React = _interopRequireWildcard(require("react"));
  10. var _MentionsContext = _interopRequireDefault(require("./MentionsContext"));
  11. /**
  12. * We only use Menu to display the candidate.
  13. * The focus is controlled by textarea to make accessibility easy.
  14. */
  15. function DropdownMenu(props) {
  16. var _React$useContext = React.useContext(_MentionsContext.default),
  17. notFoundContent = _React$useContext.notFoundContent,
  18. activeIndex = _React$useContext.activeIndex,
  19. setActiveIndex = _React$useContext.setActiveIndex,
  20. selectOption = _React$useContext.selectOption,
  21. onFocus = _React$useContext.onFocus,
  22. onBlur = _React$useContext.onBlur,
  23. onScroll = _React$useContext.onScroll;
  24. var prefixCls = props.prefixCls,
  25. options = props.options;
  26. var activeOption = options[activeIndex] || {};
  27. return /*#__PURE__*/React.createElement(_rcMenu.default, {
  28. prefixCls: "".concat(prefixCls, "-menu"),
  29. activeKey: activeOption.key,
  30. onSelect: function onSelect(_ref) {
  31. var key = _ref.key;
  32. var option = options.find(function (_ref2) {
  33. var optionKey = _ref2.key;
  34. return optionKey === key;
  35. });
  36. selectOption(option);
  37. },
  38. onFocus: onFocus,
  39. onBlur: onBlur,
  40. onScroll: onScroll
  41. }, options.map(function (option, index) {
  42. var key = option.key,
  43. disabled = option.disabled,
  44. className = option.className,
  45. style = option.style,
  46. label = option.label;
  47. return /*#__PURE__*/React.createElement(_rcMenu.MenuItem, {
  48. key: key,
  49. disabled: disabled,
  50. className: className,
  51. style: style,
  52. onMouseEnter: function onMouseEnter() {
  53. setActiveIndex(index);
  54. }
  55. }, label);
  56. }), !options.length && /*#__PURE__*/React.createElement(_rcMenu.MenuItem, {
  57. disabled: true
  58. }, notFoundContent));
  59. }
  60. var _default = exports.default = DropdownMenu;