@uimkit/uikit-react
Version:
<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>
64 lines (57 loc) • 4.54 kB
JavaScript
;
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