Skip to content

Commit 8b75a26

Browse files
robintowntoger5
authored andcommitted
Break loop in acquiring media on Safari
1 parent 87f02b2 commit 8b75a26

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

src/room/LobbyView.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ import {
5353
useTrackProcessorSync,
5454
} from "../livekit/TrackProcessorContext";
5555
import { usePageTitle } from "../usePageTitle";
56+
import { useLatest } from "../useLatest";
5657

5758
interface Props {
5859
client: MatrixClient;
@@ -159,13 +160,14 @@ export const LobbyView: FC<Props> = ({
159160
],
160161
);
161162

163+
const latestMuteStates = useLatest(muteStates);
162164
const onError = useCallback(
163165
(error: Error) => {
164166
logger.error("Error while creating preview Tracks:", error);
165-
muteStates.audio.setEnabled?.(false);
166-
muteStates.video.setEnabled?.(false);
167+
latestMuteStates.current.audio.setEnabled?.(false);
168+
latestMuteStates.current.video.setEnabled?.(false);
167169
},
168-
[muteStates.audio, muteStates.video],
170+
[latestMuteStates],
169171
);
170172

171173
const tracks = usePreviewTracks(localTrackOptions, onError);

src/room/MuteStates.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ function useMuteState(
6060
// Determine the default value once devices are actually connected
6161
(prev) =>
6262
prev ?? (device.available.size > 0 ? enabledByDefault() : undefined),
63-
[device],
63+
[device.available.size],
6464
);
6565
return useMemo(
6666
() =>
@@ -70,7 +70,7 @@ function useMuteState(
7070
enabled: enabled ?? false,
7171
setEnabled: setEnabled as Dispatch<SetStateAction<boolean>>,
7272
},
73-
[device, enabled, setEnabled],
73+
[device.available.size, enabled, setEnabled],
7474
);
7575
}
7676

0 commit comments

Comments
 (0)