@@ -544,11 +544,13 @@ export default class MessagePanel extends React.Component {
544544 }
545545 if ( ! grouper ) {
546546 const wantTile = this . _shouldShowEvent ( mxEv ) ;
547+ const isGrouped = false ;
547548 if ( wantTile ) {
548549 // make sure we unpack the array returned by _getTilesForEvent,
549550 // otherwise react will auto-generate keys and we will end up
550551 // replacing all of the DOM elements every time we paginate.
551- ret . push ( ...this . _getTilesForEvent ( prevEvent , mxEv , last , nextEvent , nextTile ) ) ;
552+ ret . push ( ...this . _getTilesForEvent ( prevEvent , mxEv , last , isGrouped ,
553+ nextEvent , nextTile ) ) ;
552554 prevEvent = mxEv ;
553555 }
554556
@@ -564,7 +566,7 @@ export default class MessagePanel extends React.Component {
564566 return ret ;
565567 }
566568
567- _getTilesForEvent ( prevEvent , mxEv , last , nextEvent , nextEventWithTile ) {
569+ _getTilesForEvent ( prevEvent , mxEv , last , isGrouped = false , nextEvent , nextEventWithTile ) {
568570 const TileErrorBoundary = sdk . getComponent ( 'messages.TileErrorBoundary' ) ;
569571 const EventTile = sdk . getComponent ( 'rooms.EventTile' ) ;
570572 const DateSeparator = sdk . getComponent ( 'messages.DateSeparator' ) ;
@@ -584,7 +586,7 @@ export default class MessagePanel extends React.Component {
584586
585587 // do we need a date separator since the last event?
586588 const wantsDateSeparator = this . _wantsDateSeparator ( prevEvent , eventDate ) ;
587- if ( wantsDateSeparator ) {
589+ if ( wantsDateSeparator && ! isGrouped ) {
588590 const dateSeparator = < li key = { ts1 } > < DateSeparator key = { ts1 } ts = { ts1 } /> </ li > ;
589591 ret . push ( dateSeparator ) ;
590592 }
@@ -968,9 +970,9 @@ class CreationGrouper {
968970
969971 const DateSeparator = sdk . getComponent ( 'messages.DateSeparator' ) ;
970972 const EventListSummary = sdk . getComponent ( 'views.elements.EventListSummary' ) ;
971-
972973 const panel = this . panel ;
973974 const ret = [ ] ;
975+ const isGrouped = true ;
974976 const createEvent = this . createEvent ;
975977 const lastShownEvent = this . lastShownEvent ;
976978
@@ -984,12 +986,12 @@ class CreationGrouper {
984986 // If this m.room.create event should be shown (room upgrade) then show it before the summary
985987 if ( panel . _shouldShowEvent ( createEvent ) ) {
986988 // pass in the createEvent as prevEvent as well so no extra DateSeparator is rendered
987- ret . push ( ...panel . _getTilesForEvent ( createEvent , createEvent , false ) ) ;
989+ ret . push ( ...panel . _getTilesForEvent ( createEvent , createEvent ) ) ;
988990 }
989991
990992 for ( const ejected of this . ejectedEvents ) {
991993 ret . push ( ...panel . _getTilesForEvent (
992- createEvent , ejected , createEvent === lastShownEvent ,
994+ createEvent , ejected , createEvent === lastShownEvent , isGrouped ,
993995 ) ) ;
994996 }
995997
@@ -998,7 +1000,7 @@ class CreationGrouper {
9981000 // of EventListSummary, render each member event as if the previous
9991001 // one was itself. This way, the timestamp of the previous event === the
10001002 // timestamp of the current event, and no DateSeparator is inserted.
1001- return panel . _getTilesForEvent ( e , e , e === lastShownEvent ) ;
1003+ return panel . _getTilesForEvent ( e , e , e === lastShownEvent , isGrouped ) ;
10021004 } ) . reduce ( ( a , b ) => a . concat ( b ) , [ ] ) ;
10031005 // Get sender profile from the latest event in the summary as the m.room.create doesn't contain one
10041006 const ev = this . events [ this . events . length - 1 ] ;
@@ -1083,7 +1085,7 @@ class RedactionGrouper {
10831085
10841086 const DateSeparator = sdk . getComponent ( 'messages.DateSeparator' ) ;
10851087 const EventListSummary = sdk . getComponent ( 'views.elements.EventListSummary' ) ;
1086-
1088+ const isGrouped = true ;
10871089 const panel = this . panel ;
10881090 const ret = [ ] ;
10891091 const lastShownEvent = this . lastShownEvent ;
@@ -1103,7 +1105,8 @@ class RedactionGrouper {
11031105 let eventTiles = this . events . map ( ( e , i ) => {
11041106 senders . add ( e . sender ) ;
11051107 const prevEvent = i === 0 ? this . prevEvent : this . events [ i - 1 ] ;
1106- return panel . _getTilesForEvent ( prevEvent , e , e === lastShownEvent , this . nextEvent , this . nextEventTile ) ;
1108+ return panel . _getTilesForEvent (
1109+ prevEvent , e , e === lastShownEvent , isGrouped , this . nextEvent , this . nextEventTile ) ;
11071110 } ) . reduce ( ( a , b ) => a . concat ( b ) , [ ] ) ;
11081111
11091112 if ( eventTiles . length === 0 ) {
@@ -1182,7 +1185,7 @@ class MemberGrouper {
11821185
11831186 const DateSeparator = sdk . getComponent ( 'messages.DateSeparator' ) ;
11841187 const MemberEventListSummary = sdk . getComponent ( 'views.elements.MemberEventListSummary' ) ;
1185-
1188+ const isGrouped = true ;
11861189 const panel = this . panel ;
11871190 const lastShownEvent = this . lastShownEvent ;
11881191 const ret = [ ] ;
@@ -1215,7 +1218,7 @@ class MemberGrouper {
12151218 // of MemberEventListSummary, render each member event as if the previous
12161219 // one was itself. This way, the timestamp of the previous event === the
12171220 // timestamp of the current event, and no DateSeparator is inserted.
1218- return panel . _getTilesForEvent ( e , e , e === lastShownEvent ) ;
1221+ return panel . _getTilesForEvent ( e , e , e === lastShownEvent , isGrouped ) ;
12191222 } ) . reduce ( ( a , b ) => a . concat ( b ) , [ ] ) ;
12201223
12211224 if ( eventTiles . length === 0 ) {
0 commit comments