Fix addLiveEvent with 'replace' strategy

This commit is contained in:
Germain Souquet
2021-09-22 17:14:18 +01:00
parent 1359c0574e
commit f8ec445ff0
3 changed files with 7 additions and 7 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
import * as utils from "../test-utils";
import { EventStatus, MatrixEvent } from "../../src";
import { DuplicateStrategy, EventStatus, MatrixEvent } from "../../src";
import { EventTimeline } from "../../src/models/event-timeline";
import { RoomState } from "../../src";
import { Room } from "../../src";
@@ -113,7 +113,7 @@ describe("Room", function() {
dupe.event.event_id = events[0].getId();
room.addLiveEvents(events);
expect(room.timeline[0]).toEqual(events[0]);
room.addLiveEvents([dupe], "replace");
room.addLiveEvents([dupe], DuplicateStrategy.Replace);
expect(room.timeline[0]).toEqual(dupe);
});
+2 -2
View File
@@ -532,7 +532,7 @@ export class EventTimelineSet extends EventEmitter {
const timeline = this._eventIdToTimeline[event.getId()];
if (timeline) {
if (duplicateStrategy === "replace") {
if (duplicateStrategy === DuplicateStrategy.Replace) {
debuglog("EventTimelineSet.addLiveEvent: replacing duplicate event " +
event.getId());
const tlEvents = timeline.getEvents();
@@ -540,7 +540,7 @@ export class EventTimelineSet extends EventEmitter {
if (tlEvents[j].getId() === event.getId()) {
// still need to set the right metadata on this event
if (!roomState) {
timeline.getState(EventTimeline.FORWARDS);
roomState = timeline.getState(EventTimeline.FORWARDS);
}
EventTimeline.setEventMetadata(
event,
+3 -3
View File
@@ -20,7 +20,7 @@ limitations under the License.
import { EventEmitter } from "events";
import { EventTimelineSet } from "./event-timeline-set";
import { EventTimelineSet, DuplicateStrategy } from "./event-timeline-set";
import { EventTimeline } from "./event-timeline";
import { getHttpUriForMxc } from "../content-repo";
import * as utils from "../utils";
@@ -1327,7 +1327,7 @@ export class Room extends EventEmitter {
* @fires module:client~MatrixClient#event:"Room.timeline"
* @private
*/
private addLiveEvent(event: MatrixEvent, duplicateStrategy?: "ignore" | "replace", fromCache = false): void {
private addLiveEvent(event: MatrixEvent, duplicateStrategy?: DuplicateStrategy, fromCache = false): void {
if (event.isRedaction()) {
const redactId = event.event.redacts;
@@ -1713,7 +1713,7 @@ export class Room extends EventEmitter {
* @param {boolean} fromCache whether the sync response came from cache
* @throws If <code>duplicateStrategy</code> is not falsey, 'replace' or 'ignore'.
*/
public addLiveEvents(events: MatrixEvent[], duplicateStrategy?: "replace" | "ignore", fromCache = false): void {
public addLiveEvents(events: MatrixEvent[], duplicateStrategy?: DuplicateStrategy, fromCache = false): void {
let i;
if (duplicateStrategy && ["replace", "ignore"].indexOf(duplicateStrategy) === -1) {
throw new Error("duplicateStrategy MUST be either 'replace' or 'ignore'");