You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

EndConferenceButton.tsx 1.3KB

12345678910111213141516171819202122232425262728293031323334
  1. import React, { useCallback } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import { useDispatch, useSelector } from 'react-redux';
  4. import { endConference } from '../../../base/conference/actions';
  5. import { isLocalParticipantModerator } from '../../../base/participants/functions';
  6. import Button from '../../../base/ui/components/web/Button';
  7. import { BUTTON_TYPES } from '../../../base/ui/constants';
  8. import { isInBreakoutRoom } from '../../../breakout-rooms/functions';
  9. /**
  10. * Button to end the conference for all participants.
  11. *
  12. * @returns {JSX.Element} - The end conference button.
  13. */
  14. export const EndConferenceButton = () => {
  15. const { t } = useTranslation();
  16. const dispatch = useDispatch();
  17. const _isLocalParticipantModerator = useSelector(isLocalParticipantModerator);
  18. const _isInBreakoutRoom = useSelector(isInBreakoutRoom);
  19. const onEndConference = useCallback(() => {
  20. dispatch(endConference());
  21. }, [ dispatch ]);
  22. return (<>
  23. { !_isInBreakoutRoom && _isLocalParticipantModerator && <Button
  24. accessibilityLabel = { t('toolbar.accessibilityLabel.endConference') }
  25. fullWidth = { true }
  26. label = { t('toolbar.endConference') }
  27. onClick = { onEndConference }
  28. type = { BUTTON_TYPES.DESTRUCTIVE } /> }
  29. </>);
  30. };