UNPKG

@uimkit/uikit-react

Version:

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

119 lines (116 loc) 6 kB
import { __awaiter, __generator, __assign } from 'tslib'; import { useRef, useEffect } from 'react'; import { useTranslationContext } from '../../../context/TranslationContext.js'; import { useUIKit } from '../../../context/UIKitContext.js'; import '../../../context/ComponentContext.js'; import { useChatActionContext } from '../../../context/ChatActionContext.js'; import '../../../context/MessageInputContext.js'; import '../../../context/UIMessageContext.js'; import '../../../context/ChatStateContext.js'; import { CONSTANT_DISPATCH_TYPE } from '../../../constants.js'; import '@emoji-mart/data'; import '../../../types/models.js'; import '../../../types/events.js'; import 'emoji-mart'; import '../../../context/EmojiContext.js'; import '../../EmptyStateIndicator/EmptyStateIndicator.js'; import '../../Icon/type.js'; import '../../Icon/config.js'; import './useHandleQuoteMessage.js'; import '@emoji-mart/data/i18n/zh.json'; import '@emoji-mart/data/i18n/en.json'; import '../../Plugins/index.js'; import '../../EmoticonItem/EmoticonItem.js'; import '../../UICommandItem/UICommandItem.js'; import '../../../node_modules/.pnpm/lodash.throttle@4.1.1/node_modules/lodash.throttle/index.js'; import '../../UIUserItem/UIUserItem.js'; import '../../../node_modules/.pnpm/react-popper@2.3.0_r6q5zrenym2zg7je7hgi674bti/node_modules/react-popper/lib/esm/Manager.js'; import 'react-dom'; import '../../../node_modules/.pnpm/warning@4.0.3/node_modules/warning/warning.js'; import '../../../node_modules/.pnpm/react-dropzone@14.2.3_react@18.2.0/node_modules/react-dropzone/dist/es/index.js'; import '../../UIChatAutoComplete/UIChatAutoComplete.js'; var useSubmitHandler = function (props, state, dispatch) { var clearEditingState = props.clearEditingState, message = props.message, overrideSubmitHandler = props.overrideSubmitHandler; var mentioned_users = state.mentioned_users, text = state.text; var activeConversation = useUIKit('useSubmitHandler').activeConversation; var _a = useChatActionContext('useSubmitHandler'), editMessage = _a.editMessage, sendMessage = _a.sendMessage, createTextMessage = _a.createTextMessage; useTranslationContext('useSubmitHandler').t; var textReference = useRef({ hasChanged: false, initialText: text }); useEffect(function () { if (!textReference.current.initialText.length) { textReference.current.initialText = text; return; } textReference.current.hasChanged = text !== textReference.current.initialText; }, [text]); // const { cloudCustomData } = useHandleQuoteMessage(); var handleSubmit = function (event) { return __awaiter(void 0, void 0, void 0, function () { var trimmedMessage, isEmptyMessage, actualMentionedUsers, updatedMessage, message_1, err_2; var _a; return __generator(this, function (_b) { switch (_b.label) { case 0: event === null || event === void 0 ? void 0 : event.preventDefault(); if (!state.text) { return [2 /*return*/]; } trimmedMessage = text.trim(); isEmptyMessage = trimmedMessage === ''; if (isEmptyMessage) return [2 /*return*/]; actualMentionedUsers = Array.from(new Set(mentioned_users.filter(function (_a) { var id = _a.id, name = _a.name; return text.includes("@".concat(id)) || text.includes("@".concat(name)); }))); updatedMessage = { mentioned_users: actualMentionedUsers, text: text, }; if (!message) return [3 /*break*/, 5]; _b.label = 1; case 1: _b.trys.push([1, 3, , 4]); return [4 /*yield*/, editMessage(message)]; case 2: _b.sent(); clearEditingState === null || clearEditingState === void 0 ? void 0 : clearEditingState(); dispatch({ type: CONSTANT_DISPATCH_TYPE.CLEAR }); return [3 /*break*/, 4]; case 3: _b.sent(); return [3 /*break*/, 4]; case 4: return [3 /*break*/, 11]; case 5: _b.trys.push([5, 10, , 11]); dispatch({ type: CONSTANT_DISPATCH_TYPE.CLEAR }); if (!overrideSubmitHandler) return [3 /*break*/, 7]; return [4 /*yield*/, overrideSubmitHandler(updatedMessage, activeConversation.id)]; case 6: _b.sent(); return [3 /*break*/, 9]; case 7: message_1 = (_a = createTextMessage(__assign({}, updatedMessage))) !== null && _a !== void 0 ? _a : updatedMessage; return [4 /*yield*/, sendMessage(message_1)]; case 8: _b.sent(); _b.label = 9; case 9: return [3 /*break*/, 11]; case 10: err_2 = _b.sent(); console.error(err_2); dispatch({ type: CONSTANT_DISPATCH_TYPE.SET_TEXT, getNewText: function () { return text; }, }); actualMentionedUsers === null || actualMentionedUsers === void 0 ? void 0 : actualMentionedUsers.forEach(function (user) { dispatch({ type: CONSTANT_DISPATCH_TYPE.ADD_MENTIONED_USER, user: user }); }); return [3 /*break*/, 11]; case 11: return [2 /*return*/]; } }); }); }; return { handleSubmit: handleSubmit }; }; export { useSubmitHandler }; //# sourceMappingURL=useSubmitHandler.js.map