@bigbinary/neeto-media-recorder 2.5.8 → 2.6.1

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/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { shallow } from 'zustand/shallow';
2
- import { useState, useEffect, forwardRef, useImperativeHandle, useRef } from 'react';
2
+ import { useEffect, useState, forwardRef, useRef, useImperativeHandle } from 'react';
3
3
  import classNames from 'classnames';
4
4
  import { isNotEmpty, noop } from '@bigbinary/neeto-cist';
5
5
  import { SCREEN_RECORDER_STATUS, UPLOAD_STATUS as UPLOAD_STATUS$1, MIME_TYPE as MIME_TYPE$1, ONE_MINUTE_IN_MILLISECONDS as ONE_MINUTE_IN_MILLISECONDS$1, ONE_SECOND_IN_MILLISECONDS as ONE_SECOND_IN_MILLISECONDS$1, IS_EXTENSION as IS_EXTENSION$1, SCREEN_RECORDER_ERROR, IS_SAFARI_EXTENSION, SCREEN_RECORDER_EVENT, UPLOAD_EVENT } from '@bigbinary/neeto-media-recorder/constants';
6
- import { screenRecorder, multipartS3Uploader } from '@bigbinary/neeto-media-recorder/core';
6
+ import { screenRecorder, useMultipartS3UploadStatus, getMultipartS3Uploader } from '@bigbinary/neeto-media-recorder/core';
7
7
  import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
8
8
  import Alert from '@bigbinary/neetoui/Alert';
9
9
  import Button from '@bigbinary/neetoui/Button';
@@ -942,23 +942,39 @@ var Controls = function Controls(_ref) {
942
942
  });
943
943
  };
944
944
 
945
- var useMultipartS3UploadStatus = function useMultipartS3UploadStatus() {
946
- var useMultipartS3UploadStore = multipartS3Uploader.useMultipartS3UploadStore;
947
- var _useMultipartS3Upload = useMultipartS3UploadStore(function (store) {
948
- return {
949
- status: store["status"]
945
+ var useHandleErrors = function useHandleErrors(_ref) {
946
+ var error = _ref.error,
947
+ recorderStatus = _ref.recorderStatus;
948
+ var _useRecorderStatus = useRecorderStatus(),
949
+ isRecorderStatus = _useRecorderStatus.isStatus;
950
+ useEffect(function () {
951
+ if (error === SCREEN_RECORDER_ERROR.UnSupportedBrowser) return noop;
952
+ if (error === SCREEN_RECORDER_ERROR.FailedToStart) return noop;
953
+ if (!isRecorderStatus(SCREEN_RECORDER_STATUS.idle) || error === SCREEN_RECORDER_ERROR.NotAllowedError || error === SCREEN_RECORDER_ERROR.MicPermissionDenied || IS_SAFARI_EXTENSION) {
954
+ if (error !== SCREEN_RECORDER_ERROR.MicPermissionDenied) return noop;
955
+ var cleanupFunction = noop;
956
+ window.navigator.permissions.query({
957
+ name: "microphone"
958
+ })
959
+ // eslint-disable-next-line promise/prefer-await-to-then
960
+ .then(function (micPermission) {
961
+ var handleChange = function handleChange() {
962
+ if (micPermission.state === "granted") {
963
+ screenRecorder.startRecording();
964
+ }
965
+ };
966
+ micPermission.addEventListener("change", handleChange);
967
+ cleanupFunction = function cleanupFunction() {
968
+ return micPermission.removeEventListener("change", handleChange);
969
+ };
970
+ });
971
+ return function () {
972
+ cleanupFunction();
950
973
  };
951
- }, shallow),
952
- status = _useMultipartS3Upload.status;
953
- var isStatus = function isStatus() {
954
- for (var _len = arguments.length, statuses = new Array(_len), _key = 0; _key < _len; _key++) {
955
- statuses[_key] = arguments[_key];
956
974
  }
957
- return statuses.includes(status);
958
- };
959
- return {
960
- isStatus: isStatus
961
- };
975
+ screenRecorder.startRecording();
976
+ return noop;
977
+ }, [recorderStatus, error]);
962
978
  };
963
979
 
964
980
  var Timer = function Timer() {
@@ -1232,7 +1248,6 @@ var _window;
1232
1248
  var useRecorderStore = screenRecorder.useRecorderStore,
1233
1249
  restartRecording = screenRecorder.restartRecording,
1234
1250
  discardRecording = screenRecorder.discardRecording;
1235
- var useMultipartS3UploadStore = multipartS3Uploader.useMultipartS3UploadStore;
1236
1251
  var globalProps = ((_window = window) === null || _window === void 0 ? void 0 : _window.globalProps) || {};
1237
1252
  var MediaRecorder = function MediaRecorder(_ref, ref) {
1238
1253
  var _ref$onUploadComplete = _ref.onUploadComplete,
@@ -1259,6 +1274,12 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1259
1274
  _useState8 = _slicedToArray(_useState7, 2),
1260
1275
  isRetryUpload = _useState8[0],
1261
1276
  setIsRetryUpload = _useState8[1];
1277
+ var recordingRef = useRef({});
1278
+
1279
+ /**
1280
+ * @type {React.MutableRefObject<Promise<unknown> | null>}
1281
+ */
1282
+ var createRecordingPromise = useRef(null);
1262
1283
  var _useRecorderStore = useRecorderStore(function (store) {
1263
1284
  return {
1264
1285
  status: store["status"],
@@ -1271,23 +1292,19 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1271
1292
  error = _useRecorderStore.error,
1272
1293
  countdownTimeLeft = _useRecorderStore.countdownTimeLeft,
1273
1294
  showTimeLimitWarning = _useRecorderStore.showTimeLimitWarning;
1274
- var _useMultipartS3Upload = useMultipartS3UploadStore(function (store) {
1275
- return {
1276
- status: store["status"]
1277
- };
1278
- }, shallow),
1279
- uploadStatus = _useMultipartS3Upload.status;
1280
1295
  var _useRecorderStatus = useRecorderStatus(),
1281
1296
  isRecorderStatus = _useRecorderStatus.isStatus;
1282
- var _useMultipartS3Upload2 = useMultipartS3UploadStatus(),
1283
- isUploadStatus = _useMultipartS3Upload2.isStatus;
1297
+ var _useMultipartS3Upload = useMultipartS3UploadStatus(),
1298
+ isUploadStatus = _useMultipartS3Upload.isStatus,
1299
+ uploadStatus = _useMultipartS3Upload.status;
1284
1300
  var shouldShowTimeLimitWarning = showTimeLimitWarning && isRecorderStatus(SCREEN_RECORDER_STATUS.recording, SCREEN_RECORDER_STATUS.paused);
1285
1301
  var _useCreateRecording = useCreateRecording({
1286
1302
  onSuccess: function onSuccess(_ref2) {
1287
1303
  var recording = _ref2.recording,
1288
1304
  uploadId = _ref2.uploadId;
1289
- multipartS3Uploader.initialize(recording.id, uploadId);
1290
- var uploadStatus = useMultipartS3UploadStore.getState().status;
1305
+ var multipartS3Uploader = getMultipartS3Uploader();
1306
+ multipartS3Uploader.setRecording(recording.id, uploadId);
1307
+ var uploadStatus = multipartS3Uploader.status;
1291
1308
  var recorderStatus = useRecorderStore.getState().status;
1292
1309
  if (uploadStatus === UPLOAD_STATUS$1.uploading || isRetryUpload) {
1293
1310
  setIsRetryUpload(false);
@@ -1296,15 +1313,19 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1296
1313
  recorderStatus: recorderStatus,
1297
1314
  uploadStatus: uploadStatus
1298
1315
  })) {
1299
- handleDiscardRecording();
1316
+ handleDiscardRecording({
1317
+ forceAbort: true
1318
+ });
1300
1319
  }
1301
1320
  }
1302
1321
  }),
1303
- createRecording = _useCreateRecording.mutate,
1322
+ createRecording = _useCreateRecording.mutateAsync,
1323
+ isCreatingRecording = _useCreateRecording.isPending,
1304
1324
  _useCreateRecording$d = _useCreateRecording.data,
1305
1325
  _useCreateRecording$d2 = _useCreateRecording$d === void 0 ? {} : _useCreateRecording$d,
1306
1326
  _useCreateRecording$d3 = _useCreateRecording$d2.recording,
1307
1327
  recording = _useCreateRecording$d3 === void 0 ? {} : _useCreateRecording$d3;
1328
+ recordingRef.current = recording;
1308
1329
  var handleCreateRecording = /*#__PURE__*/function () {
1309
1330
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
1310
1331
  var deviceInfo;
@@ -1315,7 +1336,7 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1315
1336
  return getDeviceInfo();
1316
1337
  case 2:
1317
1338
  deviceInfo = _context.sent;
1318
- createRecording(deviceInfo);
1339
+ createRecordingPromise.current = createRecording(deviceInfo);
1319
1340
  case 4:
1320
1341
  case "end":
1321
1342
  return _context.stop();
@@ -1327,26 +1348,32 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1327
1348
  };
1328
1349
  }();
1329
1350
  var handleUploadComplete = function handleUploadComplete() {
1330
- return onUploadComplete(recording.id);
1351
+ var _recordingRef$current;
1352
+ return onUploadComplete((_recordingRef$current = recordingRef.current) === null || _recordingRef$current === void 0 ? void 0 : _recordingRef$current.id);
1331
1353
  };
1332
1354
  var handleDiscardRecording = /*#__PURE__*/function () {
1333
1355
  var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
1334
- var uploadStatus;
1356
+ var _ref5,
1357
+ _ref5$forceAbort,
1358
+ forceAbort,
1359
+ multipartS3Uploader,
1360
+ _args2 = arguments;
1335
1361
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1336
1362
  while (1) switch (_context2.prev = _context2.next) {
1337
1363
  case 0:
1338
- _context2.next = 2;
1339
- return multipartS3Uploader.abortUpload();
1340
- case 2:
1341
- uploadStatus = useMultipartS3UploadStore.getState().status;
1342
- if (!(uploadStatus === UPLOAD_STATUS$1.aborting)) {
1343
- _context2.next = 5;
1364
+ _ref5 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, _ref5$forceAbort = _ref5.forceAbort, forceAbort = _ref5$forceAbort === void 0 ? false : _ref5$forceAbort;
1365
+ multipartS3Uploader = getMultipartS3Uploader();
1366
+ _context2.next = 4;
1367
+ return multipartS3Uploader.abortUpload(forceAbort);
1368
+ case 4:
1369
+ if (!(multipartS3Uploader.status === UPLOAD_STATUS$1.aborting)) {
1370
+ _context2.next = 6;
1344
1371
  break;
1345
1372
  }
1346
1373
  return _context2.abrupt("return");
1347
- case 5:
1348
- onDiscard();
1349
1374
  case 6:
1375
+ onDiscard();
1376
+ case 7:
1350
1377
  case "end":
1351
1378
  return _context2.stop();
1352
1379
  }
@@ -1356,32 +1383,22 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1356
1383
  return _ref4.apply(this, arguments);
1357
1384
  };
1358
1385
  }();
1359
- var handleRestartRecording = /*#__PURE__*/function () {
1360
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
1361
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1362
- while (1) switch (_context3.prev = _context3.next) {
1363
- case 0:
1364
- _context3.next = 2;
1365
- return multipartS3Uploader.abortUpload();
1366
- case 2:
1367
- multipartS3Uploader.resetState();
1368
- case 3:
1369
- case "end":
1370
- return _context3.stop();
1371
- }
1372
- }, _callee3);
1373
- }));
1374
- return function handleRestartRecording() {
1375
- return _ref5.apply(this, arguments);
1376
- };
1377
- }();
1378
- var handleDiscardAlertClose = function handleDiscardAlertClose() {
1386
+ var handleRestartRecording = function handleRestartRecording() {
1387
+ getMultipartS3Uploader().abortUpload();
1388
+ };
1389
+ var onDiscardAlertClose = function onDiscardAlertClose() {
1390
+ return setIsDiscardAlertOpen(false);
1391
+ };
1392
+ var onRestartAlertClose = function onRestartAlertClose() {
1393
+ return setIsRestartAlertOpen(false);
1394
+ };
1395
+ var handleConfirmDiscard = function handleConfirmDiscard() {
1379
1396
  discardRecording();
1380
- setIsDiscardAlertOpen(false);
1397
+ onDiscardAlertClose();
1381
1398
  };
1382
- var handleRestartAlertClose = function handleRestartAlertClose() {
1399
+ var handleConfirmRestart = function handleConfirmRestart() {
1383
1400
  restartRecording();
1384
- setIsRestartAlertOpen(false);
1401
+ onRestartAlertClose();
1385
1402
  };
1386
1403
  var handleUploadError = function handleUploadError() {
1387
1404
  setUploadProgress(0);
@@ -1389,29 +1406,18 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1389
1406
  var handleUploadProgress = function handleUploadProgress(progress) {
1390
1407
  setUploadProgress(progress);
1391
1408
  };
1392
- var handleReUpload = /*#__PURE__*/function () {
1393
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
1394
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1395
- while (1) switch (_context4.prev = _context4.next) {
1396
- case 0:
1397
- setIsRetryUpload(true);
1398
- setUploadProgress(0);
1399
- _context4.next = 4;
1400
- return multipartS3Uploader.abortUpload();
1401
- case 4:
1402
- multipartS3Uploader.resetState();
1403
- multipartS3Uploader.push(screenRecorder.getWebmMediaBlob());
1404
- handleCreateRecording();
1405
- case 7:
1406
- case "end":
1407
- return _context4.stop();
1408
- }
1409
- }, _callee4);
1410
- }));
1411
- return function handleReUpload() {
1412
- return _ref6.apply(this, arguments);
1413
- };
1414
- }();
1409
+ var handleReUpload = function handleReUpload() {
1410
+ var multipartS3Uploader = getMultipartS3Uploader();
1411
+ setIsRetryUpload(true);
1412
+ setUploadProgress(0);
1413
+ multipartS3Uploader.abortUpload();
1414
+
1415
+ // Create a new multipartS3Uploader instance to push the blob
1416
+ getMultipartS3Uploader({
1417
+ initialize: true
1418
+ }).push(screenRecorder.getWebmMediaBlob());
1419
+ handleCreateRecording();
1420
+ };
1415
1421
  useImperativeHandle(ref, function () {
1416
1422
  return {
1417
1423
  handleDiscardRecording: function handleDiscardRecording() {
@@ -1422,63 +1428,62 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1422
1428
  }
1423
1429
  };
1424
1430
  });
1425
- var asyncCleanupFunc = useRef(null);
1431
+ useHandleErrors({
1432
+ error: error,
1433
+ recorderStatus: recorderStatus
1434
+ });
1426
1435
  useEffect(function () {
1427
- if (error === SCREEN_RECORDER_ERROR.UnSupportedBrowser) return noop;
1428
- if (error === SCREEN_RECORDER_ERROR.NotSupportedError) return noop;
1429
- if (error === SCREEN_RECORDER_ERROR.InvalidStateError) return noop;
1430
- if (!isRecorderStatus(SCREEN_RECORDER_STATUS.idle) || error === SCREEN_RECORDER_ERROR.NotAllowedError || error === SCREEN_RECORDER_ERROR.MicPermissionDenied || IS_SAFARI_EXTENSION) {
1431
- if (error !== SCREEN_RECORDER_ERROR.MicPermissionDenied) return noop;
1432
- window.navigator.permissions.query({
1433
- name: "microphone"
1434
- })
1435
- // eslint-disable-next-line promise/prefer-await-to-then
1436
- .then(function (micPermission) {
1437
- var handleChange = function handleChange() {
1438
- if (micPermission.state === "granted") {
1439
- screenRecorder.startRecording();
1440
- }
1441
- };
1442
- micPermission.addEventListener("change", handleChange);
1443
- asyncCleanupFunc.current = function () {
1444
- return micPermission.removeEventListener("change", handleChange);
1445
- };
1436
+ var _cleanupFunction = noop;
1437
+ var handleOnScreenRecorderStart = function handleOnScreenRecorderStart() {
1438
+ var _recorderCallbacks, _uploaderCallbacks;
1439
+ var multipartS3Uploader = getMultipartS3Uploader({
1440
+ initialize: true
1446
1441
  });
1447
- return function () {
1448
- if (!asyncCleanupFunc.current) return;
1449
- asyncCleanupFunc.current();
1450
- asyncCleanupFunc.current = null;
1451
- };
1452
- }
1453
- screenRecorder.startRecording();
1454
- return noop;
1455
- }, [recorderStatus, error]);
1456
- useEffect(function () {
1457
- var _recorderCallbacks, _uploaderCallbacks;
1458
- var recorderCallbacks = (_recorderCallbacks = {}, _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onDataAvailable, multipartS3Uploader.push), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onStop, multipartS3Uploader.completeUpload), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onDiscard, handleDiscardRecording), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onRestart, handleRestartRecording), _recorderCallbacks);
1459
- var uploaderCallbacks = (_uploaderCallbacks = {}, _defineProperty(_uploaderCallbacks, UPLOAD_EVENT.onComplete, handleUploadComplete), _defineProperty(_uploaderCallbacks, UPLOAD_EVENT.onError, handleUploadError), _defineProperty(_uploaderCallbacks, UPLOAD_EVENT.onProgress, handleUploadProgress), _uploaderCallbacks);
1460
- Object.keys(recorderCallbacks).forEach(function (key) {
1461
- screenRecorder.addCallback(key, recorderCallbacks[key]);
1462
- });
1463
- Object.keys(uploaderCallbacks).forEach(function (key) {
1464
- multipartS3Uploader.addCallback(key, uploaderCallbacks[key]);
1465
- });
1466
- return function () {
1442
+ var recorderCallbacks = (_recorderCallbacks = {}, _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onDataAvailable, multipartS3Uploader.push), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onStop, _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
1443
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1444
+ while (1) switch (_context3.prev = _context3.next) {
1445
+ case 0:
1446
+ if (!createRecordingPromise.current) {
1447
+ _context3.next = 4;
1448
+ break;
1449
+ }
1450
+ _context3.next = 3;
1451
+ return createRecordingPromise.current;
1452
+ case 3:
1453
+ createRecordingPromise.current = null;
1454
+ case 4:
1455
+ multipartS3Uploader.completeUpload();
1456
+ case 5:
1457
+ case "end":
1458
+ return _context3.stop();
1459
+ }
1460
+ }, _callee3);
1461
+ }))), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onDiscard, handleDiscardRecording), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onRestart, handleRestartRecording), _recorderCallbacks);
1462
+ var uploaderCallbacks = (_uploaderCallbacks = {}, _defineProperty(_uploaderCallbacks, UPLOAD_EVENT.onComplete, handleUploadComplete), _defineProperty(_uploaderCallbacks, UPLOAD_EVENT.onError, handleUploadError), _defineProperty(_uploaderCallbacks, UPLOAD_EVENT.onProgress, handleUploadProgress), _uploaderCallbacks);
1467
1463
  Object.keys(recorderCallbacks).forEach(function (key) {
1468
- screenRecorder.removeCallback(key, recorderCallbacks[key]);
1464
+ screenRecorder.addCallback(key, recorderCallbacks[key]);
1469
1465
  });
1470
1466
  Object.keys(uploaderCallbacks).forEach(function (key) {
1471
- multipartS3Uploader.removeCallback(key, uploaderCallbacks[key]);
1467
+ multipartS3Uploader.addCallback(key, uploaderCallbacks[key]);
1472
1468
  });
1469
+ _cleanupFunction = function cleanupFunction() {
1470
+ Object.keys(recorderCallbacks).forEach(function (key) {
1471
+ screenRecorder.removeCallback(key, recorderCallbacks[key]);
1472
+ });
1473
+ Object.keys(uploaderCallbacks).forEach(function (key) {
1474
+ multipartS3Uploader.removeCallback(key, uploaderCallbacks[key]);
1475
+ });
1476
+ multipartS3Uploader.removeCallback(UPLOAD_EVENT.onAbort, _cleanupFunction);
1477
+ };
1478
+ multipartS3Uploader.addCallback(UPLOAD_EVENT.onAbort, _cleanupFunction);
1479
+ handleCreateRecording();
1473
1480
  };
1474
- }, [recording.id]);
1475
- useEffect(function () {
1476
- screenRecorder.addCallback(SCREEN_RECORDER_EVENT.onStart, handleCreateRecording);
1481
+ screenRecorder.addCallback(SCREEN_RECORDER_EVENT.onStart, handleOnScreenRecorderStart);
1477
1482
  screenRecorder.addCallback(SCREEN_RECORDER_EVENT.onDiscardDuringCountdown, onDiscard);
1478
1483
  return function () {
1479
1484
  screenRecorder.revokePermissions();
1480
- multipartS3Uploader.resetState();
1481
1485
  screenRecorder.resetState();
1486
+ _cleanupFunction();
1482
1487
  };
1483
1488
  }, []);
1484
1489
  useEffect(function () {
@@ -1489,7 +1494,7 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1489
1494
  if (error === SCREEN_RECORDER_ERROR.UnSupportedBrowser) {
1490
1495
  return /*#__PURE__*/jsx(UnSupportedBrowser, {});
1491
1496
  }
1492
- if (error === SCREEN_RECORDER_ERROR.NotSupportedError || error === SCREEN_RECORDER_ERROR.InvalidStateError) {
1497
+ if (error === SCREEN_RECORDER_ERROR.FailedToStart) {
1493
1498
  return /*#__PURE__*/jsxs("div", {
1494
1499
  className: "flex h-screen w-full flex-col items-center justify-center gap-4",
1495
1500
  children: [/*#__PURE__*/jsx(Callout, {
@@ -1506,7 +1511,14 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1506
1511
  })]
1507
1512
  });
1508
1513
  }
1509
- if (isRetryUpload || isRecorderStatus(SCREEN_RECORDER_STATUS.stopped) && isUploadStatus(UPLOAD_STATUS$1.uploading, UPLOAD_STATUS$1.error)) {
1514
+ var isBeingUploadedOrHasErrorUploading = isUploadStatus(UPLOAD_STATUS$1.uploading, UPLOAD_STATUS$1.error);
1515
+ if (hasRecordingDiscarded({
1516
+ recorderStatus: recorderStatus,
1517
+ uploadStatus: uploadStatus
1518
+ })) {
1519
+ return /*#__PURE__*/jsx(AbortUpload, {});
1520
+ }
1521
+ if (isRetryUpload || isRecorderStatus(SCREEN_RECORDER_STATUS.stopped) && (isCreatingRecording || isBeingUploadedOrHasErrorUploading)) {
1510
1522
  return /*#__PURE__*/jsx(UploadingInProgress, {
1511
1523
  recording: recording,
1512
1524
  uploadProgress: uploadProgress,
@@ -1521,12 +1533,6 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1521
1533
  children: /*#__PURE__*/jsx(PageLoader, {})
1522
1534
  });
1523
1535
  }
1524
- if (hasRecordingDiscarded({
1525
- recorderStatus: recorderStatus,
1526
- uploadStatus: uploadStatus
1527
- })) {
1528
- return /*#__PURE__*/jsx(AbortUpload, {});
1529
- }
1530
1536
  return /*#__PURE__*/jsxs("div", {
1531
1537
  className: "flex h-screen w-full flex-col items-center justify-start py-10 xl:py-14 2xl:py-20",
1532
1538
  children: [/*#__PURE__*/jsxs("div", {
@@ -1599,19 +1605,15 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
1599
1605
  message: t("neetoMediaRecorder.record.discardConfirmation.message"),
1600
1606
  submitButtonLabel: t("neetoMediaRecorder.record.discard"),
1601
1607
  title: t("neetoMediaRecorder.record.discardConfirmation.title"),
1602
- onClose: function onClose() {
1603
- return setIsDiscardAlertOpen(false);
1604
- },
1605
- onSubmit: handleDiscardAlertClose
1608
+ onClose: onDiscardAlertClose,
1609
+ onSubmit: handleConfirmDiscard
1606
1610
  }), /*#__PURE__*/jsx(Alert, {
1607
1611
  isOpen: isRestartAlertOpen,
1608
1612
  message: t("neetoMediaRecorder.record.restartConfirmation.message"),
1609
1613
  submitButtonLabel: t("neetoMediaRecorder.record.restart"),
1610
1614
  title: t("neetoMediaRecorder.record.restartConfirmation.title"),
1611
- onClose: function onClose() {
1612
- return setIsRestartAlertOpen(false);
1613
- },
1614
- onSubmit: handleRestartAlertClose
1615
+ onClose: onRestartAlertClose,
1616
+ onSubmit: handleConfirmRestart
1615
1617
  })]
1616
1618
  });
1617
1619
  };