37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
|
/* global APP */
|
||
|
import JitsiMeetJS from '../base/lib-jitsi-meet';
|
||
|
|
||
|
import { CONFERENCE_FAILED } from '../base/conference';
|
||
|
import { MiddlewareRegistry } from '../base/redux';
|
||
|
import { _showPasswordDialog } from './actions';
|
||
|
|
||
|
/**
|
||
|
* Middleware that captures conference failed and checks for password required
|
||
|
* error and requests a dialog for user to enter password.
|
||
|
*
|
||
|
* @param {Store} store - Redux store.
|
||
|
* @returns {Function}
|
||
|
*/
|
||
|
MiddlewareRegistry.register(store => next => action => {
|
||
|
|
||
|
switch (action.type) {
|
||
|
case CONFERENCE_FAILED: {
|
||
|
const JitsiConferenceErrors = JitsiMeetJS.errors.conference;
|
||
|
|
||
|
if (action.conference
|
||
|
&& JitsiConferenceErrors.PASSWORD_REQUIRED === action.error) {
|
||
|
// XXX temporary solution till we move the whole invite
|
||
|
// logic in react
|
||
|
if (typeof APP !== 'undefined') {
|
||
|
APP.conference.invite.setLockedFromElsewhere(true);
|
||
|
}
|
||
|
|
||
|
store.dispatch(_showPasswordDialog(action.conference));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return next(action);
|
||
|
});
|