diff --git a/src/models/event.ts b/src/models/event.ts index a0b2dfa42b..32fd4d7441 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 | null) => 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 = null; private _replacingEvent: MatrixEvent | null = null; private _localRedactionEvent: MatrixEvent | null = 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 5ce322afba..202ef72853 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"; @@ -130,7 +135,7 @@ export enum RoomEvent { UnreadNotifications = "Room.UnreadNotifications", } -type EmittedEvents = RoomEvent +export type RoomEmittedEvents = RoomEvent | RoomStateEvent.Events | RoomStateEvent.Members | RoomStateEvent.NewMember @@ -171,8 +176,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 @@ -187,8 +196,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 readonly threadNotifications = new Map();