瀏覽代碼

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

master
robertpin 3 年之前
父節點
當前提交
8fd7b10f06

+ 2
- 16
react/features/participants-pane/components/web/MeetingParticipantItem.js 查看文件

2
 
2
 
3
 import React, { useCallback, useEffect, useState } from 'react';
3
 import React, { useCallback, useEffect, useState } from 'react';
4
 
4
 
5
-import { isSupported } from '../../../av-moderation/functions';
6
 import { translate } from '../../../base/i18n';
5
 import { translate } from '../../../base/i18n';
7
 import { JitsiTrackEvents } from '../../../base/lib-jitsi-meet';
6
 import { JitsiTrackEvents } from '../../../base/lib-jitsi-meet';
8
 import { MEDIA_TYPE } from '../../../base/media';
7
 import { MEDIA_TYPE } from '../../../base/media';
10
     getLocalParticipant,
9
     getLocalParticipant,
11
     getParticipantByIdOrUndefined,
10
     getParticipantByIdOrUndefined,
12
     getParticipantDisplayName,
11
     getParticipantDisplayName,
13
-    isLocalParticipantModerator,
14
     isParticipantModerator
12
     isParticipantModerator
15
 } from '../../../base/participants';
13
 } from '../../../base/participants';
16
 import { connect } from '../../../base/redux';
14
 import { connect } from '../../../base/redux';
20
     isParticipantAudioMuted,
18
     isParticipantAudioMuted,
21
     isParticipantVideoMuted
19
     isParticipantVideoMuted
22
 } from '../../../base/tracks';
20
 } from '../../../base/tracks';
23
-import { ACTION_TRIGGER, type MediaState, MEDIA_STATE, QUICK_ACTION_BUTTON } from '../../constants';
21
+import { ACTION_TRIGGER, type MediaState, MEDIA_STATE } from '../../constants';
24
 import {
22
 import {
25
     getParticipantAudioMediaState,
23
     getParticipantAudioMediaState,
26
     getParticipantVideoMediaState,
24
     getParticipantVideoMediaState,
174
     _audioTrack,
172
     _audioTrack,
175
     _disableModeratorIndicator,
173
     _disableModeratorIndicator,
176
     _displayName,
174
     _displayName,
177
-    _isModerationSupported,
178
     _local,
175
     _local,
179
-    _localModerator,
180
     _localVideoOwner,
176
     _localVideoOwner,
181
     _participant,
177
     _participant,
182
     _participantID,
178
     _participantID,
234
         askToUnmuteText = t('participantsPane.actions.allowVideo');
230
         askToUnmuteText = t('participantsPane.actions.allowVideo');
235
     }
231
     }
236
 
232
 
237
-    const buttonType = _isModerationSupported
238
-        ? _localModerator && _audioMediaState !== MEDIA_STATE.UNMUTED
239
-            ? QUICK_ACTION_BUTTON.ASK_TO_UNMUTE
240
-            : _quickActionButtonType
241
-        : '';
242
-
243
     return (
233
     return (
244
         <ParticipantItem
234
         <ParticipantItem
245
             actionsTrigger = { ACTION_TRIGGER.HOVER }
235
             actionsTrigger = { ACTION_TRIGGER.HOVER }
261
                 && <>
251
                 && <>
262
                     <ParticipantQuickAction
252
                     <ParticipantQuickAction
263
                         askUnmuteText = { askToUnmuteText }
253
                         askUnmuteText = { askToUnmuteText }
264
-                        buttonType = { buttonType }
254
+                        buttonType = { _quickActionButtonType }
265
                         muteAudio = { muteAudio }
255
                         muteAudio = { muteAudio }
266
                         muteParticipantButtonText = { muteParticipantButtonText }
256
                         muteParticipantButtonText = { muteParticipantButtonText }
267
                         participantID = { _participantID } />
257
                         participantID = { _participantID } />
307
 
297
 
308
     const { disableModeratorIndicator } = state['features/base/config'];
298
     const { disableModeratorIndicator } = state['features/base/config'];
309
 
299
 
310
-    const _localModerator = isLocalParticipantModerator(state);
311
-
312
     return {
300
     return {
313
         _audioMediaState,
301
         _audioMediaState,
314
         _audioTrack,
302
         _audioTrack,
315
         _disableModeratorIndicator: disableModeratorIndicator,
303
         _disableModeratorIndicator: disableModeratorIndicator,
316
         _displayName: getParticipantDisplayName(state, participant?.id),
304
         _displayName: getParticipantDisplayName(state, participant?.id),
317
-        _isModerationSupported: isSupported()(state),
318
         _local: Boolean(participant?.local),
305
         _local: Boolean(participant?.local),
319
-        _localModerator,
320
         _localVideoOwner: Boolean(ownerId === localParticipantId),
306
         _localVideoOwner: Boolean(ownerId === localParticipantId),
321
         _participant: participant,
307
         _participant: participant,
322
         _participantID: participant?.id,
308
         _participantID: participant?.id,

+ 5
- 4
react/features/participants-pane/functions.js 查看文件

3
 import {
3
 import {
4
     isParticipantApproved,
4
     isParticipantApproved,
5
     isEnabledFromState,
5
     isEnabledFromState,
6
-    isLocalParticipantApprovedFromState
6
+    isLocalParticipantApprovedFromState,
7
+    isSupported
7
 } from '../av-moderation/functions';
8
 } from '../av-moderation/functions';
8
 import { getFeatureFlag, INVITE_ENABLED } from '../base/flags';
9
 import { getFeatureFlag, INVITE_ENABLED } from '../base/flags';
9
 import { MEDIA_TYPE, type MediaType } from '../base/media/constants';
10
 import { MEDIA_TYPE, type MediaType } from '../base/media/constants';
164
 export function getQuickActionButtonType(participant: Object, isAudioMuted: Boolean, state: Object) {
165
 export function getQuickActionButtonType(participant: Object, isAudioMuted: Boolean, state: Object) {
165
     // handled only by moderators
166
     // handled only by moderators
166
     if (isLocalParticipantModerator(state)) {
167
     if (isLocalParticipantModerator(state)) {
167
-        if (isForceMuted(participant, MEDIA_TYPE.AUDIO, state) || isForceMuted(participant, MEDIA_TYPE.VIDEO, state)) {
168
-            return QUICK_ACTION_BUTTON.ASK_TO_UNMUTE;
169
-        }
170
         if (!isAudioMuted) {
168
         if (!isAudioMuted) {
171
             return QUICK_ACTION_BUTTON.MUTE;
169
             return QUICK_ACTION_BUTTON.MUTE;
172
         }
170
         }
171
+        if (isSupported()(state)) {
172
+            return QUICK_ACTION_BUTTON.ASK_TO_UNMUTE;
173
+        }
173
     }
174
     }
174
 
175
 
175
     return QUICK_ACTION_BUTTON.NONE;
176
     return QUICK_ACTION_BUTTON.NONE;

Loading…
取消
儲存