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