1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-12-04 05:02:41 +03:00

Prepend events to thread when fetching the reply chain

This commit is contained in:
Germain Souquet
2021-10-01 10:49:46 +01:00
parent 823242a93c
commit 30758600f0

View File

@@ -64,7 +64,7 @@ export class Thread extends EventEmitter {
* Will fire "Thread.update" * Will fire "Thread.update"
* @param event The event to add * @param event The event to add
*/ */
public async addEvent(event: MatrixEvent): Promise<void> { public async addEvent(event: MatrixEvent, toStartOfTimeline = false): Promise<void> {
if (this.timelineSet.findEventById(event.getId()) || event.status !== null) { if (this.timelineSet.findEventById(event.getId()) || event.status !== null) {
return; return;
} }
@@ -85,7 +85,13 @@ export class Thread extends EventEmitter {
const roomState = this.room.getLiveTimeline().getState(EventTimeline.FORWARDS); const roomState = this.room.getLiveTimeline().getState(EventTimeline.FORWARDS);
event.setThread(this); event.setThread(this);
this.timelineSet.addLiveEvent(event, DuplicateStrategy.Ignore, false, roomState); this.timelineSet.addEventToTimeline(
event,
this.timelineSet.getLiveTimeline(),
toStartOfTimeline,
false,
roomState,
);
if (this.ready) { if (this.ready) {
this.client.decryptEventIfNeeded(event, {}); this.client.decryptEventIfNeeded(event, {});
@@ -108,7 +114,7 @@ export class Thread extends EventEmitter {
); );
} }
this.addEvent(mxEvent); this.addEvent(mxEvent, true);
if (mxEvent.replyEventId) { if (mxEvent.replyEventId) {
await this.fetchReplyChain(); await this.fetchReplyChain();
} else { } else {