Files
jitsi-meet/react/features/jaas/middleware.web.ts
Hristo Terezov 2514617417 fix: Make all middleware functions sync.
Some middleware functions are declared as async. This wraps next(action) in Promise which will delay the execution of actions and also dispatch will return the its result always as a Promise.
2024-07-25 07:17:16 -05:00

48 lines
1.3 KiB
TypeScript

import { redirectToStaticPage } from '../app/actions.web';
import { CONFERENCE_JOINED } from '../base/conference/actionTypes';
import {
JitsiConferenceErrors,
JitsiConferenceEvents
} from '../base/lib-jitsi-meet';
import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
import { SET_DETAILS } from './actionTypes';
import { STATUSES } from './constants';
import logger from './logger';
/**
* The redux middleware for jaas.
*
* @param {Store} store - The redux store.
* @returns {Function}
*/
MiddlewareRegistry.register(store => next => action => {
switch (action.type) {
case CONFERENCE_JOINED: {
const { conference } = action;
if (store.getState()['features/base/config'].iAmRecorder) {
// We don't register anything on web if we are in iAmRecorder mode
return next(action);
}
conference.on(
JitsiConferenceEvents.CONFERENCE_ERROR, (errorType: string, errorMsg: string) => {
errorType === JitsiConferenceErrors.SETTINGS_ERROR && logger.error(errorMsg);
});
break;
}
case SET_DETAILS: {
const { status } = action.payload;
if (status === STATUSES.BLOCKED) {
store.dispatch(redirectToStaticPage('/static/planLimit.html'));
}
break;
}
}
return next(action);
});