Browse Source

fix: Fixes showing awaiting AV moderation after grant moderator.

master
Дамян Минков 3 years ago
parent
commit
fc59cdbdbe
1 changed files with 22 additions and 9 deletions
  1. 22
    9
      react/features/av-moderation/middleware.js

+ 22
- 9
react/features/av-moderation/middleware.js View File

5
 import { JitsiConferenceEvents } from '../base/lib-jitsi-meet';
5
 import { JitsiConferenceEvents } from '../base/lib-jitsi-meet';
6
 import { MEDIA_TYPE } from '../base/media';
6
 import { MEDIA_TYPE } from '../base/media';
7
 import {
7
 import {
8
+    getLocalParticipant,
8
     getParticipantDisplayName,
9
     getParticipantDisplayName,
10
+    getRemoteParticipants,
9
     isLocalParticipantModerator,
11
     isLocalParticipantModerator,
12
+    isParticipantModerator,
10
     PARTICIPANT_UPDATED,
13
     PARTICIPANT_UPDATED,
11
     raiseHand
14
     raiseHand
12
 } from '../base/participants';
15
 } from '../base/participants';
124
     case PARTICIPANT_UPDATED: {
127
     case PARTICIPANT_UPDATED: {
125
         const state = getState();
128
         const state = getState();
126
         const audioModerationEnabled = isEnabledFromState(MEDIA_TYPE.AUDIO, state);
129
         const audioModerationEnabled = isEnabledFromState(MEDIA_TYPE.AUDIO, state);
130
+        const participant = action.participant;
127
 
131
 
128
-        // this is handled only by moderators
129
-        if (audioModerationEnabled && isLocalParticipantModerator(state)) {
130
-            const participant = action.participant;
132
+        if (participant && audioModerationEnabled) {
133
+            if (isLocalParticipantModerator(state)) {
131
 
134
 
132
-            if (participant.raisedHand) {
133
-                // if participant raises hand show notification
134
-                !isParticipantApproved(participant.id, MEDIA_TYPE.AUDIO)(state)
135
+                // this is handled only by moderators
136
+                if (participant.raisedHand) {
137
+                    // if participant raises hand show notification
138
+                    !isParticipantApproved(participant.id, MEDIA_TYPE.AUDIO)(state)
135
                     && dispatch(participantPendingAudio(participant));
139
                     && dispatch(participantPendingAudio(participant));
136
-            } else {
137
-                // if participant lowers hand hide notification
138
-                isParticipantPending(participant, MEDIA_TYPE.AUDIO)(state)
140
+                } else {
141
+                    // if participant lowers hand hide notification
142
+                    isParticipantPending(participant, MEDIA_TYPE.AUDIO)(state)
139
                     && dispatch(dismissPendingAudioParticipant(participant));
143
                     && dispatch(dismissPendingAudioParticipant(participant));
144
+                }
145
+            } else if (participant.id === getLocalParticipant(state).id
146
+                && /* the new role */ isParticipantModerator(participant)) {
147
+
148
+                // this is the granted moderator case
149
+                getRemoteParticipants(state).forEach(p => {
150
+                    p.raisedHand && !isParticipantApproved(p.id, MEDIA_TYPE.AUDIO)(state)
151
+                        && dispatch(participantPendingAudio(p));
152
+                });
140
             }
153
             }
141
         }
154
         }
142
 
155
 

Loading…
Cancel
Save