From 5f5cac0e01dd45bd0ff509c4ba9b69bbc4b3bec4 Mon Sep 17 00:00:00 2001 From: robertpin Date: Tue, 21 Sep 2021 18:38:06 +0300 Subject: [PATCH] fix(config,notifications) fix rendering moderator notifications (#9986) Move DISABLE_FOCUS_INDICATOR from interface_config.js to config.js (disableModeratorIndicator). --- config.js | 3 +++ interface_config.js | 3 ++- lang/main.json | 2 +- react/features/base/config/configWhitelist.js | 1 + react/features/base/config/reducer.js | 6 ++++++ .../features/filmstrip/components/web/StatusIndicators.js | 4 +++- react/features/notifications/middleware.js | 7 ++++--- 7 files changed, 20 insertions(+), 6 deletions(-) diff --git a/config.js b/config.js index d8b77a8c3..5790fbaa3 100644 --- a/config.js +++ b/config.js @@ -74,6 +74,9 @@ var config = { // callStatsThreshold: 5 // enable callstats for 5% of the users. }, + // Disables moderator indicators. + // disableModeratorIndicator: false, + // Enables reactions feature. // enableReactions: false, diff --git a/interface_config.js b/interface_config.js index 021dc8398..2ccbd8148 100644 --- a/interface_config.js +++ b/interface_config.js @@ -39,7 +39,8 @@ var interfaceConfig = { DISABLE_DOMINANT_SPEAKER_INDICATOR: false, - DISABLE_FOCUS_INDICATOR: false, + // Deprecated. Please use disableModeratorIndicator from config.js + // DISABLE_FOCUS_INDICATOR: false, /** * If true, notifications regarding joining/leaving are no longer displayed. diff --git a/lang/main.json b/lang/main.json index 0826f7640..5ebf9f873 100644 --- a/lang/main.json +++ b/lang/main.json @@ -570,7 +570,7 @@ "mutedTitle": "You're muted!", "mutedRemotelyTitle": "You've been muted by {{moderator}}", "mutedRemotelyDescription": "You can always unmute when you're ready to speak. Mute back when you're done to keep noise away from the meeting.", - "videoMutedRemotelyTitle": "Your camera has been turned off by {{moderator}}", + "videoMutedRemotelyTitle": "Your video has been turned off by {{moderator}}", "videoMutedRemotelyDescription": "You can always turn it on again.", "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removed by another participant", "passwordSetRemotely": "$t(lockRoomPasswordUppercase) set by another participant", diff --git a/react/features/base/config/configWhitelist.js b/react/features/base/config/configWhitelist.js index 4f3c51ebc..dfb1adf6e 100644 --- a/react/features/base/config/configWhitelist.js +++ b/react/features/base/config/configWhitelist.js @@ -96,6 +96,7 @@ export default [ 'disableIncomingMessageSound', 'disableJoinLeaveSounds', 'disableLocalVideoFlip', + 'disableModeratorIndicator', 'disableNS', 'disablePolls', 'disableProfile', diff --git a/react/features/base/config/reducer.js b/react/features/base/config/reducer.js index 50ee65004..a22edffa2 100644 --- a/react/features/base/config/reducer.js +++ b/react/features/base/config/reducer.js @@ -286,6 +286,12 @@ function _translateLegacyConfig(oldValue: Object) { }; } + if (oldValue.disableModeratorIndicator === undefined + && typeof interfaceConfig === 'object' + && interfaceConfig.hasOwnProperty('DISABLE_FOCUS_INDICATOR')) { + newValue.disableModeratorIndicator = interfaceConfig.DISABLE_FOCUS_INDICATOR; + } + return newValue; } diff --git a/react/features/filmstrip/components/web/StatusIndicators.js b/react/features/filmstrip/components/web/StatusIndicators.js index cbaf346f0..f2edfe215 100644 --- a/react/features/filmstrip/components/web/StatusIndicators.js +++ b/react/features/filmstrip/components/web/StatusIndicators.js @@ -129,11 +129,13 @@ function _mapStateToProps(state, ownProps) { isAudioMuted = isRemoteTrackMuted(tracks, MEDIA_TYPE.AUDIO, participantID); } + const { disableModeratorIndicator } = state['features/base/config']; + return { _currentLayout: getCurrentLayout(state), _showAudioMutedIndicator: isAudioMuted, _showModeratorIndicator: - !interfaceConfig.DISABLE_FOCUS_INDICATOR && participant && participant.role === PARTICIPANT_ROLE.MODERATOR, + !disableModeratorIndicator && participant && participant.role === PARTICIPANT_ROLE.MODERATOR, _showScreenShareIndicator: isScreenSharing, _showVideoMutedIndicator: isVideoMuted }; diff --git a/react/features/notifications/middleware.js b/react/features/notifications/middleware.js index c537fd0f5..b6bf69962 100644 --- a/react/features/notifications/middleware.js +++ b/react/features/notifications/middleware.js @@ -69,13 +69,14 @@ MiddlewareRegistry.register(store => next => action => { return next(action); } case PARTICIPANT_UPDATED: { - if (typeof interfaceConfig === 'undefined') { - // Do not show the notification for mobile and also when the focus indicator is disabled. + const state = store.getState(); + const { disableModeratorIndicator } = state['features/base/config']; + + if (disableModeratorIndicator) { return next(action); } const { id, role } = action.participant; - const state = store.getState(); const localParticipant = getLocalParticipant(state); if (localParticipant.id !== id) {