| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { useSelector } from 'react-redux';
-
- import { IReduxState } from '../app/types';
- import { getSecurityUiConfig } from '../base/config/functions.any';
- import { LOBBY_MODE_ENABLED, MEETING_PASSWORD_ENABLED, SECURITY_OPTIONS_ENABLED } from '../base/flags/constants';
- import { getFeatureFlag } from '../base/flags/functions';
- import { isLocalParticipantModerator } from '../base/participants/functions';
-
- import SecurityDialogButton from './components/security-dialog/web/SecurityDialogButton';
- import { isSecurityDialogButtonVisible } from './functions';
-
- const security = {
- key: 'security',
- alias: 'info',
- Content: SecurityDialogButton,
- group: 2
- };
-
- /**
- * A hook that returns the security dialog button if it is enabled and undefined otherwise.
- *
- * @returns {Object | undefined}
- */
- export function useSecurityDialogButton() {
- const conference = useSelector((state: IReduxState) => state['features/base/conference'].conference);
- const securityUIConfig = useSelector(getSecurityUiConfig);
- const isModerator = useSelector(isLocalParticipantModerator);
- const enabledLobbyModeFlag
- = useSelector((state: IReduxState) => getFeatureFlag(state, LOBBY_MODE_ENABLED, true));
- const enabledSecurityOptionsFlag
- = useSelector((state: IReduxState) => getFeatureFlag(state, SECURITY_OPTIONS_ENABLED, true));
- const enabledMeetingPassFlag
- = useSelector((state: IReduxState) => getFeatureFlag(state, MEETING_PASSWORD_ENABLED, true));
-
- if (isSecurityDialogButtonVisible({
- conference,
- securityUIConfig,
- isModerator,
- enabledLobbyModeFlag,
- enabledSecurityOptionsFlag,
- enabledMeetingPassFlag
- })) {
- return security;
- }
- }
|