123456789101112131415161718192021222324252627282930313233343536 |
- import { appNavigate } from '../../app/actions.native';
- import { notifyConferenceFailed } from '../../conference/actions.native';
- import { JitsiConferenceErrors } from '../lib-jitsi-meet';
- import MiddlewareRegistry from '../redux/MiddlewareRegistry';
-
- import { CONFERENCE_FAILED } from './actionTypes';
- import { conferenceLeft } from './actions';
- import { TRIGGER_READY_TO_CLOSE_REASONS } from './constants';
-
- import './middleware.any';
-
- MiddlewareRegistry.register(store => next => action => {
- const { dispatch } = store;
- const { error } = action;
-
- switch (action.type) {
- case CONFERENCE_FAILED: {
- if (error?.name !== JitsiConferenceErrors.CONFERENCE_DESTROYED) {
- break;
- }
-
- const [ reason ] = error.params;
-
- const reasonKey = Object.keys(TRIGGER_READY_TO_CLOSE_REASONS)[
- Object.values(TRIGGER_READY_TO_CLOSE_REASONS).indexOf(reason)
- ];
-
- dispatch(notifyConferenceFailed(reasonKey, () => {
- dispatch(conferenceLeft(action.conference));
- dispatch(appNavigate(undefined));
- }));
- }
- }
-
- return next(action);
- });
|