diff --git a/Project/src/MakeCall/CallCard.js b/Project/src/MakeCall/CallCard.js index 66ae7da..827b2d8 100644 --- a/Project/src/MakeCall/CallCard.js +++ b/Project/src/MakeCall/CallCard.js @@ -64,6 +64,7 @@ export default class CallCard extends React.Component { canShareScreen: this.capabilities.shareScreen?.isPresent || this.capabilities.shareScreen?.reason === 'FeatureNotSupported', canRaiseHands: this.capabilities.raiseHand?.isPresent || this.capabilities.raiseHand?.reason === 'FeatureNotSupported', canSpotlight: this.capabilities.spotlightParticipant?.isPresent || this.capabilities.spotlightParticipant?.reason === 'FeatureNotSupported', + canMuteOthers: this.capabilities.muteOthers?.isPresent || this.capabilities.muteOthers?.reason === 'FeatureNotSupported', canReact: this.capabilities.useReactions?.isPresent || this.capabilities.useReactions?.reason === 'FeatureNotSupported', videoOn: this.call.isLocalVideoStarted, screenSharingOn: this.call.isScreenSharingOn, @@ -612,6 +613,10 @@ export default class CallCard extends React.Component { (value.isPresent) ? this.setState({ canRaiseHands: true }) : this.setState({ canRaiseHands: false }); continue; } + if(key === 'muteOthers' && value.reason != 'FeatureNotSupported') { + (value.isPresent) ? this.setState({ canMuteOthers: true }) : this.setState({ canMuteOthers: false }); + continue; + } if(key === 'reaction' && value.reason != 'FeatureNotSupported') { (value.isPresent) ? this.setState({ canReact: true }) : this.setState({ canReact: false }); continue; @@ -1319,12 +1324,15 @@ export default class CallCard extends React.Component { } - this.handleMuteAllRemoteParticipants()}> - - + { + this.state.canMuteOthers && + this.handleMuteAllRemoteParticipants()}> + + + } console.error('Failed to mute specific participant.', e)) + if (this.state.canMuteOthers) { + remoteParticipant.mute?.().catch((e) => console.error('Failed to mute specific participant.', e.message, e)); + } else { + console.error('Soft mute of remote participants is not a supported capability for this participant.'); + } } handleCheckboxChange(e) {