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

LobbyParticipantItem.js 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // @flow
  2. import React, { useCallback } from 'react';
  3. import { useTranslation } from 'react-i18next';
  4. import { Button } from 'react-native-paper';
  5. import { useDispatch } from 'react-redux';
  6. import { setKnockingParticipantApproval } from '../../../lobby/actions.native';
  7. import { MediaState } from '../../constants';
  8. import ParticipantItem from './ParticipantItem';
  9. import styles from './styles';
  10. type Props = {
  11. /**
  12. * Participant reference
  13. */
  14. participant: Object
  15. };
  16. export const LobbyParticipantItem = ({ participant: p }: Props) => {
  17. const dispatch = useDispatch();
  18. const admit = useCallback(() => dispatch(setKnockingParticipantApproval(p.id, true), [ dispatch ]));
  19. const reject = useCallback(() => dispatch(setKnockingParticipantApproval(p.id, false), [ dispatch ]));
  20. const { t } = useTranslation();
  21. return (
  22. <ParticipantItem
  23. audioMuteState = { MediaState.Muted }
  24. participant = { p }
  25. videoMuteState = { MediaState.ForceMuted }>
  26. <Button
  27. labelStyle = { styles.participantActionButtonText }
  28. mode = 'contained'
  29. onPress = { admit }
  30. style = { styles.participantActionButton }>
  31. {t('lobby.admit')}
  32. </Button>
  33. <Button
  34. labelStyle = { styles.participantActionButtonText }
  35. mode = 'contained'
  36. onPress = { reject }
  37. style = { styles.participantActionButton }>
  38. {t('lobby.reject')}
  39. </Button>
  40. </ParticipantItem>
  41. );
  42. };