UNPKG

@uimkit/uikit-react

Version:

<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>

64 lines (57 loc) 4.54 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib = require('tslib'); var React = require('react'); require('../AutoCompleteTextarea/Item.js'); var ComponentContext = require('../../context/ComponentContext.js'); var TranslationContext = require('../../context/TranslationContext.js'); var Textarea = require('../AutoCompleteTextarea/Textarea.js'); require('../../node_modules/react-is/index.js'); var LoadingIndicator = require('../Loading/LoadingIndicator.js'); var MessageInputContext = require('../../context/MessageInputContext.js'); var emojiMart = require('emoji-mart'); require('../../context/UIKitContext.js'); require('../../context/ChatActionContext.js'); require('../../context/UIMessageContext.js'); require('../../context/ChatStateContext.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var UnMemoizedChatAutoComplete = function (props) { var _a = ComponentContext.useComponentContext('ChatAutoComplete'), SuggestionItem = _a.AutocompleteSuggestionItem, SuggestionList = _a.AutocompleteSuggestionList; var t = TranslationContext.useTranslationContext('UIChatAutoComplete').t; var messageInput = MessageInputContext.useMessageInputContext('ChatAutoComplete'); var disabled = messageInput.disabled, innerRef = messageInput.textareaRef; var placeholder = props.placeholder || t('输入消息'); var emojiReplace = props.wordReplace ? function (word) { var _a; return (_a = props.wordReplace) === null || _a === void 0 ? void 0 : _a.call(props, word); } : function (word) { return tslib.__awaiter(void 0, void 0, void 0, function () { var found, emoji; var _a; return tslib.__generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, emojiMart.SearchIndex.search(word)]; case 1: found = (_a = (_b.sent())) !== null && _a !== void 0 ? _a : []; emoji = found .filter(Boolean) .slice(0, 10) .find(function (_a /* Emoji */) { var emoticons = _a.emoticons; return !!(emoticons === null || emoticons === void 0 ? void 0 : emoticons.includes(word)); }); if (!emoji || !('native' in emoji)) return [2 /*return*/, null]; return [2 /*return*/, emoji.native]; } }); }); }; var updateInnerRef = React.useCallback(function (ref) { if (innerRef) { innerRef.current = ref; } }, [innerRef]); return (React__default["default"].createElement(Textarea.ReactTextareaAutocomplete, { additionalTextareaProps: /*messageInput.additionalTextareaProps*/ {}, "aria-label": placeholder !== null && placeholder !== void 0 ? placeholder : 'placeholder', className: 'uim-message-textarea', closeCommandsList: function () { } /*messageInput.closeCommandsList*/, closeMentionsList: function () { } /*messageInput.closeMentionsList*/, containerClassName: 'uim-textarea uim-message-textarea-react-host', disabled: disabled, disableMentions: false /*messageInput.disableMentions*/, dropdownClassName: 'uim-emojisearch', grow: false /*messageInput.grow*/, handleSubmit: props.handleSubmit || messageInput.handleSubmit, innerRef: updateInnerRef, itemClassName: 'uim-emojisearch__item', listClassName: 'uim-emojisearch__list', loadingComponent: LoadingIndicator.LoadingIndicator, maxRows: 3 /*messageInput.maxRows*/, minChar: 0, onBlur: props.onBlur, onChange: props.onChange || messageInput.handleChange, onFocus: props.onFocus, onPaste: props.onPaste /* TODO || messageInput.onPaste*/, placeholder: placeholder, replaceWord: emojiReplace, rows: props.rows || 3, shouldSubmit: messageInput.shouldSubmit, showCommandsList: false /*messageInput.showCommandsList*/, showMentionsList: false /*messageInput.showMentionsList*/, SuggestionItem: SuggestionItem, SuggestionList: SuggestionList, trigger: messageInput.autocompleteTriggers || {}, value: props.value || messageInput.text })); }; var UIChatAutoComplete = React__default["default"].memo(UnMemoizedChatAutoComplete); exports.UIChatAutoComplete = UIChatAutoComplete; //# sourceMappingURL=UIChatAutoComplete.js.map