fix(av-moderation) Update function that calculates quick action button

This commit is contained in:
robertpin 2021-10-05 10:14:08 +03:00 committed by Дамян Минков
parent 001ae54a7c
commit 8fd7b10f06
2 changed files with 7 additions and 20 deletions

View File

@ -2,7 +2,6 @@
import React, { useCallback, useEffect, useState } from 'react';
import { isSupported } from '../../../av-moderation/functions';
import { translate } from '../../../base/i18n';
import { JitsiTrackEvents } from '../../../base/lib-jitsi-meet';
import { MEDIA_TYPE } from '../../../base/media';
@ -10,7 +9,6 @@ import {
getLocalParticipant,
getParticipantByIdOrUndefined,
getParticipantDisplayName,
isLocalParticipantModerator,
isParticipantModerator
} from '../../../base/participants';
import { connect } from '../../../base/redux';
@ -20,7 +18,7 @@ import {
isParticipantAudioMuted,
isParticipantVideoMuted
} from '../../../base/tracks';
import { ACTION_TRIGGER, type MediaState, MEDIA_STATE, QUICK_ACTION_BUTTON } from '../../constants';
import { ACTION_TRIGGER, type MediaState, MEDIA_STATE } from '../../constants';
import {
getParticipantAudioMediaState,
getParticipantVideoMediaState,
@ -174,9 +172,7 @@ function MeetingParticipantItem({
_audioTrack,
_disableModeratorIndicator,
_displayName,
_isModerationSupported,
_local,
_localModerator,
_localVideoOwner,
_participant,
_participantID,
@ -234,12 +230,6 @@ function MeetingParticipantItem({
askToUnmuteText = t('participantsPane.actions.allowVideo');
}
const buttonType = _isModerationSupported
? _localModerator && _audioMediaState !== MEDIA_STATE.UNMUTED
? QUICK_ACTION_BUTTON.ASK_TO_UNMUTE
: _quickActionButtonType
: '';
return (
<ParticipantItem
actionsTrigger = { ACTION_TRIGGER.HOVER }
@ -261,7 +251,7 @@ function MeetingParticipantItem({
&& <>
<ParticipantQuickAction
askUnmuteText = { askToUnmuteText }
buttonType = { buttonType }
buttonType = { _quickActionButtonType }
muteAudio = { muteAudio }
muteParticipantButtonText = { muteParticipantButtonText }
participantID = { _participantID } />
@ -307,16 +297,12 @@ function _mapStateToProps(state, ownProps): Object {
const { disableModeratorIndicator } = state['features/base/config'];
const _localModerator = isLocalParticipantModerator(state);
return {
_audioMediaState,
_audioTrack,
_disableModeratorIndicator: disableModeratorIndicator,
_displayName: getParticipantDisplayName(state, participant?.id),
_isModerationSupported: isSupported()(state),
_local: Boolean(participant?.local),
_localModerator,
_localVideoOwner: Boolean(ownerId === localParticipantId),
_participant: participant,
_participantID: participant?.id,

View File

@ -3,7 +3,8 @@
import {
isParticipantApproved,
isEnabledFromState,
isLocalParticipantApprovedFromState
isLocalParticipantApprovedFromState,
isSupported
} from '../av-moderation/functions';
import { getFeatureFlag, INVITE_ENABLED } from '../base/flags';
import { MEDIA_TYPE, type MediaType } from '../base/media/constants';
@ -164,12 +165,12 @@ export const getParticipantsPaneOpen = (state: Object) => Boolean(getState(state
export function getQuickActionButtonType(participant: Object, isAudioMuted: Boolean, state: Object) {
// handled only by moderators
if (isLocalParticipantModerator(state)) {
if (isForceMuted(participant, MEDIA_TYPE.AUDIO, state) || isForceMuted(participant, MEDIA_TYPE.VIDEO, state)) {
return QUICK_ACTION_BUTTON.ASK_TO_UNMUTE;
}
if (!isAudioMuted) {
return QUICK_ACTION_BUTTON.MUTE;
}
if (isSupported()(state)) {
return QUICK_ACTION_BUTTON.ASK_TO_UNMUTE;
}
}
return QUICK_ACTION_BUTTON.NONE;