[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:
committed by
Lyubo Marinov
parent
1d8ee9d32f
commit
284e4e543e
@@ -1,6 +1,6 @@
|
||||
import { setRoom } from '../base/conference';
|
||||
import { setLocationURL } from '../base/connection';
|
||||
import { setConfig } from '../base/config';
|
||||
import { loadConfigError, setConfig } from '../base/config';
|
||||
import { loadConfig } from '../base/lib-jitsi-meet';
|
||||
import { parseURIString } from '../base/util';
|
||||
|
||||
@@ -66,8 +66,12 @@ function _appNavigateToMandatoryLocation(
|
||||
// certificate-related error. In which case the connection will
|
||||
// fail later in Strophe anyway even if we use the default
|
||||
// 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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
* base/config. The configuration is defined and consumed by the library
|
||||
|
||||
@@ -1,6 +1,22 @@
|
||||
/* @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
|
||||
|
||||
@@ -10,6 +10,7 @@ import {
|
||||
CONFERENCE_WILL_LEAVE,
|
||||
JITSI_CONFERENCE_URL_KEY
|
||||
} from '../../base/conference';
|
||||
import { LOAD_CONFIG_ERROR } from '../../base/config';
|
||||
import { MiddlewareRegistry } from '../../base/redux';
|
||||
import { toURLString } from '../../base/util';
|
||||
|
||||
@@ -45,6 +46,16 @@ MiddlewareRegistry.register(store => next => action => {
|
||||
_sendEvent(store, name, data);
|
||||
break;
|
||||
}
|
||||
|
||||
case LOAD_CONFIG_ERROR: {
|
||||
const { type, error } = action;
|
||||
|
||||
_sendEvent(
|
||||
store,
|
||||
_getSymbolDescription(type),
|
||||
{ error: String(error) });
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user