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

middleware.web.ts 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import i18next from 'i18next';
  2. import { ENDPOINT_MESSAGE_RECEIVED, KICKED_OUT } from '../base/conference/actionTypes';
  3. import { hangup } from '../base/connection/actions.web';
  4. import { getParticipantDisplayName } from '../base/participants/functions';
  5. import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
  6. import { openAllowToggleCameraDialog, setCameraFacingMode } from '../base/tracks/actions.web';
  7. import { CAMERA_FACING_MODE_MESSAGE } from '../base/tracks/constants';
  8. import './middleware.any';
  9. MiddlewareRegistry.register(store => next => action => {
  10. switch (action.type) {
  11. case ENDPOINT_MESSAGE_RECEIVED: {
  12. const { participant, data } = action;
  13. if (data?.name === CAMERA_FACING_MODE_MESSAGE) {
  14. APP.store.dispatch(openAllowToggleCameraDialog(
  15. /* onAllow */ () => APP.store.dispatch(setCameraFacingMode(data.facingMode)),
  16. /* initiatorId */ participant.getId()
  17. ));
  18. }
  19. break;
  20. }
  21. case KICKED_OUT: {
  22. const { dispatch } = store;
  23. const { participant } = action;
  24. const participantDisplayName
  25. = getParticipantDisplayName(store.getState, participant.getId());
  26. dispatch(hangup(true, i18next.t('dialog.kickTitle', { participantDisplayName })));
  27. break;
  28. }
  29. }
  30. return next(action);
  31. });