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