diff --git a/src/room/GroupCallView.tsx b/src/room/GroupCallView.tsx index dfc4ff19..a88d1126 100644 --- a/src/room/GroupCallView.tsx +++ b/src/room/GroupCallView.tsx @@ -80,17 +80,12 @@ export const GroupCallView: FC = ({ const memberships = useMatrixRTCSessionMemberships(rtcSession); const isJoined = useMatrixRTCSessionJoinState(rtcSession); - // The mute state reactively gets updated once the participant count reaches the threshold. - // The user then still is able to unmute again. - // The more common case is that the user is muted from the start (participant count is already over the threshold). - const autoMuteHappened = useRef(false); + // This should use `useEffectEvent` (only available in experimental versions) useEffect(() => { - if (autoMuteHappened.current) return; - if (memberships.length >= MUTE_PARTICIPANT_COUNT) { + if (memberships.length >= MUTE_PARTICIPANT_COUNT) muteStates.audio.setEnabled?.(false); - autoMuteHappened.current = true; - } - }, [autoMuteHappened, memberships, muteStates.audio]); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); useEffect(() => { window.rtcSession = rtcSession;