Fix addLiveEvent with 'replace' strategy
This commit is contained in:
@@ -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);
|
||||
});
|
||||
|
||||
|
||||
@@ -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
@@ -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'");
|
||||
|
||||
Reference in New Issue
Block a user