Some checks failed
Close stale issues and PRs / stale (push) Has been cancelled
47 lines
1.6 KiB
TypeScript
47 lines
1.6 KiB
TypeScript
import i18next from 'i18next';
|
|
|
|
import { ENDPOINT_MESSAGE_RECEIVED, KICKED_OUT } from '../base/conference/actionTypes';
|
|
import { hangup } from '../base/connection/actions.web';
|
|
import { getParticipantDisplayName } from '../base/participants/functions';
|
|
import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
|
|
import { openAllowToggleCameraDialog, setCameraFacingMode } from '../base/tracks/actions.web';
|
|
import { CAMERA_FACING_MODE_MESSAGE } from '../base/tracks/constants';
|
|
|
|
import './middleware.any';
|
|
|
|
MiddlewareRegistry.register(store => next => action => {
|
|
switch (action.type) {
|
|
case ENDPOINT_MESSAGE_RECEIVED: {
|
|
const { participant, data } = action;
|
|
|
|
if (data?.name === CAMERA_FACING_MODE_MESSAGE) {
|
|
APP.store.dispatch(openAllowToggleCameraDialog(
|
|
/* onAllow */ () => APP.store.dispatch(setCameraFacingMode(data.facingMode)),
|
|
/* initiatorId */ participant.getId()
|
|
));
|
|
}
|
|
break;
|
|
}
|
|
|
|
case KICKED_OUT: {
|
|
const { dispatch } = store;
|
|
const { participant } = action;
|
|
|
|
// we need to first finish dispatching or the notification can be cleared out
|
|
const result = next(action);
|
|
|
|
const participantDisplayName
|
|
= participant && getParticipantDisplayName(store.getState, participant.getId());
|
|
|
|
dispatch(hangup(true,
|
|
participantDisplayName ? i18next.t('dialog.kickTitle', { participantDisplayName })
|
|
: i18next.t('dialog.kickSystemTitle'),
|
|
true));
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
return next(action);
|
|
});
|