agora-appbuilder-core 4.0.22-beta-9 → 4.0.22-beta-10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agora-appbuilder-core",
3
- "version": "4.0.22-beta-9",
3
+ "version": "4.0.22-beta-10",
4
4
  "description": "React Native template for RTE app builder",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -117,6 +117,7 @@ enum RECORDING_REQUEST_STATE {
117
117
  STARTED_MIX = 'STARTED_MIX',
118
118
  STARTED_WEB = 'STARTED_WEB',
119
119
  STOPPED = 'STOPPED',
120
+ STOP_FAILED = 'STOP_FAILED',
120
121
  FAILED = 'FAILED',
121
122
  }
122
123
  const RecordingActions = {
@@ -321,9 +322,29 @@ const RecordingProvider = (props: RecordingProviderProps) => {
321
322
  }
322
323
  }
323
324
  } else if (res.status === 500) {
325
+ setRecordingActive(false);
326
+ setInProgress(false);
327
+ events.send(
328
+ EventNames.RECORDING_STATE_ATTRIBUTE,
329
+ JSON.stringify({
330
+ action: RecordingActions.RECORDING_REQUEST_STATE.FAILED,
331
+ value: `${localUid}`,
332
+ }),
333
+ PersistanceLevel.Session,
334
+ );
324
335
  showErrorToast(headingStartError, subheadingError);
325
336
  throw Error(`Internal server error ${res.status}`);
326
337
  } else {
338
+ setRecordingActive(false);
339
+ setInProgress(false);
340
+ events.send(
341
+ EventNames.RECORDING_STATE_ATTRIBUTE,
342
+ JSON.stringify({
343
+ action: RecordingActions.RECORDING_REQUEST_STATE.FAILED,
344
+ value: `${localUid}`,
345
+ }),
346
+ PersistanceLevel.Session,
347
+ );
327
348
  showErrorToast(headingStartError);
328
349
  throw Error(`Internal server error ${res.status}`);
329
350
  }
@@ -352,6 +373,14 @@ const RecordingProvider = (props: RecordingProviderProps) => {
352
373
  /**
353
374
  * Any host in the channel can stop recording.
354
375
  */
376
+ events.send(
377
+ EventNames.RECORDING_STATE_ATTRIBUTE,
378
+ JSON.stringify({
379
+ action: RecordingActions.RECORDING_REQUEST_STATE.PENDING,
380
+ value: {uid: `${localUid}`, api: 'STOP_RECORDING'},
381
+ }),
382
+ PersistanceLevel.Session,
383
+ );
355
384
  logger.debug(LogSource.Internals, 'RECORDING', 'stop recording API called');
356
385
  fetchRetry(`${$config.BACKEND_ENDPOINT}/v1/recording/stop`, {
357
386
  method: 'POST',
@@ -389,6 +418,14 @@ const RecordingProvider = (props: RecordingProviderProps) => {
389
418
  // 2. set the local recording state to false to update the UI
390
419
  setRecordingActive(false);
391
420
  } else if (res.status === 500) {
421
+ events.send(
422
+ EventNames.RECORDING_STATE_ATTRIBUTE,
423
+ JSON.stringify({
424
+ action: RecordingActions.RECORDING_REQUEST_STATE.STOP_FAILED,
425
+ value: `${localUid}`,
426
+ }),
427
+ PersistanceLevel.Session,
428
+ );
392
429
  logger.error(
393
430
  LogSource.NetworkRest,
394
431
  'recording_stop',
@@ -398,6 +435,14 @@ const RecordingProvider = (props: RecordingProviderProps) => {
398
435
  showErrorToast(headingStopError, subheadingError);
399
436
  throw Error(`Internal server error ${res.status}`);
400
437
  } else {
438
+ events.send(
439
+ EventNames.RECORDING_STATE_ATTRIBUTE,
440
+ JSON.stringify({
441
+ action: RecordingActions.RECORDING_REQUEST_STATE.STOP_FAILED,
442
+ value: `${localUid}`,
443
+ }),
444
+ PersistanceLevel.Session,
445
+ );
401
446
  logger.error(
402
447
  LogSource.NetworkRest,
403
448
  'recording_stop',
@@ -410,13 +455,12 @@ const RecordingProvider = (props: RecordingProviderProps) => {
410
455
  }
411
456
  })
412
457
  .catch(err => {
413
- setRecordingActive(false);
414
458
  setInProgress(false);
415
459
  log('stop recording', err);
416
460
  events.send(
417
461
  EventNames.RECORDING_STATE_ATTRIBUTE,
418
462
  JSON.stringify({
419
- action: RecordingActions.RECORDING_REQUEST_STATE.FAILED,
463
+ action: RecordingActions.RECORDING_REQUEST_STATE.STOP_FAILED,
420
464
  value: `${localUid}`,
421
465
  }),
422
466
  PersistanceLevel.Session,
@@ -433,14 +477,6 @@ const RecordingProvider = (props: RecordingProviderProps) => {
433
477
 
434
478
  const stopRecording = useCallback(() => {
435
479
  setInProgress(true);
436
- events.send(
437
- EventNames.RECORDING_STATE_ATTRIBUTE,
438
- JSON.stringify({
439
- action: RecordingActions.RECORDING_REQUEST_STATE.PENDING,
440
- value: {uid: `${localUid}`, api: 'STOP_RECORDING'},
441
- }),
442
- PersistanceLevel.Session,
443
- );
444
480
  if (recordingMode === 'WEB') {
445
481
  log('Stopping recording by sending event to bot');
446
482
  // send stop request to bot
@@ -563,6 +599,13 @@ const RecordingProvider = (props: RecordingProviderProps) => {
563
599
  setInProgress(false);
564
600
  setRecordingActive(false);
565
601
  break;
602
+ /**
603
+ * The below case is for enable stop button again if stop recording api failed. for remote users
604
+ */
605
+ case RecordingActions.RECORDING_REQUEST_STATE.STOP_FAILED:
606
+ setInProgress(false);
607
+ setRecordingActive(true);
608
+ break;
566
609
  /**
567
610
  * The below case is not persisted, hence we need not worry about whether the
568
611
  * new user gets the correct state or not