UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

41 lines 1.59 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.getGroupStyle = void 0; var _utils = require("../../../utils/utils"); var getGroupStyle = ({ message, previousMessage, nextMessage, maxTimeBetweenGroupedMessages, nextMessageDateSeparatorDate, dateSeparatorDate }) => { var groupStyles = []; var userId = message?.user?.id || null; var isTopMessage = !previousMessage || previousMessage.type === 'system' || previousMessage.type === 'error' || userId !== previousMessage?.user?.id || dateSeparatorDate || (0, _utils.isEditedMessage)(previousMessage); var isBottomMessage = !nextMessage || nextMessage.type === 'system' || nextMessage.type === 'error' || userId !== nextMessage?.user?.id || nextMessageDateSeparatorDate || maxTimeBetweenGroupedMessages !== undefined && nextMessage.created_at.getTime() - message.created_at.getTime() > maxTimeBetweenGroupedMessages || (0, _utils.isEditedMessage)(message); if (isTopMessage) { groupStyles.push('top'); } if (isBottomMessage) { if (isTopMessage || message.type === 'error') { groupStyles.splice(0, groupStyles.length); groupStyles.push('single'); } else { groupStyles.push('bottom'); } } if (!isTopMessage && !isBottomMessage) { if (message.type === 'error') { groupStyles.splice(0, groupStyles.length); groupStyles.push('single'); } else { groupStyles.splice(0, groupStyles.length); groupStyles.push('middle'); } } return groupStyles; }; exports.getGroupStyle = getGroupStyle; //# sourceMappingURL=getGroupStyles.js.map