Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

hooks.web.ts 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { useSelector } from 'react-redux';
  2. import { IReduxState } from '../app/types';
  3. import { getSecurityUiConfig } from '../base/config/functions.any';
  4. import { LOBBY_MODE_ENABLED, MEETING_PASSWORD_ENABLED, SECURITY_OPTIONS_ENABLED } from '../base/flags/constants';
  5. import { getFeatureFlag } from '../base/flags/functions';
  6. import { isLocalParticipantModerator } from '../base/participants/functions';
  7. import SecurityDialogButton from './components/security-dialog/web/SecurityDialogButton';
  8. import { isSecurityDialogButtonVisible } from './functions';
  9. const security = {
  10. key: 'security',
  11. alias: 'info',
  12. Content: SecurityDialogButton,
  13. group: 2
  14. };
  15. /**
  16. * A hook that returns the security dialog button if it is enabled and undefined otherwise.
  17. *
  18. * @returns {Object | undefined}
  19. */
  20. export function useSecurityDialogButton() {
  21. const conference = useSelector((state: IReduxState) => state['features/base/conference'].conference);
  22. const securityUIConfig = useSelector(getSecurityUiConfig);
  23. const isModerator = useSelector(isLocalParticipantModerator);
  24. const enabledLobbyModeFlag
  25. = useSelector((state: IReduxState) => getFeatureFlag(state, LOBBY_MODE_ENABLED, true));
  26. const enabledSecurityOptionsFlag
  27. = useSelector((state: IReduxState) => getFeatureFlag(state, SECURITY_OPTIONS_ENABLED, true));
  28. const enabledMeetingPassFlag
  29. = useSelector((state: IReduxState) => getFeatureFlag(state, MEETING_PASSWORD_ENABLED, true));
  30. if (isSecurityDialogButtonVisible({
  31. conference,
  32. securityUIConfig,
  33. isModerator,
  34. enabledLobbyModeFlag,
  35. enabledSecurityOptionsFlag,
  36. enabledMeetingPassFlag
  37. })) {
  38. return security;
  39. }
  40. }