From 0d7ec9552b9c4994dcfd7732f0799e33f297ff03 Mon Sep 17 00:00:00 2001 From: Shawn Chin Date: Wed, 2 Jun 2021 17:49:44 +0100 Subject: [PATCH] Hide invite button in participant panel if disabled in config (#9287) * Hide invite button in participant panel if disabled in config * match code style, fix lint errors --- .../components/MeetingParticipantList.js | 5 +++-- react/features/participants-pane/functions.js | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/react/features/participants-pane/components/MeetingParticipantList.js b/react/features/participants-pane/components/MeetingParticipantList.js index 462402c93..bb11e8e7f 100644 --- a/react/features/participants-pane/components/MeetingParticipantList.js +++ b/react/features/participants-pane/components/MeetingParticipantList.js @@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { getParticipants } from '../../base/participants'; -import { findStyledAncestor } from '../functions'; +import { findStyledAncestor, shouldRenderInviteButton } from '../functions'; import { InviteButton } from './InviteButton'; import { MeetingParticipantContextMenu } from './MeetingParticipantContextMenu'; @@ -36,6 +36,7 @@ const initialState = Object.freeze(Object.create(null)); export const MeetingParticipantList = () => { const isMouseOverMenu = useRef(false); const participants = useSelector(getParticipants, _.isEqual); + const showInviteButton = useSelector(shouldRenderInviteButton); const [ raiseContext, setRaiseContext ] = useState(initialState); const { t } = useTranslation(); @@ -86,7 +87,7 @@ export const MeetingParticipantList = () => { return ( <> {t('participantsPane.headings.participantsList', { count: participants.length })} - + {showInviteButton && }
{participants.map(p => ( state[REDUCER_KEY]; */ export const getParticipantsPaneOpen = state => Boolean(getState(state)?.isOpen); +/** + * Returns true if the invite button should be rendered. + * + * @param {Object} state - Global state. + * @returns {boolean} + */ +export const shouldRenderInviteButton = state => { + const { disableInviteFunctions } = toState(state)['features/base/config']; + const flagEnabled = getFeatureFlag(state, INVITE_ENABLED, true); + + return flagEnabled && !disableInviteFunctions; +};