From b49411abfa8a5ab4bd909e8231d86b10ca0c246c Mon Sep 17 00:00:00 2001 From: Timo K Date: Wed, 14 Jan 2026 17:35:35 +0100 Subject: [PATCH] dont set localTransport while still fetching oldest member transport --- src/room/InCallView.tsx | 24 +++++++++---------- .../localMember/LocalTransport.ts | 12 +++++++--- src/widget.ts | 1 + 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/room/InCallView.tsx b/src/room/InCallView.tsx index 5ceb30f5..3f437693 100644 --- a/src/room/InCallView.tsx +++ b/src/room/InCallView.tsx @@ -435,18 +435,18 @@ export const InCallView: FC = ({ [vm], ); - useEffect(() => { - widget?.api.transport - .send( - gridMode === "grid" - ? ElementWidgetActions.TileLayout - : ElementWidgetActions.SpotlightLayout, - {}, - ) - .catch((e) => { - logger.error("Failed to send layout change to widget API", e); - }); - }, [gridMode]); + // useEffect(() => { + // widget?.api.transport + // .send( + // gridMode === "grid" + // ? ElementWidgetActions.TileLayout + // : ElementWidgetActions.SpotlightLayout, + // {}, + // ) + // .catch((e) => { + // logger.error("Failed to send layout change to widget API", e); + // }); + // }, [gridMode]); useEffect(() => { if (widget) { diff --git a/src/state/CallViewModel/localMember/LocalTransport.ts b/src/state/CallViewModel/localMember/LocalTransport.ts index 0625866d..e3e42111 100644 --- a/src/state/CallViewModel/localMember/LocalTransport.ts +++ b/src/state/CallViewModel/localMember/LocalTransport.ts @@ -126,7 +126,9 @@ export const createLocalTransport$ = ({ * The transport over which we should be actively publishing our media. * undefined when not joined. */ - const oldestMemberTransport$ = scope.behavior( + const oldestMemberTransport$ = scope.behavior< + LocalTransportWithSFUConfig | null | "fetching" + >( combineLatest([memberships$]).pipe( map(([memberships]) => { const oldestMember = memberships.value[0]; @@ -154,7 +156,7 @@ export const createLocalTransport$ = ({ return from(computeLocalTransportWithSFUConfig()); }), ), - null, + "fetching", ); /** @@ -202,7 +204,11 @@ export const createLocalTransport$ = ({ ]).pipe( map(([useOldestMember, oldestMemberTransport, preferredTransport]) => useOldestMember - ? (oldestMemberTransport ?? preferredTransport) + ? oldestMemberTransport === null + ? preferredTransport + : oldestMemberTransport === "fetching" + ? null + : oldestMemberTransport : preferredTransport, ), distinctUntilChanged((t1, t2) => diff --git a/src/widget.ts b/src/widget.ts index 7862df33..e2584d0d 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -110,6 +110,7 @@ export const widget = ((): WidgetHelpers | null => { EventType.RoomRedaction, ElementCallReactionEventType, EventType.RTCDecline, + EventType.RTCMembership, // Send/Read the membership sticky events ]; const sendState = [