UNPKG

@uimkit/uikit-react

Version:

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

54 lines (51 loc) 3.58 kB
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