@bigbinary/neeto-media-recorder 2.5.7 → 2.5.8-beta
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/README.md +38 -10
- package/constants.js +2 -3
- package/constants.js.map +1 -1
- package/core.js +199 -140
- package/core.js.map +1 -1
- package/index.js +151 -156
- package/index.js.map +1 -1
- package/package.json +7 -7
package/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { shallow } from 'zustand/shallow';
|
|
2
|
-
import {
|
|
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,
|
|
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';
|
|
@@ -121,10 +121,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
121
121
|
_n = !0,
|
|
122
122
|
_d = !1;
|
|
123
123
|
try {
|
|
124
|
-
if (_x = (_i = _i.call(arr)).next, 0 === i)
|
|
125
|
-
if (Object(_i) !== _i) return;
|
|
126
|
-
_n = !1;
|
|
127
|
-
} else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
|
|
124
|
+
if (_x = (_i = _i.call(arr)).next, 0 === i) ; else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
|
|
128
125
|
} catch (err) {
|
|
129
126
|
_d = !0, _e = err;
|
|
130
127
|
} finally {
|
|
@@ -169,8 +166,6 @@ var regeneratorRuntime$1 = {exports: {}};
|
|
|
169
166
|
|
|
170
167
|
var _typeof = {exports: {}};
|
|
171
168
|
|
|
172
|
-
_typeof.exports;
|
|
173
|
-
|
|
174
169
|
(function (module) {
|
|
175
170
|
function _typeof(obj) {
|
|
176
171
|
"@babel/helpers - typeof";
|
|
@@ -186,8 +181,6 @@ _typeof.exports;
|
|
|
186
181
|
|
|
187
182
|
var _typeofExports = _typeof.exports;
|
|
188
183
|
|
|
189
|
-
regeneratorRuntime$1.exports;
|
|
190
|
-
|
|
191
184
|
(function (module) {
|
|
192
185
|
var _typeof = _typeofExports["default"];
|
|
193
186
|
function _regeneratorRuntime() {
|
|
@@ -949,23 +942,39 @@ var Controls = function Controls(_ref) {
|
|
|
949
942
|
});
|
|
950
943
|
};
|
|
951
944
|
|
|
952
|
-
var
|
|
953
|
-
var
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
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();
|
|
957
973
|
};
|
|
958
|
-
}, shallow),
|
|
959
|
-
status = _useMultipartS3Upload.status;
|
|
960
|
-
var isStatus = function isStatus() {
|
|
961
|
-
for (var _len = arguments.length, statuses = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
962
|
-
statuses[_key] = arguments[_key];
|
|
963
974
|
}
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
isStatus: isStatus
|
|
968
|
-
};
|
|
975
|
+
screenRecorder.startRecording();
|
|
976
|
+
return noop;
|
|
977
|
+
}, [recorderStatus, error]);
|
|
969
978
|
};
|
|
970
979
|
|
|
971
980
|
var Timer = function Timer() {
|
|
@@ -1239,7 +1248,6 @@ var _window;
|
|
|
1239
1248
|
var useRecorderStore = screenRecorder.useRecorderStore,
|
|
1240
1249
|
restartRecording = screenRecorder.restartRecording,
|
|
1241
1250
|
discardRecording = screenRecorder.discardRecording;
|
|
1242
|
-
var useMultipartS3UploadStore = multipartS3Uploader.useMultipartS3UploadStore;
|
|
1243
1251
|
var globalProps = ((_window = window) === null || _window === void 0 ? void 0 : _window.globalProps) || {};
|
|
1244
1252
|
var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
1245
1253
|
var _ref$onUploadComplete = _ref.onUploadComplete,
|
|
@@ -1266,6 +1274,12 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1266
1274
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
1267
1275
|
isRetryUpload = _useState8[0],
|
|
1268
1276
|
setIsRetryUpload = _useState8[1];
|
|
1277
|
+
var recordingRef = useRef({});
|
|
1278
|
+
|
|
1279
|
+
/**
|
|
1280
|
+
* @type {React.MutableRefObject<Promise<unknown> | null>}
|
|
1281
|
+
*/
|
|
1282
|
+
var createRecordingPromise = useRef(null);
|
|
1269
1283
|
var _useRecorderStore = useRecorderStore(function (store) {
|
|
1270
1284
|
return {
|
|
1271
1285
|
status: store["status"],
|
|
@@ -1278,23 +1292,19 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1278
1292
|
error = _useRecorderStore.error,
|
|
1279
1293
|
countdownTimeLeft = _useRecorderStore.countdownTimeLeft,
|
|
1280
1294
|
showTimeLimitWarning = _useRecorderStore.showTimeLimitWarning;
|
|
1281
|
-
var _useMultipartS3Upload = useMultipartS3UploadStore(function (store) {
|
|
1282
|
-
return {
|
|
1283
|
-
status: store["status"]
|
|
1284
|
-
};
|
|
1285
|
-
}, shallow),
|
|
1286
|
-
uploadStatus = _useMultipartS3Upload.status;
|
|
1287
1295
|
var _useRecorderStatus = useRecorderStatus(),
|
|
1288
1296
|
isRecorderStatus = _useRecorderStatus.isStatus;
|
|
1289
|
-
var
|
|
1290
|
-
isUploadStatus =
|
|
1297
|
+
var _useMultipartS3Upload = useMultipartS3UploadStatus(),
|
|
1298
|
+
isUploadStatus = _useMultipartS3Upload.isStatus,
|
|
1299
|
+
uploadStatus = _useMultipartS3Upload.status;
|
|
1291
1300
|
var shouldShowTimeLimitWarning = showTimeLimitWarning && isRecorderStatus(SCREEN_RECORDER_STATUS.recording, SCREEN_RECORDER_STATUS.paused);
|
|
1292
1301
|
var _useCreateRecording = useCreateRecording({
|
|
1293
1302
|
onSuccess: function onSuccess(_ref2) {
|
|
1294
1303
|
var recording = _ref2.recording,
|
|
1295
1304
|
uploadId = _ref2.uploadId;
|
|
1305
|
+
var multipartS3Uploader = getMultipartS3Uploader();
|
|
1296
1306
|
multipartS3Uploader.initialize(recording.id, uploadId);
|
|
1297
|
-
var uploadStatus =
|
|
1307
|
+
var uploadStatus = multipartS3Uploader.status;
|
|
1298
1308
|
var recorderStatus = useRecorderStore.getState().status;
|
|
1299
1309
|
if (uploadStatus === UPLOAD_STATUS$1.uploading || isRetryUpload) {
|
|
1300
1310
|
setIsRetryUpload(false);
|
|
@@ -1303,15 +1313,19 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1303
1313
|
recorderStatus: recorderStatus,
|
|
1304
1314
|
uploadStatus: uploadStatus
|
|
1305
1315
|
})) {
|
|
1306
|
-
handleDiscardRecording(
|
|
1316
|
+
handleDiscardRecording({
|
|
1317
|
+
forceAbort: true
|
|
1318
|
+
});
|
|
1307
1319
|
}
|
|
1308
1320
|
}
|
|
1309
1321
|
}),
|
|
1310
|
-
createRecording = _useCreateRecording.
|
|
1322
|
+
createRecording = _useCreateRecording.mutateAsync,
|
|
1323
|
+
isCreatingRecording = _useCreateRecording.isPending,
|
|
1311
1324
|
_useCreateRecording$d = _useCreateRecording.data,
|
|
1312
1325
|
_useCreateRecording$d2 = _useCreateRecording$d === void 0 ? {} : _useCreateRecording$d,
|
|
1313
1326
|
_useCreateRecording$d3 = _useCreateRecording$d2.recording,
|
|
1314
1327
|
recording = _useCreateRecording$d3 === void 0 ? {} : _useCreateRecording$d3;
|
|
1328
|
+
recordingRef.current = recording;
|
|
1315
1329
|
var handleCreateRecording = /*#__PURE__*/function () {
|
|
1316
1330
|
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
1317
1331
|
var deviceInfo;
|
|
@@ -1322,7 +1336,7 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1322
1336
|
return getDeviceInfo();
|
|
1323
1337
|
case 2:
|
|
1324
1338
|
deviceInfo = _context.sent;
|
|
1325
|
-
createRecording(deviceInfo);
|
|
1339
|
+
createRecordingPromise.current = createRecording(deviceInfo);
|
|
1326
1340
|
case 4:
|
|
1327
1341
|
case "end":
|
|
1328
1342
|
return _context.stop();
|
|
@@ -1334,26 +1348,32 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1334
1348
|
};
|
|
1335
1349
|
}();
|
|
1336
1350
|
var handleUploadComplete = function handleUploadComplete() {
|
|
1337
|
-
|
|
1351
|
+
var _recordingRef$current;
|
|
1352
|
+
return onUploadComplete((_recordingRef$current = recordingRef.current) === null || _recordingRef$current === void 0 ? void 0 : _recordingRef$current.id);
|
|
1338
1353
|
};
|
|
1339
1354
|
var handleDiscardRecording = /*#__PURE__*/function () {
|
|
1340
1355
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
1341
|
-
var
|
|
1356
|
+
var _ref5,
|
|
1357
|
+
_ref5$forceAbort,
|
|
1358
|
+
forceAbort,
|
|
1359
|
+
multipartS3Uploader,
|
|
1360
|
+
_args2 = arguments;
|
|
1342
1361
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
1343
1362
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1344
1363
|
case 0:
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
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;
|
|
1351
1371
|
break;
|
|
1352
1372
|
}
|
|
1353
1373
|
return _context2.abrupt("return");
|
|
1354
|
-
case 5:
|
|
1355
|
-
onDiscard();
|
|
1356
1374
|
case 6:
|
|
1375
|
+
onDiscard();
|
|
1376
|
+
case 7:
|
|
1357
1377
|
case "end":
|
|
1358
1378
|
return _context2.stop();
|
|
1359
1379
|
}
|
|
@@ -1363,32 +1383,22 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1363
1383
|
return _ref4.apply(this, arguments);
|
|
1364
1384
|
};
|
|
1365
1385
|
}();
|
|
1366
|
-
var handleRestartRecording =
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
case "end":
|
|
1377
|
-
return _context3.stop();
|
|
1378
|
-
}
|
|
1379
|
-
}, _callee3);
|
|
1380
|
-
}));
|
|
1381
|
-
return function handleRestartRecording() {
|
|
1382
|
-
return _ref5.apply(this, arguments);
|
|
1383
|
-
};
|
|
1384
|
-
}();
|
|
1385
|
-
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() {
|
|
1386
1396
|
discardRecording();
|
|
1387
|
-
|
|
1397
|
+
onDiscardAlertClose();
|
|
1388
1398
|
};
|
|
1389
|
-
var
|
|
1399
|
+
var handleConfirmRestart = function handleConfirmRestart() {
|
|
1390
1400
|
restartRecording();
|
|
1391
|
-
|
|
1401
|
+
onRestartAlertClose();
|
|
1392
1402
|
};
|
|
1393
1403
|
var handleUploadError = function handleUploadError() {
|
|
1394
1404
|
setUploadProgress(0);
|
|
@@ -1396,29 +1406,18 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1396
1406
|
var handleUploadProgress = function handleUploadProgress(progress) {
|
|
1397
1407
|
setUploadProgress(progress);
|
|
1398
1408
|
};
|
|
1399
|
-
var handleReUpload =
|
|
1400
|
-
var
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
handleCreateRecording();
|
|
1412
|
-
case 7:
|
|
1413
|
-
case "end":
|
|
1414
|
-
return _context4.stop();
|
|
1415
|
-
}
|
|
1416
|
-
}, _callee4);
|
|
1417
|
-
}));
|
|
1418
|
-
return function handleReUpload() {
|
|
1419
|
-
return _ref6.apply(this, arguments);
|
|
1420
|
-
};
|
|
1421
|
-
}();
|
|
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
|
+
};
|
|
1422
1421
|
useImperativeHandle(ref, function () {
|
|
1423
1422
|
return {
|
|
1424
1423
|
handleDiscardRecording: function handleDiscardRecording() {
|
|
@@ -1429,63 +1428,62 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1429
1428
|
}
|
|
1430
1429
|
};
|
|
1431
1430
|
});
|
|
1432
|
-
|
|
1431
|
+
useHandleErrors({
|
|
1432
|
+
error: error,
|
|
1433
|
+
recorderStatus: recorderStatus
|
|
1434
|
+
});
|
|
1433
1435
|
useEffect(function () {
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
window.navigator.permissions.query({
|
|
1440
|
-
name: "microphone"
|
|
1441
|
-
})
|
|
1442
|
-
// eslint-disable-next-line promise/prefer-await-to-then
|
|
1443
|
-
.then(function (micPermission) {
|
|
1444
|
-
var handleChange = function handleChange() {
|
|
1445
|
-
if (micPermission.state === "granted") {
|
|
1446
|
-
screenRecorder.startRecording();
|
|
1447
|
-
}
|
|
1448
|
-
};
|
|
1449
|
-
micPermission.addEventListener("change", handleChange);
|
|
1450
|
-
asyncCleanupFunc.current = function () {
|
|
1451
|
-
return micPermission.removeEventListener("change", handleChange);
|
|
1452
|
-
};
|
|
1436
|
+
var _cleanupFunction = noop;
|
|
1437
|
+
var handleOnScreenRecorderStart = function handleOnScreenRecorderStart() {
|
|
1438
|
+
var _recorderCallbacks, _uploaderCallbacks;
|
|
1439
|
+
var multipartS3Uploader = getMultipartS3Uploader({
|
|
1440
|
+
initialize: true
|
|
1453
1441
|
});
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
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);
|
|
1474
1463
|
Object.keys(recorderCallbacks).forEach(function (key) {
|
|
1475
|
-
screenRecorder.
|
|
1464
|
+
screenRecorder.addCallback(key, recorderCallbacks[key]);
|
|
1476
1465
|
});
|
|
1477
1466
|
Object.keys(uploaderCallbacks).forEach(function (key) {
|
|
1478
|
-
multipartS3Uploader.
|
|
1467
|
+
multipartS3Uploader.addCallback(key, uploaderCallbacks[key]);
|
|
1479
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();
|
|
1480
1480
|
};
|
|
1481
|
-
|
|
1482
|
-
useEffect(function () {
|
|
1483
|
-
screenRecorder.addCallback(SCREEN_RECORDER_EVENT.onStart, handleCreateRecording);
|
|
1481
|
+
screenRecorder.addCallback(SCREEN_RECORDER_EVENT.onStart, handleOnScreenRecorderStart);
|
|
1484
1482
|
screenRecorder.addCallback(SCREEN_RECORDER_EVENT.onDiscardDuringCountdown, onDiscard);
|
|
1485
1483
|
return function () {
|
|
1486
1484
|
screenRecorder.revokePermissions();
|
|
1487
|
-
multipartS3Uploader.resetState();
|
|
1488
1485
|
screenRecorder.resetState();
|
|
1486
|
+
_cleanupFunction();
|
|
1489
1487
|
};
|
|
1490
1488
|
}, []);
|
|
1491
1489
|
useEffect(function () {
|
|
@@ -1496,7 +1494,7 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1496
1494
|
if (error === SCREEN_RECORDER_ERROR.UnSupportedBrowser) {
|
|
1497
1495
|
return /*#__PURE__*/jsx(UnSupportedBrowser, {});
|
|
1498
1496
|
}
|
|
1499
|
-
if (error === SCREEN_RECORDER_ERROR.
|
|
1497
|
+
if (error === SCREEN_RECORDER_ERROR.FailedToStart) {
|
|
1500
1498
|
return /*#__PURE__*/jsxs("div", {
|
|
1501
1499
|
className: "flex h-screen w-full flex-col items-center justify-center gap-4",
|
|
1502
1500
|
children: [/*#__PURE__*/jsx(Callout, {
|
|
@@ -1513,7 +1511,14 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1513
1511
|
})]
|
|
1514
1512
|
});
|
|
1515
1513
|
}
|
|
1516
|
-
|
|
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)) {
|
|
1517
1522
|
return /*#__PURE__*/jsx(UploadingInProgress, {
|
|
1518
1523
|
recording: recording,
|
|
1519
1524
|
uploadProgress: uploadProgress,
|
|
@@ -1528,12 +1533,6 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1528
1533
|
children: /*#__PURE__*/jsx(PageLoader, {})
|
|
1529
1534
|
});
|
|
1530
1535
|
}
|
|
1531
|
-
if (hasRecordingDiscarded({
|
|
1532
|
-
recorderStatus: recorderStatus,
|
|
1533
|
-
uploadStatus: uploadStatus
|
|
1534
|
-
})) {
|
|
1535
|
-
return /*#__PURE__*/jsx(AbortUpload, {});
|
|
1536
|
-
}
|
|
1537
1536
|
return /*#__PURE__*/jsxs("div", {
|
|
1538
1537
|
className: "flex h-screen w-full flex-col items-center justify-start py-10 xl:py-14 2xl:py-20",
|
|
1539
1538
|
children: [/*#__PURE__*/jsxs("div", {
|
|
@@ -1606,19 +1605,15 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1606
1605
|
message: t("neetoMediaRecorder.record.discardConfirmation.message"),
|
|
1607
1606
|
submitButtonLabel: t("neetoMediaRecorder.record.discard"),
|
|
1608
1607
|
title: t("neetoMediaRecorder.record.discardConfirmation.title"),
|
|
1609
|
-
onClose:
|
|
1610
|
-
|
|
1611
|
-
},
|
|
1612
|
-
onSubmit: handleDiscardAlertClose
|
|
1608
|
+
onClose: onDiscardAlertClose,
|
|
1609
|
+
onSubmit: handleConfirmDiscard
|
|
1613
1610
|
}), /*#__PURE__*/jsx(Alert, {
|
|
1614
1611
|
isOpen: isRestartAlertOpen,
|
|
1615
1612
|
message: t("neetoMediaRecorder.record.restartConfirmation.message"),
|
|
1616
1613
|
submitButtonLabel: t("neetoMediaRecorder.record.restart"),
|
|
1617
1614
|
title: t("neetoMediaRecorder.record.restartConfirmation.title"),
|
|
1618
|
-
onClose:
|
|
1619
|
-
|
|
1620
|
-
},
|
|
1621
|
-
onSubmit: handleRestartAlertClose
|
|
1615
|
+
onClose: onRestartAlertClose,
|
|
1616
|
+
onSubmit: handleConfirmRestart
|
|
1622
1617
|
})]
|
|
1623
1618
|
});
|
|
1624
1619
|
};
|