@@ -38,12 +38,14 @@ export enum RoomStateEvent {
38
38
Events = "RoomState.events" ,
39
39
Members = "RoomState.members" ,
40
40
NewMember = "RoomState.newMember" ,
41
+ Update = "RoomState.update" , // signals batches of updates without specificity
41
42
}
42
43
43
44
export type RoomStateEventHandlerMap = {
44
45
[ RoomStateEvent . Events ] : ( event : MatrixEvent , state : RoomState , lastStateEvent : MatrixEvent | null ) => void ;
45
46
[ RoomStateEvent . Members ] : ( event : MatrixEvent , state : RoomState , member : RoomMember ) => void ;
46
47
[ RoomStateEvent . NewMember ] : ( event : MatrixEvent , state : RoomState , member : RoomMember ) => void ;
48
+ [ RoomStateEvent . Update ] : ( state : RoomState ) => void ;
47
49
} ;
48
50
49
51
export class RoomState extends TypedEventEmitter < RoomStateEvent , RoomStateEventHandlerMap > {
@@ -376,6 +378,8 @@ export class RoomState extends TypedEventEmitter<RoomStateEvent, RoomStateEventH
376
378
this . sentinels = { } ;
377
379
}
378
380
} ) ;
381
+
382
+ this . emit ( RoomStateEvent . Update , this ) ;
379
383
}
380
384
381
385
/**
@@ -485,6 +489,7 @@ export class RoomState extends TypedEventEmitter<RoomStateEvent, RoomStateEventH
485
489
logger . log ( `LL: RoomState put in finished state ...` ) ;
486
490
this . oobMemberFlags . status = OobStatus . Finished ;
487
491
stateEvents . forEach ( ( e ) => this . setOutOfBandMember ( e ) ) ;
492
+ this . emit ( RoomStateEvent . Update , this ) ;
488
493
}
489
494
490
495
/**
0 commit comments