From 125363886120f20ce19af37045d5945a37595cb5 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 6 May 2022 21:23:29 +0100 Subject: [PATCH] Store unmuteError in main state --- src/room/usePTT.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/room/usePTT.js b/src/room/usePTT.js index d2f26a54..f7ce66da 100644 --- a/src/room/usePTT.js +++ b/src/room/usePTT.js @@ -2,7 +2,7 @@ import { useCallback, useEffect, useState } from "react"; export function usePTT(client, groupCall, userMediaFeeds) { const [ - { pttButtonHeld, isAdmin, talkOverEnabled, activeSpeakerUserId }, + { pttButtonHeld, isAdmin, talkOverEnabled, activeSpeakerUserId, unmuteError }, setState, ] = useState(() => { const roomMember = groupCall.room.getMember(client.getUserId()); @@ -14,11 +14,10 @@ export function usePTT(client, groupCall, userMediaFeeds) { talkOverEnabled: false, pttButtonHeld: false, activeSpeakerUserId: activeSpeakerFeed ? activeSpeakerFeed.userId : null, + unmuteError: null, }; }); - const [unmuteError, setUnmuteError] = useState(null); - useEffect(() => { function onMuteStateChanged(...args) { const activeSpeakerFeed = userMediaFeeds.find((f) => !f.isAudioMuted()); @@ -50,18 +49,17 @@ export function usePTT(client, groupCall, userMediaFeeds) { }, [userMediaFeeds]); const startTalking = useCallback(async () => { - setState((prevState) => ({ ...prevState, pttButtonHeld: true })); - setUnmuteError(null); + setState((prevState) => ({ ...prevState, pttButtonHeld: true, unmuteError: null, })); if (!activeSpeakerUserId || isAdmin || talkOverEnabled) { if (groupCall.isMicrophoneMuted()) { try { await groupCall.setMicrophoneMuted(false); } catch (e) { - setUnmuteError(e); + setState((prevState) => ({ ...prevState, unmuteError: null, })); } } } - }, [setUnmuteError]); + }, [setState]); const stopTalking = useCallback(() => { setState((prevState) => ({ ...prevState, pttButtonHeld: false }));