diff --git a/src/models/event.ts b/src/models/event.ts index 406aded0bb7..b3599fda98a 100644 --- a/src/models/event.ts +++ b/src/models/event.ts @@ -188,7 +188,7 @@ export enum MatrixEventEvent { RelationsCreated = "Event.relationsCreated", } -type EmittedEvents = MatrixEventEvent | ThreadEvent.Update; +export type MatrixEventEmittedEvents = MatrixEventEvent | ThreadEvent.Update; export type MatrixEventHandlerMap = { [MatrixEventEvent.Decrypted]: (event: MatrixEvent, err?: Error) => void; @@ -198,9 +198,9 @@ export type MatrixEventHandlerMap = { [MatrixEventEvent.Status]: (event: MatrixEvent, status: EventStatus) => void; [MatrixEventEvent.Replaced]: (event: MatrixEvent) => void; [MatrixEventEvent.RelationsCreated]: (relationType: string, eventType: string) => void; -} & ThreadEventHandlerMap; +} & Pick; -export class MatrixEvent extends TypedEventEmitter { +export class MatrixEvent extends TypedEventEmitter { private pushActions: IActionsObject = null; private _replacingEvent: MatrixEvent = null; private _localRedactionEvent: MatrixEvent = null; @@ -283,7 +283,7 @@ export class MatrixEvent extends TypedEventEmitter; + private readonly reEmitter: TypedReEmitter; /** * Construct a Matrix Event object diff --git a/src/models/room.ts b/src/models/room.ts index aa1ffdd743f..6ed22f09a1b 100644 --- a/src/models/room.ts +++ b/src/models/room.ts @@ -18,7 +18,12 @@ limitations under the License. * @module models/room */ -import { EventTimelineSet, DuplicateStrategy, IAddLiveEventOptions } from "./event-timeline-set"; +import { + EventTimelineSet, + DuplicateStrategy, + IAddLiveEventOptions, + EventTimelineSetHandlerMap, +} from "./event-timeline-set"; import { Direction, EventTimeline } from "./event-timeline"; import { getHttpUriForMxc } from "../content-repo"; import * as utils from "../utils"; @@ -129,7 +134,7 @@ export enum RoomEvent { HistoryImportedWithinTimeline = "Room.historyImportedWithinTimeline", } -type EmittedEvents = RoomEvent +export type RoomEmittedEvents = RoomEvent | RoomStateEvent.Events | RoomStateEvent.Members | RoomStateEvent.NewMember @@ -166,8 +171,12 @@ export type RoomEventHandlerMap = { ) => void; [RoomEvent.TimelineRefresh]: (room: Room, eventTimelineSet: EventTimelineSet) => void; [ThreadEvent.New]: (thread: Thread, toStartOfTimeline: boolean) => void; -} & ThreadHandlerMap - & MatrixEventHandlerMap +} & Pick< + ThreadHandlerMap, + ThreadEvent.Update | ThreadEvent.NewReply + > + & EventTimelineSetHandlerMap + & Pick & Pick< RoomStateEventHandlerMap, RoomStateEvent.Events @@ -182,8 +191,8 @@ export type RoomEventHandlerMap = { BeaconEvent.Update | BeaconEvent.Destroy | BeaconEvent.LivenessChange >; -export class Room extends ReadReceipt { - public readonly reEmitter: TypedReEmitter; +export class Room extends ReadReceipt { + public readonly reEmitter: TypedReEmitter; private txnToEvent: Record = {}; // Pending in-flight requests { string: MatrixEvent } private notificationCounts: NotificationCount = {}; private threadNotifications: Map = new Map();