UNPKG

@sendbird/uikit-react

Version:

Sendbird UIKit for React: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.

71 lines (66 loc) 3.46 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var index = require('../../chunks/bundle-CHAKEXIJ.js'); var index$1 = require('../../chunks/bundle-fYxs1lss.js'); require('../../chunks/bundle-CVJwHwWn.js'); require('../../chunks/bundle-Cyl6_qLo.js'); require('../../chunks/bundle-Conb-pOy.js'); require('@sendbird/chat/groupChannel'); require('../../utils/message/getOutgoingMessageState.js'); require('../../chunks/bundle-DAdgL6r8.js'); require('../../chunks/bundle-Dobj18FB.js'); require('../../chunks/bundle-Cfh78Xnm.js'); /** * exported, should be backward compatible * @returns [chainTop: `boolean`, chainBottom: `boolean`] */ var compareMessagesForGrouping = function (prevMessage, currMessage, nextMessage, stringSet, currentChannel, replyType) { if (!currentChannel || currentChannel.channelType !== 'group') { return [ isSameGroup(prevMessage, currMessage, stringSet), isSameGroup(currMessage, nextMessage, stringSet), ]; } if (replyType === 'THREAD' && (currMessage === null || currMessage === void 0 ? void 0 : currMessage.threadInfo)) { return [false, false]; } var sendingStatus = (currMessage === null || currMessage === void 0 ? void 0 : currMessage.sendingStatus) || ''; var isAcceptable = sendingStatus !== 'pending' && sendingStatus !== 'failed'; return [ isSameGroup(prevMessage, currMessage, stringSet, currentChannel) && isAcceptable, isSameGroup(currMessage, nextMessage, stringSet, currentChannel) && isAcceptable, ]; }; var getMessageCreatedAt = function (message, stringSet) { return index.format(message.createdAt, stringSet.DATE_FORMAT__MESSAGE_CREATED_AT); }; var isSameGroup = function (message, comparingMessage, stringSet, currentChannel) { var _a, _b; if (!(message && comparingMessage && message.messageType && message.messageType !== 'admin' && comparingMessage.messageType && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.messageType) !== 'admin' && 'sender' in message && 'sender' in comparingMessage && message.createdAt && comparingMessage.createdAt && message.sender.userId && comparingMessage.sender.userId)) { return false; } return ((message === null || message === void 0 ? void 0 : message.sendingStatus) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sendingStatus) && ((_a = message === null || message === void 0 ? void 0 : message.sender) === null || _a === void 0 ? void 0 : _a.userId) === ((_b = comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sender) === null || _b === void 0 ? void 0 : _b.userId) && getMessageCreatedAt(message, stringSet) === getMessageCreatedAt(comparingMessage, stringSet)) && (currentChannel ? index$1.isReadMessage(currentChannel, message) === index$1.isReadMessage(currentChannel, comparingMessage) : true); }; var messages = { compareMessagesForGrouping: compareMessagesForGrouping, getMessageCreatedAt: getMessageCreatedAt, isSameGroup: isSameGroup, }; exports.compareMessagesForGrouping = compareMessagesForGrouping; exports.default = messages; exports.getMessageCreatedAt = getMessageCreatedAt; exports.isSameGroup = isSameGroup; //# sourceMappingURL=compareMessagesForGrouping.js.map