@uimkit/uikit-react
Version:
<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>
137 lines (127 loc) • 5.37 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var models = require('../../types/models.js');
require('../../types/events.js');
var emojiMap = require('../UIMessage/utils/emojiMap.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
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 models.ConversationType.Private:
// title = nick || userID;
title = name !== null && name !== void 0 ? name : nickname;
break;
case models.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["default"].createElement("div", null,
React__default["default"].createElement("span", null, str.slice(0, pos)),
React__default["default"].createElement("span", { style: { color: highlightColor } }, str.slice(pos, pos + searchValue.length)),
React__default["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 models.ConversationType.Private:
// displayImage = defaultUserAvatar;
displayImage = '';
break;
case models.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["default"].createElement("div", { style: {
overflow: 'hidden',
textOverflow: 'ellipsis',
whiteSpace: 'nowrap',
} },
React__default["default"].createElement("span", null, conversation.last_message && (((_a = conversation.last_message) === null || _a === void 0 ? void 0 : _a.revoked) ? '撤回了一条消息' : (React__default["default"].createElement(React__default["default"].Fragment, null,
conversation.last_message.type === models.MessageType.Text && emojiMap.formatEmojiString((_b = conversation.last_message) === null || _b === void 0 ? void 0 : _b.text, 1),
conversation.last_message.type === models.MessageType.Image && '[图片]',
conversation.last_message.type === models.MessageType.Video && '[视频]',
conversation.last_message.type === models.MessageType.File && '[文件]',
conversation.last_message.type === models.MessageType.Audio && '[语音]',
conversation.last_message.type === models.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 models.ConversationType.Private:
result = userProfile !== null && userProfile !== void 0 ? userProfile : {};
break;
case models.ConversationType.Group:
result = groupProfile !== null && groupProfile !== void 0 ? groupProfile : {};
break;
case models.ConversationType.System:
default:
result = {};
}
return result;
};
exports.getDisplayImage = getDisplayImage;
exports.getDisplayMessage = getDisplayMessage;
exports.getDisplayTitle = getDisplayTitle;
exports.getMessageProfile = getMessageProfile;
//# sourceMappingURL=utils.js.map