[RN] Detect errors when loading the configuration
The error is stored in the redux store in base/config so other components can consult it. It is also broadcasted as a new event in the external API for the SDK.
This commit is contained in:
parent
1d8ee9d32f
commit
284e4e543e
|
@ -241,3 +241,9 @@ The `data` HashMap contains a "url" key with the conference URL.
|
||||||
Called before a conference is left.
|
Called before a conference is left.
|
||||||
|
|
||||||
The `data` HashMap contains a "url" key with the conference URL.
|
The `data` HashMap contains a "url" key with the conference URL.
|
||||||
|
|
||||||
|
#### onLoadConfigError
|
||||||
|
|
||||||
|
Called when loading the main configuration fails.
|
||||||
|
|
||||||
|
The `data` HashMap contains a "error" key with the error.
|
||||||
|
|
|
@ -57,4 +57,11 @@ public abstract class JitsiMeetViewAdapter implements JitsiMeetViewListener {
|
||||||
@Override
|
@Override
|
||||||
public void onConferenceWillLeave(Map<String, Object> data) {
|
public void onConferenceWillLeave(Map<String, Object> data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void onLoadConfigError(Map<String, Object> data) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,4 +58,11 @@ public interface JitsiMeetViewListener {
|
||||||
* @param data - Map with a "url" key with the conference URL.
|
* @param data - Map with a "url" key with the conference URL.
|
||||||
*/
|
*/
|
||||||
void onConferenceWillLeave(Map<String, Object> data);
|
void onConferenceWillLeave(Map<String, Object> data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when loading the main configuration fails.
|
||||||
|
*
|
||||||
|
* @param data - Map with a "error" key with the error.
|
||||||
|
*/
|
||||||
|
void onLoadConfigError(Map<String, Object> data);
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,3 +150,9 @@ The `data` dictionary contains a "url" key with the conference URL.
|
||||||
Called before a conference is left.
|
Called before a conference is left.
|
||||||
|
|
||||||
The `data` dictionary contains a "url" key with the conference URL.
|
The `data` dictionary contains a "url" key with the conference URL.
|
||||||
|
|
||||||
|
#### loadConfigError
|
||||||
|
|
||||||
|
Called when loading the main configuration fails.
|
||||||
|
|
||||||
|
The `data` dictionary contains a "error" key with the error.
|
||||||
|
|
|
@ -59,4 +59,11 @@
|
||||||
*/
|
*/
|
||||||
- (void) conferenceWillLeave:(NSDictionary *)data;
|
- (void) conferenceWillLeave:(NSDictionary *)data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when loading the main configuration file fails.
|
||||||
|
*
|
||||||
|
* The {@code data} dictionary contains a {@code error} key with the error.
|
||||||
|
*/
|
||||||
|
- (void) loadConfigError:(NSDictionary *)data;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { setRoom } from '../base/conference';
|
import { setRoom } from '../base/conference';
|
||||||
import { setLocationURL } from '../base/connection';
|
import { setLocationURL } from '../base/connection';
|
||||||
import { setConfig } from '../base/config';
|
import { loadConfigError, setConfig } from '../base/config';
|
||||||
import { loadConfig } from '../base/lib-jitsi-meet';
|
import { loadConfig } from '../base/lib-jitsi-meet';
|
||||||
import { parseURIString } from '../base/util';
|
import { parseURIString } from '../base/util';
|
||||||
|
|
||||||
|
@ -66,8 +66,12 @@ function _appNavigateToMandatoryLocation(
|
||||||
// certificate-related error. In which case the connection will
|
// certificate-related error. In which case the connection will
|
||||||
// fail later in Strophe anyway even if we use the default
|
// fail later in Strophe anyway even if we use the default
|
||||||
// config here.
|
// config here.
|
||||||
|
dispatch(loadConfigError(error));
|
||||||
|
|
||||||
|
// We cannot go to the requested room if we weren't able to load
|
||||||
|
// the configuration. Go back to the entryway.
|
||||||
|
newLocation.room = undefined;
|
||||||
|
|
||||||
// The function loadConfig will log the err.
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,14 @@
|
||||||
|
/**
|
||||||
|
* The redux action which signals the configuration couldn't be loaded due to an
|
||||||
|
* error.
|
||||||
|
*
|
||||||
|
* {
|
||||||
|
* type: LOAD_CONFIG_ERROR,
|
||||||
|
* error: Error
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
export const LOAD_CONFIG_ERROR = Symbol('LOAD_CONFIG_ERROR');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The redux action which sets the configuration represented by the feature
|
* The redux action which sets the configuration represented by the feature
|
||||||
* base/config. The configuration is defined and consumed by the library
|
* base/config. The configuration is defined and consumed by the library
|
||||||
|
|
|
@ -1,6 +1,22 @@
|
||||||
/* @flow */
|
/* @flow */
|
||||||
|
|
||||||
import { SET_CONFIG } from './actionTypes';
|
import { LOAD_CONFIG_ERROR, SET_CONFIG } from './actionTypes';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Signals an error when loading the configuration.
|
||||||
|
*
|
||||||
|
* @param {Error} error - The error which caused the config to not be loaded.
|
||||||
|
* @returns {{
|
||||||
|
* type: LOAD_CONFIG_ERROR,
|
||||||
|
* error: Error
|
||||||
|
* }}
|
||||||
|
*/
|
||||||
|
export function loadConfigError(error: Error) {
|
||||||
|
return {
|
||||||
|
type: LOAD_CONFIG_ERROR,
|
||||||
|
error
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the configuration represented by the feature base/config. The
|
* Sets the configuration represented by the feature base/config. The
|
||||||
|
|
|
@ -10,6 +10,7 @@ import {
|
||||||
CONFERENCE_WILL_LEAVE,
|
CONFERENCE_WILL_LEAVE,
|
||||||
JITSI_CONFERENCE_URL_KEY
|
JITSI_CONFERENCE_URL_KEY
|
||||||
} from '../../base/conference';
|
} from '../../base/conference';
|
||||||
|
import { LOAD_CONFIG_ERROR } from '../../base/config';
|
||||||
import { MiddlewareRegistry } from '../../base/redux';
|
import { MiddlewareRegistry } from '../../base/redux';
|
||||||
import { toURLString } from '../../base/util';
|
import { toURLString } from '../../base/util';
|
||||||
|
|
||||||
|
@ -45,6 +46,16 @@ MiddlewareRegistry.register(store => next => action => {
|
||||||
_sendEvent(store, name, data);
|
_sendEvent(store, name, data);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case LOAD_CONFIG_ERROR: {
|
||||||
|
const { type, error } = action;
|
||||||
|
|
||||||
|
_sendEvent(
|
||||||
|
store,
|
||||||
|
_getSymbolDescription(type),
|
||||||
|
{ error: String(error) });
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
Loading…
Reference in New Issue