@bigbinary/neeto-media-recorder 2.7.28 → 2.7.29-beta.2
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/constants.js +13 -1
- package/constants.js.map +1 -1
- package/core.js +45 -39
- package/core.js.map +1 -1
- package/index.js +220 -111
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -8,8 +8,9 @@ import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
|
|
|
8
8
|
import Alert from '@bigbinary/neetoui/Alert';
|
|
9
9
|
import { Trans, useTranslation } from 'react-i18next';
|
|
10
10
|
import axios from 'axios';
|
|
11
|
+
import Toastr from '@bigbinary/neetoui/Toastr';
|
|
11
12
|
import platform from 'platform';
|
|
12
|
-
import { isNotNil
|
|
13
|
+
import { isNotNil } from 'ramda';
|
|
13
14
|
import withT from '@bigbinary/neeto-commons-frontend/react-utils/withT';
|
|
14
15
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
15
16
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
@@ -22,7 +23,6 @@ import Pause from '@bigbinary/neeto-icons/Pause';
|
|
|
22
23
|
import Unlock from '@bigbinary/neeto-icons/Unlock';
|
|
23
24
|
import Delete from '@bigbinary/neeto-icons/Delete';
|
|
24
25
|
import Browser from '@bigbinary/neeto-icons/Browser';
|
|
25
|
-
import { copyToClipboard } from '@bigbinary/neeto-commons-frontend/utils/general';
|
|
26
26
|
import Close from '@bigbinary/neeto-icons/Close';
|
|
27
27
|
import Download from '@bigbinary/neeto-icons/Download';
|
|
28
28
|
import Copy from '@bigbinary/neeto-icons/Copy';
|
|
@@ -508,14 +508,49 @@ var UPLOAD_STATUS = {
|
|
|
508
508
|
};
|
|
509
509
|
var HAS_CHROME_NAMESPACE = (typeof chrome === "undefined" ? "undefined" : _typeof$1(chrome)) === "object";
|
|
510
510
|
var IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);
|
|
511
|
-
platform.name === "Safari";
|
|
511
|
+
var IS_SAFARI = platform.name === "Safari";
|
|
512
|
+
|
|
513
|
+
// Firefox refuses to start a MediaRecorder on a stream that has both audio and
|
|
514
|
+
// video tracks unless the MIME string declares the audio codec too. Chromium
|
|
515
|
+
// and Safari accept the video-only form and silently pick Opus/AAC. We keep
|
|
516
|
+
// both variants and always prefer the codec-complete ones in
|
|
517
|
+
// getSupportedMimeType so a single code path works across browsers.
|
|
512
518
|
var MIME_TYPE = {
|
|
513
519
|
mp4: "video/mp4",
|
|
514
|
-
|
|
520
|
+
webmH264Opus: "video/webm;codecs=h264,opus",
|
|
521
|
+
webmH264: "video/webm;codecs=h264",
|
|
522
|
+
webmVp9Opus: "video/webm;codecs=vp9,opus",
|
|
523
|
+
webmVp9: "video/webm;codecs=vp9",
|
|
524
|
+
webmVp8Opus: "video/webm;codecs=vp8,opus",
|
|
525
|
+
webmVp8: "video/webm;codecs=vp8",
|
|
526
|
+
webm: "video/webm"
|
|
515
527
|
};
|
|
516
528
|
|
|
529
|
+
// Picks the best MediaRecorder MIME type the current browser supports.
|
|
530
|
+
// Chromium produces H.264-in-WebM, Safari only produces MP4, and Firefox
|
|
531
|
+
// produces VP9/VP8-in-WebM. Returns null if none of the candidates are
|
|
532
|
+
// supported so callers can surface an "unsupported browser" state.
|
|
517
533
|
var getSupportedMimeType = function getSupportedMimeType() {
|
|
518
|
-
|
|
534
|
+
var _candidates$find;
|
|
535
|
+
if (typeof MediaRecorder === "undefined") return null;
|
|
536
|
+
|
|
537
|
+
// Safari only exposes a working MediaRecorder for MP4.
|
|
538
|
+
if (IS_SAFARI && MediaRecorder.isTypeSupported(MIME_TYPE.mp4)) {
|
|
539
|
+
return MIME_TYPE.mp4;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
// Prefer types that declare the audio codec explicitly. Firefox requires
|
|
543
|
+
// this when the MediaStream has both audio and video tracks; Chromium and
|
|
544
|
+
// Safari are happy with either form.
|
|
545
|
+
var candidates = [MIME_TYPE.webmH264Opus, MIME_TYPE.webmVp9Opus, MIME_TYPE.webmVp8Opus, MIME_TYPE.webmH264, MIME_TYPE.webmVp9, MIME_TYPE.webmVp8, MIME_TYPE.webm, MIME_TYPE.mp4];
|
|
546
|
+
return (_candidates$find = candidates.find(function (type) {
|
|
547
|
+
return MediaRecorder.isTypeSupported(type);
|
|
548
|
+
})) !== null && _candidates$find !== void 0 ? _candidates$find : null;
|
|
549
|
+
};
|
|
550
|
+
|
|
551
|
+
var generatePublicUrl = function generatePublicUrl(recordingId) {
|
|
552
|
+
var baseURL = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.location.origin;
|
|
553
|
+
return "".concat(baseURL, "/watch/").concat(recordingId);
|
|
519
554
|
};
|
|
520
555
|
|
|
521
556
|
var formatTime = function formatTime(time) {
|
|
@@ -629,6 +664,74 @@ var isMp4Supported = function isMp4Supported() {
|
|
|
629
664
|
return mimeType.includes(MIME_TYPE$1.mp4);
|
|
630
665
|
};
|
|
631
666
|
|
|
667
|
+
/**
|
|
668
|
+
* Copy a recording's public link to the clipboard while preserving Safari's
|
|
669
|
+
* transient user activation. Must be invoked synchronously inside a user
|
|
670
|
+
* gesture handler (e.g. button onClick).
|
|
671
|
+
*
|
|
672
|
+
* Safari (WebKit) refuses navigator.clipboard.write[Text] outside a user
|
|
673
|
+
* gesture, so the post-recording auto-copy cannot be done in a useEffect.
|
|
674
|
+
* Since `recording.id` is only known once the create-recording POST resolves,
|
|
675
|
+
* we keep the gesture alive across that wait by handing
|
|
676
|
+
* navigator.clipboard.write a ClipboardItem backed by a Promise<Blob>; Safari
|
|
677
|
+
* preserves the activation until the promise settles.
|
|
678
|
+
*
|
|
679
|
+
* @param {Object} params
|
|
680
|
+
* @param {React.RefObject<Promise<unknown> | null>} params.createRecordingPromise
|
|
681
|
+
* @param {React.RefObject<{ id?: string | number }>} params.recordingRef
|
|
682
|
+
* @param {React.RefObject<string>} params.baseURLRef
|
|
683
|
+
* @param {string} params.successMessage Toastr message shown on success.
|
|
684
|
+
*/
|
|
685
|
+
var copyRecordingLinkToClipboardOnStop = function copyRecordingLinkToClipboardOnStop(_ref3) {
|
|
686
|
+
var _navigator$clipboard;
|
|
687
|
+
var createRecordingPromise = _ref3.createRecordingPromise,
|
|
688
|
+
recordingRef = _ref3.recordingRef,
|
|
689
|
+
baseURLRef = _ref3.baseURLRef,
|
|
690
|
+
successMessage = _ref3.successMessage;
|
|
691
|
+
if (typeof window.ClipboardItem !== "function" || !((_navigator$clipboard = navigator.clipboard) !== null && _navigator$clipboard !== void 0 && _navigator$clipboard.write)) {
|
|
692
|
+
return;
|
|
693
|
+
}
|
|
694
|
+
var linkBlobPromise = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
695
|
+
var _recordingRef$current;
|
|
696
|
+
var recordingId, baseURL;
|
|
697
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
698
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
699
|
+
case 0:
|
|
700
|
+
if (!(createRecordingPromise !== null && createRecordingPromise !== void 0 && createRecordingPromise.current)) {
|
|
701
|
+
_context2.next = 3;
|
|
702
|
+
break;
|
|
703
|
+
}
|
|
704
|
+
_context2.next = 3;
|
|
705
|
+
return createRecordingPromise.current;
|
|
706
|
+
case 3:
|
|
707
|
+
recordingId = recordingRef === null || recordingRef === void 0 ? void 0 : (_recordingRef$current = recordingRef.current) === null || _recordingRef$current === void 0 ? void 0 : _recordingRef$current.id;
|
|
708
|
+
baseURL = baseURLRef === null || baseURLRef === void 0 ? void 0 : baseURLRef.current;
|
|
709
|
+
if (!(!recordingId || !baseURL)) {
|
|
710
|
+
_context2.next = 7;
|
|
711
|
+
break;
|
|
712
|
+
}
|
|
713
|
+
throw new Error("Recording id or base URL unavailable");
|
|
714
|
+
case 7:
|
|
715
|
+
return _context2.abrupt("return", new Blob([generatePublicUrl(recordingId, baseURL)], {
|
|
716
|
+
type: "text/plain"
|
|
717
|
+
}));
|
|
718
|
+
case 8:
|
|
719
|
+
case "end":
|
|
720
|
+
return _context2.stop();
|
|
721
|
+
}
|
|
722
|
+
}, _callee2);
|
|
723
|
+
}))();
|
|
724
|
+
|
|
725
|
+
// Swallow the unhandled rejection on the inner promise; clipboard.write
|
|
726
|
+
// already observes it, but we don't want stray unhandled rejection logs.
|
|
727
|
+
linkBlobPromise["catch"](noop);
|
|
728
|
+
navigator.clipboard.write([new ClipboardItem({
|
|
729
|
+
"text/plain": linkBlobPromise
|
|
730
|
+
})]).then(function () {
|
|
731
|
+
return Toastr.success(successMessage);
|
|
732
|
+
})["catch"](noop);
|
|
733
|
+
};
|
|
734
|
+
|
|
632
735
|
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
633
736
|
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
634
737
|
var baseUrl = "/api/v1/recordings";
|
|
@@ -1022,13 +1125,13 @@ var Controls = function Controls(_ref) {
|
|
|
1022
1125
|
var setIsRestartAlertOpen = _ref.setIsRestartAlertOpen,
|
|
1023
1126
|
setIsDiscardAlertOpen = _ref.setIsDiscardAlertOpen,
|
|
1024
1127
|
onDiscard = _ref.onDiscard,
|
|
1128
|
+
onStopRecording = _ref.onStopRecording,
|
|
1025
1129
|
requested = _ref.requested,
|
|
1026
1130
|
appName = _ref.appName;
|
|
1027
1131
|
var _useTranslation = useTranslation(),
|
|
1028
1132
|
t = _useTranslation.t;
|
|
1029
1133
|
var startRecording = screenRecorder.startRecording,
|
|
1030
1134
|
pauseRecording = screenRecorder.pauseRecording,
|
|
1031
|
-
stopRecording = screenRecorder.stopRecording,
|
|
1032
1135
|
resumeRecording = screenRecorder.resumeRecording,
|
|
1033
1136
|
useRecorderStore = screenRecorder.useRecorderStore,
|
|
1034
1137
|
setAudioConfiguration = screenRecorder.setAudioConfiguration;
|
|
@@ -1118,7 +1221,7 @@ var Controls = function Controls(_ref) {
|
|
|
1118
1221
|
label: t("neetoMediaRecorder.record.done"),
|
|
1119
1222
|
size: "large",
|
|
1120
1223
|
style: "danger-text",
|
|
1121
|
-
onClick:
|
|
1224
|
+
onClick: onStopRecording
|
|
1122
1225
|
}), /*#__PURE__*/jsx("div", {
|
|
1123
1226
|
className: "neeto-ui-bg-gray-200 h-10 w-0.5"
|
|
1124
1227
|
})]
|
|
@@ -1505,68 +1608,21 @@ var UnSupportedBrowser = withT(function (_ref) {
|
|
|
1505
1608
|
});
|
|
1506
1609
|
});
|
|
1507
1610
|
|
|
1508
|
-
var generatePublicUrl = function generatePublicUrl(recordingId) {
|
|
1509
|
-
var baseURL = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.location.origin;
|
|
1510
|
-
return "".concat(baseURL, "/watch/").concat(recordingId);
|
|
1511
|
-
};
|
|
1512
|
-
|
|
1513
1611
|
var UploadingInProgress = function UploadingInProgress(_ref) {
|
|
1514
|
-
var
|
|
1612
|
+
var _ref$baseURL = _ref.baseURL,
|
|
1613
|
+
baseURL = _ref$baseURL === void 0 ? "" : _ref$baseURL,
|
|
1614
|
+
recording = _ref.recording,
|
|
1515
1615
|
uploadProgress = _ref.uploadProgress,
|
|
1516
1616
|
uploadStatus = _ref.uploadStatus,
|
|
1517
1617
|
onDiscard = _ref.onDiscard,
|
|
1518
1618
|
onRetryUpload = _ref.onRetryUpload,
|
|
1519
1619
|
isRetryUpload = _ref.isRetryUpload;
|
|
1520
|
-
var _useState = useState(
|
|
1620
|
+
var _useState = useState(false),
|
|
1521
1621
|
_useState2 = _slicedToArray(_useState, 2),
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
var _useState3 = useState(false),
|
|
1525
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
1526
|
-
isDiscardAlertOpen = _useState4[0],
|
|
1527
|
-
setIsDiscardAlertOpen = _useState4[1];
|
|
1622
|
+
isDiscardAlertOpen = _useState2[0],
|
|
1623
|
+
setIsDiscardAlertOpen = _useState2[1];
|
|
1528
1624
|
var _useTranslation = useTranslation(),
|
|
1529
1625
|
t = _useTranslation.t;
|
|
1530
|
-
useEffect(function () {
|
|
1531
|
-
var fetchBaseURL = /*#__PURE__*/function () {
|
|
1532
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
1533
|
-
var _yield$chrome$storage, baseURL;
|
|
1534
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
1535
|
-
while (1) switch (_context.prev = _context.next) {
|
|
1536
|
-
case 0:
|
|
1537
|
-
if (IS_EXTENSION) {
|
|
1538
|
-
_context.next = 3;
|
|
1539
|
-
break;
|
|
1540
|
-
}
|
|
1541
|
-
setBaseURL(window.location.origin);
|
|
1542
|
-
return _context.abrupt("return");
|
|
1543
|
-
case 3:
|
|
1544
|
-
_context.next = 5;
|
|
1545
|
-
return chrome.storage.local.get("baseURL");
|
|
1546
|
-
case 5:
|
|
1547
|
-
_yield$chrome$storage = _context.sent;
|
|
1548
|
-
baseURL = _yield$chrome$storage.baseURL;
|
|
1549
|
-
setBaseURL(baseURL);
|
|
1550
|
-
case 8:
|
|
1551
|
-
case "end":
|
|
1552
|
-
return _context.stop();
|
|
1553
|
-
}
|
|
1554
|
-
}, _callee);
|
|
1555
|
-
}));
|
|
1556
|
-
return function fetchBaseURL() {
|
|
1557
|
-
return _ref2.apply(this, arguments);
|
|
1558
|
-
};
|
|
1559
|
-
}();
|
|
1560
|
-
fetchBaseURL();
|
|
1561
|
-
}, []);
|
|
1562
|
-
useEffect(function () {
|
|
1563
|
-
if (!window.document.hasFocus() || !recording.id || isEmpty(baseURL)) {
|
|
1564
|
-
return;
|
|
1565
|
-
}
|
|
1566
|
-
copyToClipboard(generatePublicUrl(recording.id, baseURL), {
|
|
1567
|
-
message: t("neetoMediaRecorder.record.copyToClipboardToastrMessage")
|
|
1568
|
-
});
|
|
1569
|
-
}, [recording.id, baseURL]);
|
|
1570
1626
|
var handleRecordingBlobDownload = function handleRecordingBlobDownload() {
|
|
1571
1627
|
var _recording$title;
|
|
1572
1628
|
downloadRecordingBlob(screenRecorder.getWebmMediaBlob(), (_recording$title = recording.title) !== null && _recording$title !== void 0 ? _recording$title : "NeetoRecord-recording");
|
|
@@ -1651,7 +1707,7 @@ var useRecorderStore = screenRecorder.useRecorderStore,
|
|
|
1651
1707
|
restartRecording = screenRecorder.restartRecording,
|
|
1652
1708
|
discardRecording = screenRecorder.discardRecording;
|
|
1653
1709
|
var globalProps = ((_window = window) === null || _window === void 0 ? void 0 : _window.globalProps) || {};
|
|
1654
|
-
var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
1710
|
+
var MediaRecorder$1 = function MediaRecorder(_ref, ref) {
|
|
1655
1711
|
var _ref$onUploadComplete = _ref.onUploadComplete,
|
|
1656
1712
|
onUploadComplete = _ref$onUploadComplete === void 0 ? noop : _ref$onUploadComplete,
|
|
1657
1713
|
_ref$onDiscard = _ref.onDiscard,
|
|
@@ -1695,7 +1751,47 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1695
1751
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
1696
1752
|
isRetryUpload = _useState8[0],
|
|
1697
1753
|
setIsRetryUpload = _useState8[1];
|
|
1754
|
+
var _useState9 = useState(""),
|
|
1755
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
1756
|
+
baseURL = _useState10[0],
|
|
1757
|
+
setBaseURL = _useState10[1];
|
|
1698
1758
|
var recordingRef = useRef({});
|
|
1759
|
+
var baseURLRef = useRef("");
|
|
1760
|
+
useEffect(function () {
|
|
1761
|
+
var fetchBaseURL = /*#__PURE__*/function () {
|
|
1762
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
1763
|
+
var origin, _yield$chrome$storage, extensionBaseURL;
|
|
1764
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
1765
|
+
while (1) switch (_context.prev = _context.next) {
|
|
1766
|
+
case 0:
|
|
1767
|
+
if (IS_EXTENSION) {
|
|
1768
|
+
_context.next = 5;
|
|
1769
|
+
break;
|
|
1770
|
+
}
|
|
1771
|
+
origin = window.location.origin;
|
|
1772
|
+
baseURLRef.current = origin;
|
|
1773
|
+
setBaseURL(origin);
|
|
1774
|
+
return _context.abrupt("return");
|
|
1775
|
+
case 5:
|
|
1776
|
+
_context.next = 7;
|
|
1777
|
+
return chrome.storage.local.get("baseURL");
|
|
1778
|
+
case 7:
|
|
1779
|
+
_yield$chrome$storage = _context.sent;
|
|
1780
|
+
extensionBaseURL = _yield$chrome$storage.baseURL;
|
|
1781
|
+
baseURLRef.current = extensionBaseURL || "";
|
|
1782
|
+
setBaseURL(extensionBaseURL || "");
|
|
1783
|
+
case 11:
|
|
1784
|
+
case "end":
|
|
1785
|
+
return _context.stop();
|
|
1786
|
+
}
|
|
1787
|
+
}, _callee);
|
|
1788
|
+
}));
|
|
1789
|
+
return function fetchBaseURL() {
|
|
1790
|
+
return _ref2.apply(this, arguments);
|
|
1791
|
+
};
|
|
1792
|
+
}();
|
|
1793
|
+
fetchBaseURL();
|
|
1794
|
+
}, []);
|
|
1699
1795
|
var _useAudioIsCapturing = useAudioIsCapturing({
|
|
1700
1796
|
isMicOn: isMicOn
|
|
1701
1797
|
}),
|
|
@@ -1734,9 +1830,9 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1734
1830
|
uploadStatus = _useMultipartS3Upload.status;
|
|
1735
1831
|
var shouldShowTimeLimitWarning = showTimeLimitWarning && isRecorderStatus(SCREEN_RECORDER_STATUS.recording, SCREEN_RECORDER_STATUS.paused);
|
|
1736
1832
|
var _useCreateRecording = useCreateRecording({
|
|
1737
|
-
onSuccess: function onSuccess(
|
|
1738
|
-
var recording =
|
|
1739
|
-
uploadId =
|
|
1833
|
+
onSuccess: function onSuccess(_ref3) {
|
|
1834
|
+
var recording = _ref3.recording,
|
|
1835
|
+
uploadId = _ref3.uploadId;
|
|
1740
1836
|
var multipartS3Uploader = getMultipartS3Uploader();
|
|
1741
1837
|
multipartS3Uploader.setRecording(recording.id, uploadId);
|
|
1742
1838
|
multipartS3Uploader.setMimeType(mimeType);
|
|
@@ -1779,95 +1875,106 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1779
1875
|
onError(SCREEN_RECORDER_ERROR.CreateRecordingError);
|
|
1780
1876
|
};
|
|
1781
1877
|
var handleCreateRecording = /*#__PURE__*/function () {
|
|
1782
|
-
var
|
|
1878
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
1783
1879
|
var payload;
|
|
1784
|
-
return _regeneratorRuntime.wrap(function
|
|
1785
|
-
while (1) switch (
|
|
1880
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
1881
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
1786
1882
|
case 0:
|
|
1787
1883
|
if (upload) {
|
|
1788
|
-
|
|
1884
|
+
_context3.next = 2;
|
|
1789
1885
|
break;
|
|
1790
1886
|
}
|
|
1791
|
-
return
|
|
1887
|
+
return _context3.abrupt("return");
|
|
1792
1888
|
case 2:
|
|
1793
1889
|
payload = {
|
|
1794
1890
|
folderId: folderId
|
|
1795
1891
|
};
|
|
1796
|
-
|
|
1892
|
+
_context3.next = 5;
|
|
1797
1893
|
return getDeviceInfo(mimeType);
|
|
1798
1894
|
case 5:
|
|
1799
|
-
payload.deviceInfo =
|
|
1800
|
-
createRecordingPromise.current = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function
|
|
1801
|
-
return _regeneratorRuntime.wrap(function
|
|
1802
|
-
while (1) switch (
|
|
1895
|
+
payload.deviceInfo = _context3.sent;
|
|
1896
|
+
createRecordingPromise.current = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
1897
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
1898
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
1803
1899
|
case 0:
|
|
1804
|
-
|
|
1805
|
-
|
|
1900
|
+
_context2.prev = 0;
|
|
1901
|
+
_context2.next = 3;
|
|
1806
1902
|
return createRecording(payload);
|
|
1807
1903
|
case 3:
|
|
1808
|
-
|
|
1904
|
+
_context2.next = 8;
|
|
1809
1905
|
break;
|
|
1810
1906
|
case 5:
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
handleCreateRecordingError(
|
|
1907
|
+
_context2.prev = 5;
|
|
1908
|
+
_context2.t0 = _context2["catch"](0);
|
|
1909
|
+
handleCreateRecordingError(_context2.t0);
|
|
1814
1910
|
case 8:
|
|
1815
1911
|
case "end":
|
|
1816
|
-
return
|
|
1912
|
+
return _context2.stop();
|
|
1817
1913
|
}
|
|
1818
|
-
},
|
|
1914
|
+
}, _callee2, null, [[0, 5]]);
|
|
1819
1915
|
}))();
|
|
1820
1916
|
case 7:
|
|
1821
1917
|
case "end":
|
|
1822
|
-
return
|
|
1918
|
+
return _context3.stop();
|
|
1823
1919
|
}
|
|
1824
|
-
},
|
|
1920
|
+
}, _callee3);
|
|
1825
1921
|
}));
|
|
1826
1922
|
return function handleCreateRecording() {
|
|
1827
|
-
return
|
|
1923
|
+
return _ref4.apply(this, arguments);
|
|
1828
1924
|
};
|
|
1829
1925
|
}();
|
|
1926
|
+
var handleStopRecording = function handleStopRecording() {
|
|
1927
|
+
if (upload) {
|
|
1928
|
+
copyRecordingLinkToClipboardOnStop({
|
|
1929
|
+
createRecordingPromise: createRecordingPromise,
|
|
1930
|
+
recordingRef: recordingRef,
|
|
1931
|
+
baseURLRef: baseURLRef,
|
|
1932
|
+
successMessage: t("neetoMediaRecorder.record.copyToClipboardToastrMessage")
|
|
1933
|
+
});
|
|
1934
|
+
}
|
|
1935
|
+
screenRecorder.stopRecording();
|
|
1936
|
+
};
|
|
1830
1937
|
var handleUploadComplete = function handleUploadComplete() {
|
|
1831
1938
|
var _recordingRef$current;
|
|
1832
1939
|
return onUploadComplete((_recordingRef$current = recordingRef.current) === null || _recordingRef$current === void 0 ? void 0 : _recordingRef$current.id);
|
|
1833
1940
|
};
|
|
1834
1941
|
var handleDiscardRecording = /*#__PURE__*/function () {
|
|
1835
|
-
var
|
|
1836
|
-
var
|
|
1837
|
-
|
|
1942
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
1943
|
+
var _ref7,
|
|
1944
|
+
_ref7$forceAbort,
|
|
1838
1945
|
forceAbort,
|
|
1839
1946
|
multipartS3Uploader,
|
|
1840
|
-
|
|
1841
|
-
return _regeneratorRuntime.wrap(function
|
|
1842
|
-
while (1) switch (
|
|
1947
|
+
_args4 = arguments;
|
|
1948
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
1949
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
1843
1950
|
case 0:
|
|
1844
|
-
|
|
1951
|
+
_ref7 = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {}, _ref7$forceAbort = _ref7.forceAbort, forceAbort = _ref7$forceAbort === void 0 ? false : _ref7$forceAbort;
|
|
1845
1952
|
if (upload) {
|
|
1846
|
-
|
|
1953
|
+
_context4.next = 4;
|
|
1847
1954
|
break;
|
|
1848
1955
|
}
|
|
1849
1956
|
onDiscard();
|
|
1850
|
-
return
|
|
1957
|
+
return _context4.abrupt("return");
|
|
1851
1958
|
case 4:
|
|
1852
1959
|
multipartS3Uploader = getMultipartS3Uploader();
|
|
1853
|
-
|
|
1960
|
+
_context4.next = 7;
|
|
1854
1961
|
return multipartS3Uploader.abortUpload(forceAbort);
|
|
1855
1962
|
case 7:
|
|
1856
1963
|
if (!(multipartS3Uploader.status === UPLOAD_STATUS$1.aborting)) {
|
|
1857
|
-
|
|
1964
|
+
_context4.next = 9;
|
|
1858
1965
|
break;
|
|
1859
1966
|
}
|
|
1860
|
-
return
|
|
1967
|
+
return _context4.abrupt("return");
|
|
1861
1968
|
case 9:
|
|
1862
1969
|
onDiscard();
|
|
1863
1970
|
case 10:
|
|
1864
1971
|
case "end":
|
|
1865
|
-
return
|
|
1972
|
+
return _context4.stop();
|
|
1866
1973
|
}
|
|
1867
|
-
},
|
|
1974
|
+
}, _callee4);
|
|
1868
1975
|
}));
|
|
1869
1976
|
return function handleDiscardRecording() {
|
|
1870
|
-
return
|
|
1977
|
+
return _ref6.apply(this, arguments);
|
|
1871
1978
|
};
|
|
1872
1979
|
}();
|
|
1873
1980
|
var handleRestartRecording = function handleRestartRecording() {
|
|
@@ -1942,25 +2049,25 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1942
2049
|
var multipartS3Uploader = upload ? getMultipartS3Uploader({
|
|
1943
2050
|
initialize: true
|
|
1944
2051
|
}) : null;
|
|
1945
|
-
var recorderCallbacks = (_recorderCallbacks = {}, _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onDataAvailable, upload ? multipartS3Uploader.push : noop), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onStop, _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function
|
|
2052
|
+
var recorderCallbacks = (_recorderCallbacks = {}, _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onDataAvailable, upload ? multipartS3Uploader.push : noop), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onStop, _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
|
|
1946
2053
|
var blob;
|
|
1947
|
-
return _regeneratorRuntime.wrap(function
|
|
1948
|
-
while (1) switch (
|
|
2054
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
2055
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
1949
2056
|
case 0:
|
|
1950
2057
|
if (upload) {
|
|
1951
|
-
|
|
2058
|
+
_context5.next = 5;
|
|
1952
2059
|
break;
|
|
1953
2060
|
}
|
|
1954
2061
|
blob = screenRecorder.getWebmMediaBlob();
|
|
1955
2062
|
RequestedRecordingCallback(blob);
|
|
1956
2063
|
onRecordingCompleted(blob);
|
|
1957
|
-
return
|
|
2064
|
+
return _context5.abrupt("return");
|
|
1958
2065
|
case 5:
|
|
1959
2066
|
if (!createRecordingPromise.current) {
|
|
1960
|
-
|
|
2067
|
+
_context5.next = 9;
|
|
1961
2068
|
break;
|
|
1962
2069
|
}
|
|
1963
|
-
|
|
2070
|
+
_context5.next = 8;
|
|
1964
2071
|
return createRecordingPromise.current;
|
|
1965
2072
|
case 8:
|
|
1966
2073
|
createRecordingPromise.current = null;
|
|
@@ -1968,9 +2075,9 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
1968
2075
|
multipartS3Uploader.completeUpload();
|
|
1969
2076
|
case 10:
|
|
1970
2077
|
case "end":
|
|
1971
|
-
return
|
|
2078
|
+
return _context5.stop();
|
|
1972
2079
|
}
|
|
1973
|
-
},
|
|
2080
|
+
}, _callee5);
|
|
1974
2081
|
}))), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onDiscard, handleDiscardRecording), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onRestart, handleRestartRecording), _recorderCallbacks);
|
|
1975
2082
|
Object.keys(recorderCallbacks).forEach(function (key) {
|
|
1976
2083
|
screenRecorder.addCallback(key, recorderCallbacks[key]);
|
|
@@ -2023,6 +2130,7 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
2023
2130
|
}
|
|
2024
2131
|
if (isRetryUpload || isRecorderStatus(SCREEN_RECORDER_STATUS.stopped) && (isCreatingRecording || isBeingUploadedOrHasErrorUploading)) {
|
|
2025
2132
|
return /*#__PURE__*/jsx(UploadingInProgress, {
|
|
2133
|
+
baseURL: baseURL,
|
|
2026
2134
|
isRetryUpload: isRetryUpload,
|
|
2027
2135
|
recording: recording,
|
|
2028
2136
|
uploadProgress: uploadProgress,
|
|
@@ -2058,7 +2166,8 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
2058
2166
|
onDiscard: onDiscard,
|
|
2059
2167
|
requested: requested,
|
|
2060
2168
|
setIsDiscardAlertOpen: setIsDiscardAlertOpen,
|
|
2061
|
-
setIsRestartAlertOpen: setIsRestartAlertOpen
|
|
2169
|
+
setIsRestartAlertOpen: setIsRestartAlertOpen,
|
|
2170
|
+
onStopRecording: handleStopRecording
|
|
2062
2171
|
}), /*#__PURE__*/jsx(Alert, {
|
|
2063
2172
|
isOpen: isDiscardAlertOpen,
|
|
2064
2173
|
message: t("neetoMediaRecorder.record.discardConfirmation.message"),
|
|
@@ -2076,7 +2185,7 @@ var MediaRecorder = function MediaRecorder(_ref, ref) {
|
|
|
2076
2185
|
})]
|
|
2077
2186
|
});
|
|
2078
2187
|
};
|
|
2079
|
-
var index = /*#__PURE__*/forwardRef(MediaRecorder);
|
|
2188
|
+
var index = /*#__PURE__*/forwardRef(MediaRecorder$1);
|
|
2080
2189
|
|
|
2081
2190
|
export { index as MediaRecorder };
|
|
2082
2191
|
//# sourceMappingURL=index.js.map
|