diff --git a/src/room/InCallView.tsx b/src/room/InCallView.tsx index 5ceb30f5..e096dd54 100644 --- a/src/room/InCallView.tsx +++ b/src/room/InCallView.tsx @@ -435,19 +435,6 @@ 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(() => { if (widget) { const onTileLayout = (ev: CustomEvent): void => { diff --git a/src/state/CallViewModel/localMember/LocalMember.ts b/src/state/CallViewModel/localMember/LocalMember.ts index 4749e942..7269b604 100644 --- a/src/state/CallViewModel/localMember/LocalMember.ts +++ b/src/state/CallViewModel/localMember/LocalMember.ts @@ -520,12 +520,19 @@ export const createLocalMembership$ = ({ } }); - combineLatest([muteStates.video.enabled$, homeserverConnected.combined$]) - .pipe(scope.bind()) - .subscribe(([videoEnabled, connected]) => { - if (!connected) return; - void matrixRTCSession.updateCallIntent(videoEnabled ? "video" : "audio"); - }); + muteStates.video.enabled$.pipe(scope.bind()).subscribe((videoEnabled) => { + void matrixRTCSession + .updateCallIntent(videoEnabled ? "video" : "audio") + .catch((e) => { + if (e instanceof Error && e.message === "Not connected yet") { + logger.debug( + "'not connected yet' while updating the call intent (this is expected no startup)", + ); + } else { + throw e; + } + }); + }); // Keep matrix rtc session in sync with localTransport$, connectRequested$ scope.reconcile( diff --git a/src/state/CallViewModel/localMember/LocalTransport.ts b/src/state/CallViewModel/localMember/LocalTransport.ts index 0625866d..d4a56126 100644 --- a/src/state/CallViewModel/localMember/LocalTransport.ts +++ b/src/state/CallViewModel/localMember/LocalTransport.ts @@ -335,17 +335,23 @@ async function makeTransport( // MSC4143: Attempt to fetch transports from backend. if ("_unstable_getRTCTransports" in client) { try { - const selectedTransport = await getFirstUsableTransport( - await client._unstable_getRTCTransports(), - ); + const transportList = await client._unstable_getRTCTransports(); + const selectedTransport = await getFirstUsableTransport(transportList); if (selectedTransport) { - logger.info("Using backend-configured SFU", selectedTransport); + logger.info( + "Using backend-configured (client.getRTCTransports) SFU", + selectedTransport, + ); return selectedTransport; } } catch (ex) { if (ex instanceof MatrixError && ex.httpStatus === 404) { // Expected, this is an unstable endpoint and it's not required. - logger.debug("Backend does not provide any RTC transports", ex); + logger.debug( + "Backend does not provide any RTC transports (will retry with well-known.)", + "Your server admin needs to update the matrix homeserver.", + "(The 404 erros in the console above are expectet to check if synapse supports the endpoint.)", + ); } else if (ex instanceof FailToGetOpenIdToken) { throw ex; } else { diff --git a/src/tile/SpotlightTile.tsx b/src/tile/SpotlightTile.tsx index 2042e819..e685327e 100644 --- a/src/tile/SpotlightTile.tsx +++ b/src/tile/SpotlightTile.tsx @@ -63,7 +63,6 @@ interface SpotlightItemBaseProps { mxcAvatarUrl: string | undefined; focusable: boolean; "aria-hidden"?: boolean; - localParticipant: boolean; } interface SpotlightUserMediaItemBaseProps extends SpotlightItemBaseProps { @@ -188,7 +187,6 @@ const SpotlightItem: FC = ({ focusable, encryptionStatus, "aria-hidden": ariaHidden, - localParticipant: vm.local, }; return vm instanceof ScreenShareViewModel ? (