Merge pull request #69 from daily-demos/dev-1223-update-mute-all-buttons

DEV-1223 Update mute all buttons
This commit is contained in:
Jess Mitchell 2022-02-24 09:38:48 -05:00 committed by GitHub
commit 952ffd5e07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 7 deletions

View File

@ -1,4 +1,4 @@
import React from 'react'; import React, { useCallback } from 'react';
import { Aside } from '@custom/shared/components/Aside'; import { Aside } from '@custom/shared/components/Aside';
import Button from '@custom/shared/components/Button'; import Button from '@custom/shared/components/Button';
import { useCallState } from '@custom/shared/contexts/CallProvider'; import { useCallState } from '@custom/shared/contexts/CallProvider';
@ -97,6 +97,28 @@ export const PeopleAside = () => {
const { showAside, setShowAside } = useUIState(); const { showAside, setShowAside } = useUIState();
const { participants, isOwner } = useParticipants(); const { participants, isOwner } = useParticipants();
const muteAll = useCallback(
(deviceType) => {
let updatedParticipantList = {};
// Accommodate muting mics and cameras
const newSetting =
deviceType === 'video' ? { setVideo: false } : { setAudio: false };
for (let id in callObject.participants()) {
// Do not update the local participant's device (aka the instructor)
if (id === 'local') continue;
updatedParticipantList[id] = newSetting;
}
// Update all participants at once
callObject.updateParticipants(updatedParticipantList);
},
[callObject]
);
const handleMuteAllAudio = () => muteAll('audio');
const handleMuteAllVideo = () => muteAll('video');
if (!showAside || showAside !== PEOPLE_ASIDE) { if (!showAside || showAside !== PEOPLE_ASIDE) {
return null; return null;
} }
@ -111,9 +133,7 @@ export const PeopleAside = () => {
fullWidth fullWidth
size="tiny" size="tiny"
variant="outline-gray" variant="outline-gray"
onClick={() => onClick={handleMuteAllAudio}
callObject.updateParticipants({ '*': { setAudio: false } })
}
> >
Mute all mics Mute all mics
</Button> </Button>
@ -121,9 +141,7 @@ export const PeopleAside = () => {
fullWidth fullWidth
size="tiny" size="tiny"
variant="outline-gray" variant="outline-gray"
onClick={() => onClick={handleMuteAllVideo}
callObject.updateParticipants({ '*': { setVideo: false } })
}
> >
Mute all cams Mute all cams
</Button> </Button>