in src/components/Chat/ChatSession.js [421:458]
_addItemsToTranscript(items) {
let self = this;
if (items.length === 0) {
return;
}
items = items.filter(item => !this._isRoundTripSystemEvent(item));
console.log("ADD ITEMS", items);
const newItemMap = items.reduce((acc, item) => ({...acc, [item.id]: item}), {});
const newTranscript = this.transcript.filter(item => newItemMap[item.id] === undefined);
newTranscript.push(...items);
newTranscript.sort(
(a, b) => {
const isASending = a.transportDetails.status === Status.Sending;
const isBSending = b.transportDetails.status === Status.Sending;
if ((isASending && !isBSending) || (!isASending && isBSending)) {
return isASending ? 1 : -1;
}
return a.transportDetails.sentTime - b.transportDetails.sentTime;
}
);
newTranscript.forEach(function(item){
if(item.transportDetails.direction === Direction.Incoming){
item = self.incomingItemDecorator(item);
}else{
item = self.outgoingItemDecorator(item);
}
});
this._updateTranscript(newTranscript);
}