fix more runtime errors

This commit is contained in:
Timo K
2025-11-07 17:13:49 +01:00
parent e741285b11
commit cf5c35bccd
3 changed files with 15 additions and 12 deletions

View File

@@ -172,9 +172,11 @@ export const createLocalMembership$ = ({
combineLatest( combineLatest(
[connectionManager.connections$, localTransport$], [connectionManager.connections$, localTransport$],
(connections, transport) => { (connections, transport) => {
if (transport === undefined) return undefined; if (transport === null) return null;
return connections.value.find((connection) => return (
areLivekitTransportsEqual(connection.transport, transport), connections.value.find((connection) =>
areLivekitTransportsEqual(connection.transport, transport),
) ?? null
); );
}, },
), ),

View File

@@ -91,7 +91,9 @@ export const createLocalTransport$ = ({
combineLatest( combineLatest(
[useOldestMember$, oldestMemberTransport$, preferredTransport$], [useOldestMember$, oldestMemberTransport$, preferredTransport$],
(useOldestMember, oldestMemberTransport, preferredTransport) => (useOldestMember, oldestMemberTransport, preferredTransport) =>
useOldestMember ? oldestMemberTransport : preferredTransport, useOldestMember
? (oldestMemberTransport ?? preferredTransport)
: preferredTransport,
).pipe<LivekitTransport>(distinctUntilChanged(deepCompare)), ).pipe<LivekitTransport>(distinctUntilChanged(deepCompare)),
); );
return advertisedTransport$; return advertisedTransport$;

View File

@@ -145,13 +145,12 @@ export function createMatrixLivekitMembers$({
// TODO add this to the JS-SDK // TODO add this to the JS-SDK
export function areLivekitTransportsEqual( export function areLivekitTransportsEqual(
t1: LivekitTransport, t1?: LivekitTransport,
t2: LivekitTransport, t2?: LivekitTransport,
): boolean { ): boolean {
return ( if (t1 && t2) return t1.livekit_service_url === t2.livekit_service_url;
t1.livekit_service_url === t2.livekit_service_url && // In case we have different lk rooms in the same SFU (depends on the livekit authorization service)
// In case we have different lk rooms in the same SFU (depends on the livekit authorization service) // It is only needed in case the livekit authorization service is not behaving as expected (or custom implementation)
// It is only needed in case the livekit authorization service is not behaving as expected (or custom implementation) if (!t1 && !t2) return true;
t1.livekit_alias === t2.livekit_alias return false;
);
} }