UNPKG

@uimkit/uikit-react

Version:

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

126 lines (120 loc) 4.86 kB
import React__default from 'react'; import { ConversationType, MessageType } from '../../types/models.js'; import '../../types/events.js'; import { formatEmojiString } from '../UIMessage/utils/emojiMap.js'; var getDisplayTitle = function (conversation, searchValue, highlightColor) { if (highlightColor === void 0) { highlightColor = '#147AFF'; } var _a = getMessageProfile(conversation), name = _a.name, nickname = _a.nickname; conversation.contact; var type = conversation.type; var title = ''; switch (type) { case ConversationType.Private: // title = nick || userID; title = name !== null && name !== void 0 ? name : nickname; break; case ConversationType.Group: // title = name || groupID; title = name !== null && name !== void 0 ? name : nickname; break; default: title = ''; } var handleTitle = function (str) { var tempStr = str.toLocaleLowerCase(); var pos = tempStr.indexOf(searchValue.toLocaleLowerCase()); return (React__default.createElement("div", null, React__default.createElement("span", null, str.slice(0, pos)), React__default.createElement("span", { style: { color: highlightColor } }, str.slice(pos, pos + searchValue.length)), React__default.createElement("span", null, str.slice(pos + searchValue.length)))); }; return !searchValue ? title : handleTitle(title); }; var getDisplayImage = function (conversation) { var type = conversation.type; var avatar = getMessageProfile(conversation).avatar; var displayImage = avatar; if (!displayImage) { switch (type) { case ConversationType.Private: // displayImage = defaultUserAvatar; displayImage = ''; break; case ConversationType.Group: // displayImage = defaultGroupAvatarWork; displayImage = ''; break; default: // displayImage = defaultGroupAvatarWork; displayImage = ''; } } return displayImage; }; var getDisplayMessage = function (conversation, myProfile) { /* const { last_message, type } = conversation; const { fromAccount, nick, nameCard, revoked, } = last_message; let from = ''; switch (type) { case ConversationType.Group: from = last_message?.fromAccount === myProfile?.id ? 'You: ' : `${nameCard || nick || fromAccount}: `; break; case ConversationType.Private: from = revoked ? 'you ' : ''; break; default: } return ( <div style={{ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', }} > <span>{from}</span> <span>{last_message.revoked ? 'recalled a message' : formatEmojiString( //last_message.messageForShow last_message.text, 1)}</span> </div> ); */ var _a, _b; conversation.name; return (React__default.createElement("div", { style: { overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', } }, React__default.createElement("span", null, conversation.last_message && (((_a = conversation.last_message) === null || _a === void 0 ? void 0 : _a.revoked) ? '撤回了一条消息' : (React__default.createElement(React__default.Fragment, null, conversation.last_message.type === MessageType.Text && formatEmojiString((_b = conversation.last_message) === null || _b === void 0 ? void 0 : _b.text, 1), conversation.last_message.type === MessageType.Image && '[图片]', conversation.last_message.type === MessageType.Video && '[视频]', conversation.last_message.type === MessageType.File && '[文件]', conversation.last_message.type === MessageType.Audio && '[语音]', conversation.last_message.type === MessageType.Location && '[位置]')))))); }; var getMessageProfile = function (conversation) { if (!conversation) return null; var result; var type = conversation.type; var groupProfile = {}; var userProfile = conversation.contact; switch (type) { case ConversationType.Private: result = userProfile !== null && userProfile !== void 0 ? userProfile : {}; break; case ConversationType.Group: result = groupProfile !== null && groupProfile !== void 0 ? groupProfile : {}; break; case ConversationType.System: default: result = {}; } return result; }; export { getDisplayImage, getDisplayMessage, getDisplayTitle, getMessageProfile }; //# sourceMappingURL=utils.js.map