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,24 +504,22 @@ export function createCallViewModel$(
), ),
); );
const localMatrixLivekitMemberUninitialized = { const localMatrixLivekitMember$ = scope.behavior<MatrixLivekitMember | null>(
membership$: localRtcMembership$, localRtcMembership$.pipe(
generateItems(
// Generate a local member when membership is non-null
function* (membership) {
if (membership !== null) yield { keys: ["local"], data: membership };
},
(_scope, membership$) => ({
membership$,
participant$: localMembership.participant$, participant$: localMembership.participant$,
connection$: localMembership.connection$, connection$: localMembership.connection$,
userId: userId, userId,
};
const localMatrixLivekitMember$: Behavior<MatrixLivekitMember | null> =
scope.behavior(
localRtcMembership$.pipe(
switchMap((membership) => {
if (!membership) return of(null);
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),
),
); );
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------