From 30758600f03242758a2d0ad86b4f50268346a32a Mon Sep 17 00:00:00 2001 From: Germain Souquet Date: Fri, 1 Oct 2021 10:49:46 +0100 Subject: [PATCH 1/2] Prepend events to thread when fetching the reply chain --- src/models/thread.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/models/thread.ts b/src/models/thread.ts index 9b4a75d0376..21db7e4de41 100644 --- a/src/models/thread.ts +++ b/src/models/thread.ts @@ -64,7 +64,7 @@ export class Thread extends EventEmitter { * Will fire "Thread.update" * @param event The event to add */ - public async addEvent(event: MatrixEvent): Promise { + public async addEvent(event: MatrixEvent, toStartOfTimeline = false): Promise { if (this.timelineSet.findEventById(event.getId()) || event.status !== null) { return; } @@ -85,7 +85,13 @@ export class Thread extends EventEmitter { const roomState = this.room.getLiveTimeline().getState(EventTimeline.FORWARDS); event.setThread(this); - this.timelineSet.addLiveEvent(event, DuplicateStrategy.Ignore, false, roomState); + this.timelineSet.addEventToTimeline( + event, + this.timelineSet.getLiveTimeline(), + toStartOfTimeline, + false, + roomState, + ); if (this.ready) { this.client.decryptEventIfNeeded(event, {}); @@ -108,7 +114,7 @@ export class Thread extends EventEmitter { ); } - this.addEvent(mxEvent); + this.addEvent(mxEvent, true); if (mxEvent.replyEventId) { await this.fetchReplyChain(); } else { From a14cf1a3390c645adeae47b17bb54e5d879d9b64 Mon Sep 17 00:00:00 2001 From: Germain Souquet Date: Fri, 1 Oct 2021 12:07:16 +0100 Subject: [PATCH 2/2] Remove unused DuplicateStrategy --- src/models/thread.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/models/thread.ts b/src/models/thread.ts index 21db7e4de41..8aad6e4484e 100644 --- a/src/models/thread.ts +++ b/src/models/thread.ts @@ -18,7 +18,7 @@ import { EventEmitter } from "events"; import { MatrixClient } from "../matrix"; import { MatrixEvent } from "./event"; import { EventTimeline } from "./event-timeline"; -import { EventTimelineSet, DuplicateStrategy } from './event-timeline-set'; +import { EventTimelineSet } from './event-timeline-set'; import { Room } from './room'; export enum ThreadEvent {