stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
40 lines • 1.5 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getMessageListItemCacheKey = exports.buildMessageListWithNeighbours = void 0;
var getMessageListItemCacheKey = (item, index) => {
if (item.id) {
return item.id;
}
if (item.created_at) {
return typeof item.created_at === 'string' ? item.created_at : item.created_at.toISOString();
}
return `index-${index}`;
};
exports.getMessageListItemCacheKey = getMessageListItemCacheKey;
var buildMessageListWithNeighbours = (processedMessageList, previousDerivedItems) => {
var nextDerivedItems = new Map();
var items = processedMessageList.map((message, index) => {
var cacheKey = getMessageListItemCacheKey(message, index);
var previousMessage = processedMessageList[index + 1];
var nextMessage = processedMessageList[index - 1];
var previousDerived = previousDerivedItems.get(cacheKey);
if (previousDerived && previousDerived.message === message && previousDerived.previousMessage === previousMessage && previousDerived.nextMessage === nextMessage) {
nextDerivedItems.set(cacheKey, previousDerived);
return previousDerived;
}
var derivedItem = {
nextMessage,
previousMessage,
message
};
nextDerivedItems.set(cacheKey, derivedItem);
return derivedItem;
});
return {
items,
nextDerivedItems
};
};
exports.buildMessageListWithNeighbours = buildMessageListWithNeighbours;
//# sourceMappingURL=buildMessageListWithNeighbours.js.map