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
JavaScript
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