UNPKG

@uimkit/uikit-react

Version:

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

123 lines (118 loc) 6.2 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib = require('tslib'); var React = require('react'); var TranslationContext = require('../../../context/TranslationContext.js'); var UIKitContext = require('../../../context/UIKitContext.js'); require('../../../context/ComponentContext.js'); var ChatActionContext = require('../../../context/ChatActionContext.js'); require('../../../context/MessageInputContext.js'); require('../../../context/UIMessageContext.js'); require('../../../context/ChatStateContext.js'); var constants = require('../../../constants.js'); require('@emoji-mart/data'); require('../../../types/models.js'); require('../../../types/events.js'); require('emoji-mart'); require('../../../context/EmojiContext.js'); require('../../EmptyStateIndicator/EmptyStateIndicator.js'); require('../../Icon/type.js'); require('../../Icon/config.js'); require('./useHandleQuoteMessage.js'); require('@emoji-mart/data/i18n/zh.json'); require('@emoji-mart/data/i18n/en.json'); require('../../Plugins/index.js'); require('../../EmoticonItem/EmoticonItem.js'); require('../../UICommandItem/UICommandItem.js'); require('../../../node_modules/.pnpm/lodash.throttle@4.1.1/node_modules/lodash.throttle/index.js'); require('../../UIUserItem/UIUserItem.js'); require('../../../node_modules/.pnpm/react-popper@2.3.0_r6q5zrenym2zg7je7hgi674bti/node_modules/react-popper/lib/esm/Manager.js'); require('react-dom'); require('../../../node_modules/.pnpm/warning@4.0.3/node_modules/warning/warning.js'); require('../../../node_modules/.pnpm/react-dropzone@14.2.3_react@18.2.0/node_modules/react-dropzone/dist/es/index.js'); require('../../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 = UIKitContext.useUIKit('useSubmitHandler').activeConversation; var _a = ChatActionContext.useChatActionContext('useSubmitHandler'), editMessage = _a.editMessage, sendMessage = _a.sendMessage, createTextMessage = _a.createTextMessage; TranslationContext.useTranslationContext('useSubmitHandler').t; var textReference = React.useRef({ hasChanged: false, initialText: text }); React.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 tslib.__awaiter(void 0, void 0, void 0, function () { var trimmedMessage, isEmptyMessage, actualMentionedUsers, updatedMessage, message_1, err_2; var _a; return tslib.__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: constants.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: constants.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(tslib.__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: constants.CONSTANT_DISPATCH_TYPE.SET_TEXT, getNewText: function () { return text; }, }); actualMentionedUsers === null || actualMentionedUsers === void 0 ? void 0 : actualMentionedUsers.forEach(function (user) { dispatch({ type: constants.CONSTANT_DISPATCH_TYPE.ADD_MENTIONED_USER, user: user }); }); return [3 /*break*/, 11]; case 11: return [2 /*return*/]; } }); }); }; return { handleSubmit: handleSubmit }; }; exports.useSubmitHandler = useSubmitHandler; //# sourceMappingURL=useSubmitHandler.js.map