UNPKG

stream-chat-react-native-core

Version:

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

42 lines 1.9 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 _message$user, _previousMessage$user, _nextMessage$user; var groupStyles = []; var userId = (message == null || (_message$user = message.user) == null ? void 0 : _message$user.id) || null; var isTopMessage = !previousMessage || previousMessage.type === 'system' || previousMessage.type === 'error' || userId !== (previousMessage == null || (_previousMessage$user = previousMessage.user) == null ? void 0 : _previousMessage$user.id) || dateSeparatorDate || (0, _utils.isEditedMessage)(previousMessage); var isBottomMessage = !nextMessage || nextMessage.type === 'system' || nextMessage.type === 'error' || userId !== (nextMessage == null || (_nextMessage$user = nextMessage.user) == null ? void 0 : _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