fix(av-moderation): Skip hiding AV moderation menu.

This commit is contained in:
damencho
2025-03-10 15:47:57 -05:00
committed by Дамян Минков
parent 6ad8ad3506
commit 5cfc0378f7
3 changed files with 5 additions and 14 deletions

View File

@@ -848,7 +848,7 @@
"actions": { "actions": {
"admit": "Admit", "admit": "Admit",
"admitAll": "Admit all", "admitAll": "Admit all",
"allow": "Allow attendees to:", "allow": "Allow non-moderators to:",
"allowVideo": "Allow video", "allowVideo": "Allow video",
"askUnmute": "Ask to unmute", "askUnmute": "Ask to unmute",
"audioModeration": "Unmute themselves", "audioModeration": "Unmute themselves",

View File

@@ -22,8 +22,7 @@ import Icon from '../../../base/icons/components/Icon';
import { IconCheck, IconRaiseHand, IconVideoOff } from '../../../base/icons/svg'; import { IconCheck, IconRaiseHand, IconVideoOff } from '../../../base/icons/svg';
import { MEDIA_TYPE } from '../../../base/media/constants'; import { MEDIA_TYPE } from '../../../base/media/constants';
import { raiseHand } from '../../../base/participants/actions'; import { raiseHand } from '../../../base/participants/actions';
import { getParticipantCount, getRaiseHandsQueue, isEveryoneModerator, isLocalParticipantModerator } import { getRaiseHandsQueue, isLocalParticipantModerator } from '../../../base/participants/functions';
from '../../../base/participants/functions';
import { LOWER_HAND_MESSAGE } from '../../../base/tracks/constants'; import { LOWER_HAND_MESSAGE } from '../../../base/tracks/constants';
import MuteEveryonesVideoDialog import MuteEveryonesVideoDialog
from '../../../video-menu/components/native/MuteEveryonesVideoDialog'; from '../../../video-menu/components/native/MuteEveryonesVideoDialog';
@@ -47,8 +46,6 @@ export const ContextMenuMore = () => {
const { t } = useTranslation(); const { t } = useTranslation();
const isModerationSupported = useSelector((state: IReduxState) => isAvModerationSupported()(state)); const isModerationSupported = useSelector((state: IReduxState) => isAvModerationSupported()(state));
const allModerators = useSelector(isEveryoneModerator);
const participantCount = useSelector(getParticipantCount);
const isAudioModerationEnabled = useSelector(isAvModerationEnabled(MEDIA_TYPE.AUDIO)); const isAudioModerationEnabled = useSelector(isAvModerationEnabled(MEDIA_TYPE.AUDIO));
const isVideoModerationEnabled = useSelector(isAvModerationEnabled(MEDIA_TYPE.VIDEO)); const isVideoModerationEnabled = useSelector(isAvModerationEnabled(MEDIA_TYPE.VIDEO));
@@ -79,7 +76,7 @@ export const ContextMenuMore = () => {
src = { IconRaiseHand } /> src = { IconRaiseHand } />
<Text style = { styles.contextMenuItemText }>{t('participantsPane.actions.lowerAllHands')}</Text> <Text style = { styles.contextMenuItemText }>{t('participantsPane.actions.lowerAllHands')}</Text>
</TouchableOpacity> } </TouchableOpacity> }
{isModerationSupported && ((participantCount === 1 || !allModerators)) && <> {isModerationSupported && <>
{/* @ts-ignore */} {/* @ts-ignore */}
<Divider style = { styles.divider } /> <Divider style = { styles.divider } />
<View style = { styles.contextMenuItem as ViewStyle }> <View style = { styles.contextMenuItem as ViewStyle }>

View File

@@ -21,11 +21,7 @@ import {
IconVideoOff IconVideoOff
} from '../../../base/icons/svg'; } from '../../../base/icons/svg';
import { MEDIA_TYPE } from '../../../base/media/constants'; import { MEDIA_TYPE } from '../../../base/media/constants';
import { import { getRaiseHandsQueue } from '../../../base/participants/functions';
getParticipantCount,
getRaiseHandsQueue,
isEveryoneModerator
} from '../../../base/participants/functions';
import { withPixelLineHeight } from '../../../base/styles/functions.web'; import { withPixelLineHeight } from '../../../base/styles/functions.web';
import ContextMenu from '../../../base/ui/components/web/ContextMenu'; import ContextMenu from '../../../base/ui/components/web/ContextMenu';
import ContextMenuItemGroup from '../../../base/ui/components/web/ContextMenuItemGroup'; import ContextMenuItemGroup from '../../../base/ui/components/web/ContextMenuItemGroup';
@@ -88,9 +84,7 @@ export const FooterContextMenu = ({ isOpen, onDrawerClose, onMouseLeave }: IProp
const dispatch = useDispatch(); const dispatch = useDispatch();
const isModerationSupported = useSelector((state: IReduxState) => isAvModerationSupported()(state)); const isModerationSupported = useSelector((state: IReduxState) => isAvModerationSupported()(state));
const raisedHandsQueue = useSelector(getRaiseHandsQueue); const raisedHandsQueue = useSelector(getRaiseHandsQueue);
const allModerators = useSelector(isEveryoneModerator);
const isModeratorSettingsTabEnabled = useSelector(shouldShowModeratorSettings); const isModeratorSettingsTabEnabled = useSelector(shouldShowModeratorSettings);
const participantCount = useSelector(getParticipantCount);
const isAudioModerationEnabled = useSelector(isAvModerationEnabled(MEDIA_TYPE.AUDIO)); const isAudioModerationEnabled = useSelector(isAvModerationEnabled(MEDIA_TYPE.AUDIO));
const isVideoModerationEnabled = useSelector(isAvModerationEnabled(MEDIA_TYPE.VIDEO)); const isVideoModerationEnabled = useSelector(isAvModerationEnabled(MEDIA_TYPE.VIDEO));
const isBreakoutRoom = useSelector(isInBreakoutRoom); const isBreakoutRoom = useSelector(isInBreakoutRoom);
@@ -151,7 +145,7 @@ export const FooterContextMenu = ({ isOpen, onDrawerClose, onMouseLeave }: IProp
text: t('participantsPane.actions.stopEveryonesVideo') text: t('participantsPane.actions.stopEveryonesVideo')
} ] } /> } ] } />
{raisedHandsQueue.length !== 0 && <LowerHandButton />} {raisedHandsQueue.length !== 0 && <LowerHandButton />}
{!isBreakoutRoom && isModerationSupported && (participantCount === 1 || !allModerators) && ( {!isBreakoutRoom && isModerationSupported && (
<ContextMenuItemGroup actions = { actions }> <ContextMenuItemGroup actions = { actions }>
<div className = { classes.text }> <div className = { classes.text }>
<span>{t('participantsPane.actions.allow')}</span> <span>{t('participantsPane.actions.allow')}</span>