@uimkit/uikit-react
Version:
<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>
54 lines (51 loc) • 3.58 kB
JavaScript
import { __assign } from 'tslib';
import React__default, { useState, useEffect } from 'react';
import { useTranslationContext } from '../../context/TranslationContext.js';
import { useUIKit } from '../../context/UIKitContext.js';
import '../../context/ComponentContext.js';
import '../../context/ChatActionContext.js';
import '../../context/MessageInputContext.js';
import '../../context/UIMessageContext.js';
import '../../context/ChatStateContext.js';
import { UIConversationPreviewContent } from './UIConversationPreviewContent.js';
import '../../types/models.js';
import '../../types/events.js';
import { getDisplayImage, getDisplayTitle, getDisplayMessage } from './utils.js';
import { useIMAccount } from '../../hooks/useIMAccount.js';
import '../Icon/type.js';
import '../Icon/config.js';
import { getDateString } from '../../i18n/utils.js';
function UIConversationPreview(props) {
var activeConversation = props.activeConversation, conversation = props.conversation, _a = props.Preview, Preview = _a === void 0 ? UIConversationPreviewContent : _a, searchValue = props.searchValue, conversationUpdateCount = props.conversationUpdateCount;
var setActiveConversation = useUIKit('ConversationPreview').setActiveConversation;
useIMAccount(activeConversation === null || activeConversation === void 0 ? void 0 : activeConversation.accountId);
var _b = useState(getDisplayImage(conversation)), displayImage = _b[0], setDisplayImage = _b[1];
var _c = useState(getDisplayTitle(conversation, searchValue)), displayTitle = _c[0], setDisplayTitle = _c[1];
var _d = useState(getDisplayMessage(conversation)), displayMessage = _d[0], setDisplayMessage = _d[1];
var tDateTimeParser = useTranslationContext().tDateTimeParser;
var last_message = conversation.last_message;
var formattedDate = getDateString({
tDateTimeParser: tDateTimeParser,
messageCreatedAt: (last_message === null || last_message === void 0 ? void 0 : last_message.sent_at) ? new Date(last_message === null || last_message === void 0 ? void 0 : last_message.sent_at) : null,
});
var _e = useState(formattedDate), displayTime = _e[0], setDisplayTime = _e[1];
var _f = useState(conversation.unread), unread = _f[0], setUnread = _f[1];
var isActive = (activeConversation === null || activeConversation === void 0 ? void 0 : activeConversation.id) === (conversation === null || conversation === void 0 ? void 0 : conversation.id);
if (!Preview)
return null;
useEffect(function () {
var last_message = conversation.last_message;
var formattedDate = getDateString({
tDateTimeParser: tDateTimeParser,
messageCreatedAt: (last_message === null || last_message === void 0 ? void 0 : last_message.sent_at) ? new Date(last_message === null || last_message === void 0 ? void 0 : last_message.sent_at) : null,
});
setDisplayTitle(getDisplayTitle(conversation, searchValue));
setDisplayMessage(getDisplayMessage(conversation));
setDisplayImage(getDisplayImage(conversation));
setDisplayTime(formattedDate);
setUnread(conversation.unread);
}, [conversation, searchValue, conversationUpdateCount]);
return (React__default.createElement(Preview, __assign({}, props, { active: isActive, displayImage: displayImage, displayTitle: displayTitle, displayMessage: displayMessage, displayTime: displayTime, unread: unread, setActiveConversation: setActiveConversation })));
}
export { UIConversationPreview };
//# sourceMappingURL=UIConversationPreview.js.map