Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

SendToRoomButton.js 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // @flow
  2. import React, { useCallback } from 'react';
  3. import { useTranslation } from 'react-i18next';
  4. import { useDispatch } from 'react-redux';
  5. import { createBreakoutRoomsEvent, sendAnalytics } from '../../../analytics';
  6. import { IconRingGroup } from '../../../base/icons';
  7. import ContextMenuItem from '../../../base/ui/components/web/ContextMenuItem';
  8. import { sendParticipantToRoom } from '../../../breakout-rooms/actions';
  9. type Props = {
  10. /**
  11. * Click handler.
  12. */
  13. onClick: ?Function,
  14. /**
  15. * The ID for the participant on which the button will act.
  16. */
  17. participantID: string,
  18. /**
  19. * The room to send the participant to.
  20. */
  21. room: Object
  22. }
  23. const SendToRoomButton = ({ onClick, participantID, room }: Props) => {
  24. const dispatch = useDispatch();
  25. const { t } = useTranslation();
  26. const _onClick = useCallback(() => {
  27. onClick && onClick();
  28. sendAnalytics(createBreakoutRoomsEvent('send.participant.to.room'));
  29. dispatch(sendParticipantToRoom(participantID, room.id));
  30. }, [ participantID, room ]);
  31. const roomName = room.name || t('breakoutRooms.mainRoom');
  32. return (
  33. <ContextMenuItem
  34. accessibilityLabel = { roomName }
  35. icon = { IconRingGroup }
  36. onClick = { _onClick }
  37. text = { roomName } />
  38. );
  39. };
  40. export default SendToRoomButton;