| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | 
							- // @flow
 - 
 - import { PureComponent } from 'react';
 - 
 - export type Props = {
 - 
 -     /**
 -      * The messages array to render.
 -      */
 -     messages: Array<Object>
 - }
 - 
 - /**
 -  * Abstract component to display a list of chat messages, grouped by sender.
 -  *
 -  * @extends PureComponent
 -  */
 - export default class AbstractMessageContainer<P: Props> extends PureComponent<P> {
 -     static defaultProps = {
 -         messages: []
 -     };
 - 
 -     /**
 -      * Iterates over all the messages and creates nested arrays which hold
 -      * consecutive messages sent by the same participant.
 -      *
 -      * @private
 -      * @returns {Array<Array<Object>>}
 -      */
 -     _getMessagesGroupedBySender() {
 -         const messagesCount = this.props.messages.length;
 -         const groups = [];
 -         let currentGrouping = [];
 -         let currentGroupParticipantId;
 - 
 -         for (let i = 0; i < messagesCount; i++) {
 -             const message = this.props.messages[i];
 - 
 -             if (message.id === currentGroupParticipantId) {
 -                 currentGrouping.push(message);
 -             } else {
 -                 currentGrouping.length && groups.push(currentGrouping);
 - 
 -                 currentGrouping = [ message ];
 -                 currentGroupParticipantId = message.id;
 -             }
 -         }
 - 
 -         currentGrouping.length && groups.push(currentGrouping);
 - 
 -         return groups;
 -     }
 - }
 
 
  |