Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit 8b644e7

Browse files
committed
Finally fixes two todays
1 parent 09af2a8 commit 8b644e7

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

src/components/structures/MessagePanel.js

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)