For the external api to fire update events out of the iframe, it must first be initialized within the jitsi app. Any invocations by the app to send updates events before initialization will cause the api to swallow the events. The chosen fix is to initialize the api earlier so the first update of app's redux store fires update events that the api will also fire out of the iframe. This change will affect current behavior in that right now the update event of the initial set of the avatar url is blocked, but the change will make that event fire out of the iframe.
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
// @flow
|
|
|
|
import type { Dispatch } from 'redux';
|
|
|
|
import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from './actionTypes';
|
|
|
|
declare var APP;
|
|
|
|
/**
|
|
* Signals that a specific App will mount (in the terms of React).
|
|
*
|
|
* @param {App} app - The App which will mount.
|
|
* @returns {{
|
|
* type: APP_WILL_MOUNT,
|
|
* app: App
|
|
* }}
|
|
*/
|
|
export function appWillMount(app: Object) {
|
|
return (dispatch: Dispatch<any>) => {
|
|
// TODO There was a redux action creator appInit which I did not like
|
|
// because we already had the redux action creator appWillMount and,
|
|
// respectively, the redux action APP_WILL_MOUNT. So I set out to remove
|
|
// appInit and managed to move everything it was doing but the
|
|
// following. Which is not extremely bad because we haven't moved the
|
|
// API module into its own feature yet so we're bound to work on that in
|
|
// the future.
|
|
typeof APP === 'object' && APP.API.init();
|
|
|
|
dispatch({
|
|
type: APP_WILL_MOUNT,
|
|
app
|
|
});
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Signals that a specific App will unmount (in the terms of React).
|
|
*
|
|
* @param {App} app - The App which will unmount.
|
|
* @returns {{
|
|
* type: APP_WILL_UNMOUNT,
|
|
* app: App
|
|
* }}
|
|
*/
|
|
export function appWillUnmount(app: Object) {
|
|
return {
|
|
type: APP_WILL_UNMOUNT,
|
|
app
|
|
};
|
|
}
|