@uimkit/uikit-react
Version:
<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>
62 lines (55 loc) • 3.96 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib = require('tslib');
var React = require('react');
var TranslationContext = require('../../context/TranslationContext.js');
var UIKitContext = require('../../context/UIKitContext.js');
require('../../context/ComponentContext.js');
require('../../context/ChatActionContext.js');
require('../../context/MessageInputContext.js');
require('../../context/UIMessageContext.js');
require('../../context/ChatStateContext.js');
var UIConversationPreviewContent = require('./UIConversationPreviewContent.js');
require('../../types/models.js');
require('../../types/events.js');
var utils = require('./utils.js');
var useIMAccount = require('../../hooks/useIMAccount.js');
require('../Icon/type.js');
require('../Icon/config.js');
var utils$1 = require('../../i18n/utils.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
function UIConversationPreview(props) {
var activeConversation = props.activeConversation, conversation = props.conversation, _a = props.Preview, Preview = _a === void 0 ? UIConversationPreviewContent.UIConversationPreviewContent : _a, searchValue = props.searchValue, conversationUpdateCount = props.conversationUpdateCount;
var setActiveConversation = UIKitContext.useUIKit('ConversationPreview').setActiveConversation;
useIMAccount.useIMAccount(activeConversation === null || activeConversation === void 0 ? void 0 : activeConversation.accountId);
var _b = React.useState(utils.getDisplayImage(conversation)), displayImage = _b[0], setDisplayImage = _b[1];
var _c = React.useState(utils.getDisplayTitle(conversation, searchValue)), displayTitle = _c[0], setDisplayTitle = _c[1];
var _d = React.useState(utils.getDisplayMessage(conversation)), displayMessage = _d[0], setDisplayMessage = _d[1];
var tDateTimeParser = TranslationContext.useTranslationContext().tDateTimeParser;
var last_message = conversation.last_message;
var formattedDate = utils$1.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 = React.useState(formattedDate), displayTime = _e[0], setDisplayTime = _e[1];
var _f = React.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;
React.useEffect(function () {
var last_message = conversation.last_message;
var formattedDate = utils$1.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(utils.getDisplayTitle(conversation, searchValue));
setDisplayMessage(utils.getDisplayMessage(conversation));
setDisplayImage(utils.getDisplayImage(conversation));
setDisplayTime(formattedDate);
setUnread(conversation.unread);
}, [conversation, searchValue, conversationUpdateCount]);
return (React__default["default"].createElement(Preview, tslib.__assign({}, props, { active: isActive, displayImage: displayImage, displayTitle: displayTitle, displayMessage: displayMessage, displayTime: displayTime, unread: unread, setActiveConversation: setActiveConversation })));
}
exports.UIConversationPreview = UIConversationPreview;
//# sourceMappingURL=UIConversationPreview.js.map