@@ -542,11 +542,13 @@ export default class MessagePanel extends React.Component {
542542 }
543543 if ( ! grouper ) {
544544 const wantTile = this . _shouldShowEvent ( mxEv ) ;
545+ const isGrouped = false
545546 if ( wantTile ) {
546547 // make sure we unpack the array returned by _getTilesForEvent,
547548 // otherwise react will auto-generate keys and we will end up
548549 // replacing all of the DOM elements every time we paginate.
549- ret . push ( ...this . _getTilesForEvent ( prevEvent , mxEv , last , nextEvent , nextTile ) ) ;
550+ ret . push ( ...this . _getTilesForEvent ( prevEvent , mxEv , last , isGrouped ,
551+ nextEvent , nextTile ) ) ;
550552 prevEvent = mxEv ;
551553 }
552554
@@ -562,7 +564,7 @@ export default class MessagePanel extends React.Component {
562564 return ret ;
563565 }
564566
565- _getTilesForEvent ( prevEvent , mxEv , last , nextEvent , nextEventWithTile ) {
567+ _getTilesForEvent ( prevEvent , mxEv , last , isGrouped = false , nextEvent , nextEventWithTile ) {
566568 const TileErrorBoundary = sdk . getComponent ( 'messages.TileErrorBoundary' ) ;
567569 const EventTile = sdk . getComponent ( 'rooms.EventTile' ) ;
568570 const DateSeparator = sdk . getComponent ( 'messages.DateSeparator' ) ;
@@ -582,7 +584,7 @@ export default class MessagePanel extends React.Component {
582584
583585 // do we need a date separator since the last event?
584586 const wantsDateSeparator = this . _wantsDateSeparator ( prevEvent , eventDate ) ;
585- if ( wantsDateSeparator ) {
587+ if ( wantsDateSeparator && ! isGrouped ) {
586588 const dateSeparator = < li key = { ts1 } > < DateSeparator key = { ts1 } ts = { ts1 } /> </ li > ;
587589 ret . push ( dateSeparator ) ;
588590 }
@@ -966,9 +968,9 @@ class CreationGrouper {
966968
967969 const DateSeparator = sdk . getComponent ( 'messages.DateSeparator' ) ;
968970 const EventListSummary = sdk . getComponent ( 'views.elements.EventListSummary' ) ;
969-
970971 const panel = this . panel ;
971972 const ret = [ ] ;
973+ const isGrouped = true ;
972974 const createEvent = this . createEvent ;
973975 const lastShownEvent = this . lastShownEvent ;
974976
@@ -982,12 +984,12 @@ class CreationGrouper {
982984 // If this m.room.create event should be shown (room upgrade) then show it before the summary
983985 if ( panel . _shouldShowEvent ( createEvent ) ) {
984986 // pass in the createEvent as prevEvent as well so no extra DateSeparator is rendered
985- ret . push ( ...panel . _getTilesForEvent ( createEvent , createEvent , false ) ) ;
987+ ret . push ( ...panel . _getTilesForEvent ( createEvent , createEvent ) ) ;
986988 }
987989
988990 for ( const ejected of this . ejectedEvents ) {
989991 ret . push ( ...panel . _getTilesForEvent (
990- createEvent , ejected , createEvent === lastShownEvent ,
992+ createEvent , ejected , createEvent === lastShownEvent , isGrouped
991993 ) ) ;
992994 }
993995
@@ -996,7 +998,7 @@ class CreationGrouper {
996998 // of EventListSummary, render each member event as if the previous
997999 // one was itself. This way, the timestamp of the previous event === the
9981000 // timestamp of the current event, and no DateSeparator is inserted.
999- return panel . _getTilesForEvent ( e , e , e === lastShownEvent ) ;
1001+ return panel . _getTilesForEvent ( e , e , e === lastShownEvent , isGrouped ) ;
10001002 } ) . reduce ( ( a , b ) => a . concat ( b ) , [ ] ) ;
10011003 // Get sender profile from the latest event in the summary as the m.room.create doesn't contain one
10021004 const ev = this . events [ this . events . length - 1 ] ;
@@ -1081,7 +1083,7 @@ class RedactionGrouper {
10811083
10821084 const DateSeparator = sdk . getComponent ( 'messages.DateSeparator' ) ;
10831085 const EventListSummary = sdk . getComponent ( 'views.elements.EventListSummary' ) ;
1084-
1086+ const isGrouped = true ;
10851087 const panel = this . panel ;
10861088 const ret = [ ] ;
10871089 const lastShownEvent = this . lastShownEvent ;
@@ -1098,10 +1100,12 @@ class RedactionGrouper {
10981100 ) ;
10991101
11001102 const senders = new Set ( ) ;
1103+
11011104 let eventTiles = this . events . map ( ( e , i ) => {
11021105 senders . add ( e . sender ) ;
11031106 const prevEvent = i === 0 ? this . prevEvent : this . events [ i - 1 ] ;
1104- return panel . _getTilesForEvent ( prevEvent , e , e === lastShownEvent , this . nextEvent , this . nextEventTile ) ;
1107+ return panel . _getTilesForEvent (
1108+ prevEvent , e , e === lastShownEvent , isGrouped , this . nextEvent , this . nextEventTile ) ;
11051109 } ) . reduce ( ( a , b ) => a . concat ( b ) , [ ] ) ;
11061110
11071111 if ( eventTiles . length === 0 ) {
@@ -1180,7 +1184,7 @@ class MemberGrouper {
11801184
11811185 const DateSeparator = sdk . getComponent ( 'messages.DateSeparator' ) ;
11821186 const MemberEventListSummary = sdk . getComponent ( 'views.elements.MemberEventListSummary' ) ;
1183-
1187+ const isGrouped = true ;
11841188 const panel = this . panel ;
11851189 const lastShownEvent = this . lastShownEvent ;
11861190 const ret = [ ] ;
@@ -1213,7 +1217,7 @@ class MemberGrouper {
12131217 // of MemberEventListSummary, render each member event as if the previous
12141218 // one was itself. This way, the timestamp of the previous event === the
12151219 // timestamp of the current event, and no DateSeparator is inserted.
1216- return panel . _getTilesForEvent ( e , e , e === lastShownEvent ) ;
1220+ return panel . _getTilesForEvent ( e , e , e === lastShownEvent , isGrouped ) ;
12171221 } ) . reduce ( ( a , b ) => a . concat ( b ) , [ ] ) ;
12181222
12191223 if ( eventTiles . length === 0 ) {
0 commit comments