UNPKG

3.22 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports.default = void 0;
11
12var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
14var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
16var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
18var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
20var _rcMenu = _interopRequireWildcard(require("rc-menu"));
21
22var React = _interopRequireWildcard(require("react"));
23
24var _MentionsContext = require("./MentionsContext");
25
26/**
27 * We only use Menu to display the candidate.
28 * The focus is controlled by textarea to make accessibility easy.
29 */
30var DropdownMenu = /*#__PURE__*/function (_React$Component) {
31 (0, _inherits2.default)(DropdownMenu, _React$Component);
32
33 var _super = (0, _createSuper2.default)(DropdownMenu);
34
35 function DropdownMenu() {
36 var _this;
37
38 (0, _classCallCheck2.default)(this, DropdownMenu);
39 _this = _super.apply(this, arguments);
40
41 _this.renderDropdown = function (_ref) {
42 var notFoundContent = _ref.notFoundContent,
43 activeIndex = _ref.activeIndex,
44 setActiveIndex = _ref.setActiveIndex,
45 selectOption = _ref.selectOption,
46 onFocus = _ref.onFocus,
47 onBlur = _ref.onBlur;
48 var _this$props = _this.props,
49 prefixCls = _this$props.prefixCls,
50 options = _this$props.options;
51 var activeOption = options[activeIndex] || {};
52 return /*#__PURE__*/React.createElement(_rcMenu.default, {
53 prefixCls: "".concat(prefixCls, "-menu"),
54 activeKey: activeOption.key,
55 onSelect: function onSelect(_ref2) {
56 var key = _ref2.key;
57 var option = options.find(function (_ref3) {
58 var optionKey = _ref3.key;
59 return optionKey === key;
60 });
61 selectOption(option);
62 },
63 onFocus: onFocus,
64 onBlur: onBlur
65 }, options.map(function (option, index) {
66 var key = option.key,
67 disabled = option.disabled,
68 children = option.children,
69 className = option.className,
70 style = option.style;
71 return /*#__PURE__*/React.createElement(_rcMenu.MenuItem, {
72 key: key,
73 disabled: disabled,
74 className: className,
75 style: style,
76 onMouseEnter: function onMouseEnter() {
77 setActiveIndex(index);
78 }
79 }, children);
80 }), !options.length && /*#__PURE__*/React.createElement(_rcMenu.MenuItem, {
81 disabled: true
82 }, notFoundContent));
83 };
84
85 return _this;
86 }
87
88 (0, _createClass2.default)(DropdownMenu, [{
89 key: "render",
90 value: function render() {
91 return /*#__PURE__*/React.createElement(_MentionsContext.MentionsContextConsumer, null, this.renderDropdown);
92 }
93 }]);
94 return DropdownMenu;
95}(React.Component);
96
97var _default = DropdownMenu;
98exports.default = _default;
\No newline at end of file