@@ -51,6 +51,7 @@ import {
5151import { TypedReEmitter } from "../ReEmitter.ts" ;
5252import { ToDeviceKeyTransport } from "./ToDeviceKeyTransport.ts" ;
5353import { type MatrixEvent } from "src/matrix.ts" ;
54+ import { type RoomStickyEventsEvent , type RoomStickyEventsMap } from "src/models/room-sticky-events.ts" ;
5455
5556/**
5657 * Events emitted by MatrixRTCSession
@@ -296,7 +297,7 @@ export class MatrixRTCSession extends TypedEventEmitter<
296297 * @deprecated Use `MatrixRTCSession.sessionMembershipsForRoom` instead.
297298 */
298299 public static callMembershipsForRoom (
299- room : Pick < Room , "getLiveTimeline" | "roomId" | "hasMembershipState" | "unstableGetStickyEvents " > ,
300+ room : Pick < Room , "getLiveTimeline" | "roomId" | "hasMembershipState" | "_unstable_getStickyEvents " > ,
300301 ) : CallMembership [ ] {
301302 return MatrixRTCSession . sessionMembershipsForRoom ( room , {
302303 id : "" ,
@@ -309,7 +310,7 @@ export class MatrixRTCSession extends TypedEventEmitter<
309310 * oldest first.
310311 */
311312 public static sessionMembershipsForRoom (
312- room : Pick < Room , "getLiveTimeline" | "roomId" | "hasMembershipState" | "unstableGetStickyEvents " > ,
313+ room : Pick < Room , "getLiveTimeline" | "roomId" | "hasMembershipState" | "_unstable_getStickyEvents " > ,
313314 sessionDescription : SessionDescription ,
314315 // default both true this implied we combine sticky and state events for the final call state
315316 // (prefer sticky events in case of a duplicate)
@@ -322,7 +323,7 @@ export class MatrixRTCSession extends TypedEventEmitter<
322323 let callMemberEvents = [ ] as MatrixEvent [ ] ;
323324 if ( listenForStickyEvents ) {
324325 // prefill with sticky events
325- callMemberEvents = [ ...room . unstableGetStickyEvents ( ) ] . filter (
326+ callMemberEvents = [ ...room . _unstable_getStickyEvents ( ) ] . filter (
326327 ( e ) => e . getType ( ) === EventType . GroupCallMemberPrefix ,
327328 ) ;
328329 }
@@ -817,9 +818,17 @@ export class MatrixRTCSession extends TypedEventEmitter<
817818 /**
818819 * Call this when a sticky event update has occured.
819820 */
820- private onStickyEventUpdate = ( added : MatrixEvent [ ] , removed : MatrixEvent [ ] ) : void => {
821+ private onStickyEventUpdate : RoomStickyEventsMap [ RoomStickyEventsEvent . Update ] = (
822+ added ,
823+ updated ,
824+ removed ,
825+ ) : void => {
821826 this . logger . debug ( "Sticky event update" , { added, removed } ) ;
822- if ( [ ...added , ...removed ] . some ( ( e ) => e . getType ( ) === EventType . GroupCallMemberPrefix ) ) {
827+ if (
828+ [ ...added , ...removed , ...updated . flatMap ( ( v ) => [ v . current , v . previous ] ) ] . some (
829+ ( e ) => e . getType ( ) === EventType . GroupCallMemberPrefix ,
830+ )
831+ ) {
823832 this . recalculateSessionMembers ( ) ;
824833 }
825834 } ;
0 commit comments