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.

BreakoutRoomParticipantItem.tsx 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import React, { useCallback } from 'react';
  2. import { useDispatch, useSelector } from 'react-redux';
  3. import { IReduxState } from '../../../app/types';
  4. import { isLocalParticipantModerator, isParticipantModerator } from '../../../base/participants/functions';
  5. import { showRoomParticipantMenu } from '../../../participants-pane/actions.native';
  6. import ParticipantItem from '../../../participants-pane/components/native/ParticipantItem';
  7. import { IRoom } from '../../types';
  8. interface IProps {
  9. /**
  10. * Participant to be displayed.
  11. */
  12. item: any;
  13. /**
  14. * The room the participant is in.
  15. */
  16. room: IRoom;
  17. }
  18. const BreakoutRoomParticipantItem = ({ item, room }: IProps) => {
  19. const { defaultRemoteDisplayName = '' } = useSelector((state: IReduxState) => state['features/base/config']);
  20. const moderator = useSelector(isLocalParticipantModerator);
  21. const dispatch = useDispatch();
  22. const onPress = useCallback(() => {
  23. if (moderator) {
  24. dispatch(showRoomParticipantMenu(room, item.jid, item.displayName));
  25. }
  26. }, [ moderator, room, item ]);
  27. return (
  28. <ParticipantItem
  29. displayName = { item.displayName || defaultRemoteDisplayName }
  30. isModerator = { isParticipantModerator(item) }
  31. key = { item.jid }
  32. onPress = { onPress }
  33. participantID = { item.jid } />
  34. );
  35. };
  36. export default BreakoutRoomParticipantItem;