Remove a brittle cast from local member code

This commit is contained in:
Robin
2025-12-08 22:54:46 -05:00
parent 5a9a62039c
commit cc8e250d96

View File

@@ -504,25 +504,23 @@ export function createCallViewModel$(
), ),
); );
const localMatrixLivekitMemberUninitialized = { const localMatrixLivekitMember$ = scope.behavior<MatrixLivekitMember | null>(
membership$: localRtcMembership$, localRtcMembership$.pipe(
participant$: localMembership.participant$, generateItems(
connection$: localMembership.connection$, // Generate a local member when membership is non-null
userId: userId, function* (membership) {
}; if (membership !== null) yield { keys: ["local"], data: membership };
},
const localMatrixLivekitMember$: Behavior<MatrixLivekitMember | null> = (_scope, membership$) => ({
scope.behavior( membership$,
localRtcMembership$.pipe( participant$: localMembership.participant$,
switchMap((membership) => { connection$: localMembership.connection$,
if (!membership) return of(null); userId,
return of(
// casting is save here since we know that localRtcMembership$ is !== null since we reached this case.
localMatrixLivekitMemberUninitialized as MatrixLivekitMember,
);
}), }),
), ),
); map(([localMember]) => localMember ?? null),
),
);
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
// callLifecycle // callLifecycle