diff --git a/src/room/GroupCallView.tsx b/src/room/GroupCallView.tsx index 1ad1c832..fe21ba62 100644 --- a/src/room/GroupCallView.tsx +++ b/src/room/GroupCallView.tsx @@ -276,34 +276,28 @@ export const GroupCallView: FC = ({ }; if (skipLobby) { - if (widget) { - if (preload) { - // In preload mode without lobby we wait for a join action before entering - const onJoin = (ev: CustomEvent): void => { - (async (): Promise => { - await defaultDeviceSetup( - ev.detail.data as unknown as JoinCallData, - ); - await enterRTCSessionOrError(rtcSession); - widget.api.transport.reply(ev.detail, {}); - })().catch((e) => { - logger.error("Error joining RTC session", e); - }); - }; - widget.lazyActions.on(ElementWidgetActions.JoinCall, onJoin); - return (): void => { - widget.lazyActions.off(ElementWidgetActions.JoinCall, onJoin); - }; - } else { - // No lobby and no preload: we enter the rtc session right away + if (widget && preload) { + // In preload mode without lobby we wait for a join action before entering + const onJoin = (ev: CustomEvent): void => { (async (): Promise => { + await defaultDeviceSetup(ev.detail.data as unknown as JoinCallData); await enterRTCSessionOrError(rtcSession); + widget.api.transport.reply(ev.detail, {}); })().catch((e) => { - logger.error("Error joining RTC session", e); + logger.error("Error joining RTC session on preload", e); }); - } + }; + widget.lazyActions.on(ElementWidgetActions.JoinCall, onJoin); + return (): void => { + widget.lazyActions.off(ElementWidgetActions.JoinCall, onJoin); + }; } else { - void enterRTCSessionOrError(rtcSession); + // No lobby and no preload: we enter the rtc session right away + (async (): Promise => { + await enterRTCSessionOrError(rtcSession); + })().catch((e) => { + logger.error("Error joining RTC session immediately", e); + }); } } }, [ @@ -494,6 +488,7 @@ export const GroupCallView: FC = ({ // Left in widget mode: body = returnToLobby ? lobbyView : null; } else if (preload || skipLobby) { + // The RTC session is not joined to yet (`isJoined`), but enterRTCSessionOrError should have been called. body = null; } else { body = lobbyView;