|
@@ -13,6 +13,7 @@ import {
|
13
|
13
|
isRoomValid
|
14
|
14
|
} from '../../base/conference';
|
15
|
15
|
import { LOAD_CONFIG_ERROR } from '../../base/config';
|
|
16
|
+import { CONNECTION_FAILED } from '../../base/connection';
|
16
|
17
|
import { MiddlewareRegistry } from '../../base/redux';
|
17
|
18
|
import { toURLString } from '../../base/util';
|
18
|
19
|
import { ENTER_PICTURE_IN_PICTURE } from '../picture-in-picture';
|
|
@@ -56,6 +57,10 @@ MiddlewareRegistry.register(store => next => action => {
|
56
|
57
|
_sendConferenceEvent(store, action);
|
57
|
58
|
break;
|
58
|
59
|
|
|
60
|
+ case CONNECTION_FAILED:
|
|
61
|
+ _sendConferenceFailedOnConnectionError(store, action);
|
|
62
|
+ break;
|
|
63
|
+
|
59
|
64
|
case ENTER_PICTURE_IN_PICTURE:
|
60
|
65
|
_sendEvent(store, _getSymbolDescription(action.type), /* data */ {});
|
61
|
66
|
break;
|
|
@@ -175,6 +180,28 @@ function _sendConferenceEvent(
|
175
|
180
|
|| _sendEvent(store, _getSymbolDescription(type), data);
|
176
|
181
|
}
|
177
|
182
|
|
|
183
|
+/**
|
|
184
|
+ * Sends {@link CONFERENCE_FAILED} event when the {@link CONNECTION_FAILED}
|
|
185
|
+ * occurs. Otherwise the external API will not emit such event, because at this
|
|
186
|
+ * point conference has not been created yet and the base/conference feature
|
|
187
|
+ * will not emit it.
|
|
188
|
+ *
|
|
189
|
+ * @param {Store} store - The redux store.
|
|
190
|
+ * @param {Action} action - The redux action.
|
|
191
|
+ * @returns {void}
|
|
192
|
+ */
|
|
193
|
+function _sendConferenceFailedOnConnectionError(store, action) {
|
|
194
|
+ const { locationURL } = store.getState()['features/base/connection'];
|
|
195
|
+
|
|
196
|
+ locationURL && _sendEvent(
|
|
197
|
+ store,
|
|
198
|
+ _getSymbolDescription(CONFERENCE_FAILED),
|
|
199
|
+ /* data */ {
|
|
200
|
+ url: toURLString(locationURL),
|
|
201
|
+ error: action.error.name
|
|
202
|
+ });
|
|
203
|
+}
|
|
204
|
+
|
178
|
205
|
/**
|
179
|
206
|
* Sends a specific event to the native counterpart of the External API. Native
|
180
|
207
|
* apps may listen to such events via the mechanisms provided by the (native)
|