diff --git a/src/livekit/TrackProcessorContext.tsx b/src/livekit/TrackProcessorContext.tsx index 4a5ace46..bb13d5dc 100644 --- a/src/livekit/TrackProcessorContext.tsx +++ b/src/livekit/TrackProcessorContext.tsx @@ -67,6 +67,7 @@ export const trackProcessorSync = ( videoTrack$: Behavior, processor$: Behavior, ): void => { + // TODO-MULTI-SFU: Bind to an ObservableScope to avoid leaking resources. combineLatest([videoTrack$, processor$]).subscribe( ([videoTrack, processorState]) => { if (!processorState) return; diff --git a/src/room/GroupCallView.tsx b/src/room/GroupCallView.tsx index ecf0f135..49d8b60b 100644 --- a/src/room/GroupCallView.tsx +++ b/src/room/GroupCallView.tsx @@ -436,10 +436,7 @@ export const GroupCallView: FC = ({ client={client} matrixInfo={matrixInfo} muteStates={muteStates} - onEnter={async () => { - setJoined(true); - return Promise.resolve(); - }} + onEnter={() => setJoined(true)} confineToRoom={confineToRoom} hideHeader={header === HeaderStyle.None} participantCount={participantCount} diff --git a/src/room/LobbyView.tsx b/src/room/LobbyView.tsx index 51ce8fcd..ad4f30b3 100644 --- a/src/room/LobbyView.tsx +++ b/src/room/LobbyView.tsx @@ -57,7 +57,7 @@ interface Props { client: MatrixClient; matrixInfo: MatrixInfo; muteStates: MuteStates; - onEnter: () => Promise; + onEnter: () => void; enterLabel?: JSX.Element | string; confineToRoom: boolean; hideHeader: boolean; @@ -183,14 +183,6 @@ export const LobbyView: FC = ({ useTrackProcessorSync(videoTrack); - const [waitingToEnter, setWaitingToEnter] = useState(false); - const onEnterCall = useCallback(() => { - setWaitingToEnter(true); - void onEnter().finally(() => setWaitingToEnter(false)); - }, [onEnter]); - - const waiting = waitingForInvite || waitingToEnter; - // TODO: Unify this component with InCallView, so we can get slick joining // animations and don't have to feel bad about reusing its CSS return ( @@ -220,12 +212,12 @@ export const LobbyView: FC = ({ >