Files
jitsi-meet/react/features/base/i18n/middleware.js
Lyubo Marinov 320e67baa1 Fix the initialization of the (external) API
The counterpart of the external API in the Jitsi Meet Web app uses the
search URL param jwt to heuristically detect that the Web app is very
likely embedded (as an iframe) and, consequently, needs to forcefully
enable itself. It was looking at whether there was a JSON Web Token
(JWT) but that logic got broken when the JWT support was rewritten
because the check started happening before the search URL param jwt was
parsed.
2017-05-30 09:38:18 -05:00

49 lines
1.3 KiB
JavaScript

/* @flow */
import { SET_CONFIG } from '../config';
import { MiddlewareRegistry } from '../redux';
declare var APP: Object;
/**
* The redux middleware of the feature base/i18n.
*
* @param {Store} store - The redux store.
* @returns {Function}
* @private
*/
MiddlewareRegistry.register(store => next => action => {
switch (action.type) {
case SET_CONFIG:
return _setConfig(store, next, action);
}
return next(action);
});
/**
* Notifies the feature base/i18n that the action SET_CONFIG is being dispatched
* within a specific redux store.
*
* @param {Store} store - The redux store in which the specified action is being
* dispatched.
* @param {Dispatch} next - The redux dispatch function to dispatch the
* specified action to the specified store.
* @param {Action} action - The redux action SET_CONFIG which is being
* dispatched in the specified store.
* @private
* @returns {Object} The new state that is the result of the reduction of the
* specified action.
*/
function _setConfig({ dispatch, getState }, next, action) {
const oldValue = getState()['features/base/config'];
const result = next(action);
const newValue = getState()['features/base/config'];
if (oldValue !== newValue && typeof APP === 'object') {
APP.translation.init();
}
return result;
}