@bigbinary/neeto-media-recorder 2.7.29-beta.2 → 2.7.31
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/core.js +1 -0
- package/core.js.map +1 -1
- package/index.js +162 -100
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -8,6 +8,7 @@ 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 { copyToClipboard } from '@bigbinary/neeto-commons-frontend/utils/general';
|
|
11
12
|
import Toastr from '@bigbinary/neetoui/Toastr';
|
|
12
13
|
import platform from 'platform';
|
|
13
14
|
import { isNotNil } from 'ramda';
|
|
@@ -688,48 +689,119 @@ var copyRecordingLinkToClipboardOnStop = function copyRecordingLinkToClipboardOn
|
|
|
688
689
|
recordingRef = _ref3.recordingRef,
|
|
689
690
|
baseURLRef = _ref3.baseURLRef,
|
|
690
691
|
successMessage = _ref3.successMessage;
|
|
691
|
-
|
|
692
|
+
var resolveLink = /*#__PURE__*/function () {
|
|
693
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
694
|
+
var _recordingRef$current;
|
|
695
|
+
var recordingId, baseURL;
|
|
696
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
697
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
698
|
+
case 0:
|
|
699
|
+
if (!(createRecordingPromise !== null && createRecordingPromise !== void 0 && createRecordingPromise.current)) {
|
|
700
|
+
_context2.next = 3;
|
|
701
|
+
break;
|
|
702
|
+
}
|
|
703
|
+
_context2.next = 3;
|
|
704
|
+
return createRecordingPromise.current;
|
|
705
|
+
case 3:
|
|
706
|
+
recordingId = recordingRef === null || recordingRef === void 0 ? void 0 : (_recordingRef$current = recordingRef.current) === null || _recordingRef$current === void 0 ? void 0 : _recordingRef$current.id;
|
|
707
|
+
baseURL = baseURLRef === null || baseURLRef === void 0 ? void 0 : baseURLRef.current;
|
|
708
|
+
if (!(!recordingId || !baseURL)) {
|
|
709
|
+
_context2.next = 7;
|
|
710
|
+
break;
|
|
711
|
+
}
|
|
712
|
+
throw new Error("Recording id or base URL unavailable");
|
|
713
|
+
case 7:
|
|
714
|
+
return _context2.abrupt("return", generatePublicUrl(recordingId, baseURL));
|
|
715
|
+
case 8:
|
|
716
|
+
case "end":
|
|
717
|
+
return _context2.stop();
|
|
718
|
+
}
|
|
719
|
+
}, _callee2);
|
|
720
|
+
}));
|
|
721
|
+
return function resolveLink() {
|
|
722
|
+
return _ref4.apply(this, arguments);
|
|
723
|
+
};
|
|
724
|
+
}();
|
|
725
|
+
if (typeof window.ClipboardItem === "function" && (_navigator$clipboard = navigator.clipboard) !== null && _navigator$clipboard !== void 0 && _navigator$clipboard.write) {
|
|
726
|
+
var linkBlobPromise = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
727
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
728
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
729
|
+
case 0:
|
|
730
|
+
_context3.t0 = Blob;
|
|
731
|
+
_context3.next = 3;
|
|
732
|
+
return resolveLink();
|
|
733
|
+
case 3:
|
|
734
|
+
_context3.t1 = _context3.sent;
|
|
735
|
+
_context3.t2 = [_context3.t1];
|
|
736
|
+
_context3.t3 = {
|
|
737
|
+
type: "text/plain"
|
|
738
|
+
};
|
|
739
|
+
return _context3.abrupt("return", new _context3.t0(_context3.t2, _context3.t3));
|
|
740
|
+
case 7:
|
|
741
|
+
case "end":
|
|
742
|
+
return _context3.stop();
|
|
743
|
+
}
|
|
744
|
+
}, _callee3);
|
|
745
|
+
}))();
|
|
746
|
+
|
|
747
|
+
// Synchronously initiate clipboard.write so Safari preserves the user
|
|
748
|
+
// activation across the wait for linkBlobPromise.
|
|
749
|
+
var writePromise = navigator.clipboard.write([new ClipboardItem({
|
|
750
|
+
"text/plain": linkBlobPromise
|
|
751
|
+
})]);
|
|
752
|
+
_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
753
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
754
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
755
|
+
case 0:
|
|
756
|
+
_context4.prev = 0;
|
|
757
|
+
_context4.next = 3;
|
|
758
|
+
return writePromise;
|
|
759
|
+
case 3:
|
|
760
|
+
Toastr.success(successMessage);
|
|
761
|
+
_context4.next = 8;
|
|
762
|
+
break;
|
|
763
|
+
case 6:
|
|
764
|
+
_context4.prev = 6;
|
|
765
|
+
_context4.t0 = _context4["catch"](0);
|
|
766
|
+
case 8:
|
|
767
|
+
case "end":
|
|
768
|
+
return _context4.stop();
|
|
769
|
+
}
|
|
770
|
+
}, _callee4, null, [[0, 6]]);
|
|
771
|
+
}))();
|
|
692
772
|
return;
|
|
693
773
|
}
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
774
|
+
|
|
775
|
+
// Legacy fallback for browsers without ClipboardItem (e.g. Firefox < 127).
|
|
776
|
+
// These browsers don't enforce Safari's strict gesture requirement, so a
|
|
777
|
+
// deferred async write is acceptable. copyToClipboard handles its own
|
|
778
|
+
// success toastr and falls back to document.execCommand internally.
|
|
779
|
+
_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
|
|
780
|
+
var link;
|
|
781
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
782
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
699
783
|
case 0:
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
}
|
|
704
|
-
_context2.next = 3;
|
|
705
|
-
return createRecordingPromise.current;
|
|
784
|
+
_context5.prev = 0;
|
|
785
|
+
_context5.next = 3;
|
|
786
|
+
return resolveLink();
|
|
706
787
|
case 3:
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
return _context2.abrupt("return", new Blob([generatePublicUrl(recordingId, baseURL)], {
|
|
716
|
-
type: "text/plain"
|
|
717
|
-
}));
|
|
788
|
+
link = _context5.sent;
|
|
789
|
+
_context5.next = 6;
|
|
790
|
+
return copyToClipboard(link, {
|
|
791
|
+
message: successMessage
|
|
792
|
+
});
|
|
793
|
+
case 6:
|
|
794
|
+
_context5.next = 10;
|
|
795
|
+
break;
|
|
718
796
|
case 8:
|
|
797
|
+
_context5.prev = 8;
|
|
798
|
+
_context5.t0 = _context5["catch"](0);
|
|
799
|
+
case 10:
|
|
719
800
|
case "end":
|
|
720
|
-
return
|
|
801
|
+
return _context5.stop();
|
|
721
802
|
}
|
|
722
|
-
},
|
|
803
|
+
}, _callee5, null, [[0, 8]]);
|
|
723
804
|
}))();
|
|
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
805
|
};
|
|
734
806
|
|
|
735
807
|
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; }
|
|
@@ -1868,61 +1940,45 @@ var MediaRecorder$1 = function MediaRecorder(_ref, ref) {
|
|
|
1868
1940
|
onError(SCREEN_RECORDER_ERROR.InsufficientData);
|
|
1869
1941
|
}
|
|
1870
1942
|
}, [elapsedTime]);
|
|
1871
|
-
recordingRef.current = recording;
|
|
1872
1943
|
var handleCreateRecordingError = function handleCreateRecordingError(error) {
|
|
1873
1944
|
if (isCancelledError(error)) return;
|
|
1874
1945
|
screenRecorder.setError(SCREEN_RECORDER_ERROR.CreateRecordingError);
|
|
1875
1946
|
onError(SCREEN_RECORDER_ERROR.CreateRecordingError);
|
|
1876
1947
|
};
|
|
1877
|
-
var handleCreateRecording =
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1948
|
+
var handleCreateRecording = function handleCreateRecording() {
|
|
1949
|
+
if (!upload) return;
|
|
1950
|
+
recordingRef.current = {};
|
|
1951
|
+
createRecordingPromise.current = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
1952
|
+
var payload, result;
|
|
1953
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
1954
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
1882
1955
|
case 0:
|
|
1883
|
-
|
|
1884
|
-
_context3.next = 2;
|
|
1885
|
-
break;
|
|
1886
|
-
}
|
|
1887
|
-
return _context3.abrupt("return");
|
|
1888
|
-
case 2:
|
|
1956
|
+
_context2.prev = 0;
|
|
1889
1957
|
payload = {
|
|
1890
1958
|
folderId: folderId
|
|
1891
1959
|
};
|
|
1892
|
-
|
|
1960
|
+
_context2.next = 4;
|
|
1893
1961
|
return getDeviceInfo(mimeType);
|
|
1894
|
-
case
|
|
1895
|
-
payload.deviceInfo =
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
1899
|
-
case 0:
|
|
1900
|
-
_context2.prev = 0;
|
|
1901
|
-
_context2.next = 3;
|
|
1902
|
-
return createRecording(payload);
|
|
1903
|
-
case 3:
|
|
1904
|
-
_context2.next = 8;
|
|
1905
|
-
break;
|
|
1906
|
-
case 5:
|
|
1907
|
-
_context2.prev = 5;
|
|
1908
|
-
_context2.t0 = _context2["catch"](0);
|
|
1909
|
-
handleCreateRecordingError(_context2.t0);
|
|
1910
|
-
case 8:
|
|
1911
|
-
case "end":
|
|
1912
|
-
return _context2.stop();
|
|
1913
|
-
}
|
|
1914
|
-
}, _callee2, null, [[0, 5]]);
|
|
1915
|
-
}))();
|
|
1962
|
+
case 4:
|
|
1963
|
+
payload.deviceInfo = _context2.sent;
|
|
1964
|
+
_context2.next = 7;
|
|
1965
|
+
return createRecording(payload);
|
|
1916
1966
|
case 7:
|
|
1967
|
+
result = _context2.sent;
|
|
1968
|
+
if (result !== null && result !== void 0 && result.recording) recordingRef.current = result.recording;
|
|
1969
|
+
_context2.next = 14;
|
|
1970
|
+
break;
|
|
1971
|
+
case 11:
|
|
1972
|
+
_context2.prev = 11;
|
|
1973
|
+
_context2.t0 = _context2["catch"](0);
|
|
1974
|
+
handleCreateRecordingError(_context2.t0);
|
|
1975
|
+
case 14:
|
|
1917
1976
|
case "end":
|
|
1918
|
-
return
|
|
1977
|
+
return _context2.stop();
|
|
1919
1978
|
}
|
|
1920
|
-
},
|
|
1921
|
-
}));
|
|
1922
|
-
|
|
1923
|
-
return _ref4.apply(this, arguments);
|
|
1924
|
-
};
|
|
1925
|
-
}();
|
|
1979
|
+
}, _callee2, null, [[0, 11]]);
|
|
1980
|
+
}))();
|
|
1981
|
+
};
|
|
1926
1982
|
var handleStopRecording = function handleStopRecording() {
|
|
1927
1983
|
if (upload) {
|
|
1928
1984
|
copyRecordingLinkToClipboardOnStop({
|
|
@@ -1939,42 +1995,42 @@ var MediaRecorder$1 = function MediaRecorder(_ref, ref) {
|
|
|
1939
1995
|
return onUploadComplete((_recordingRef$current = recordingRef.current) === null || _recordingRef$current === void 0 ? void 0 : _recordingRef$current.id);
|
|
1940
1996
|
};
|
|
1941
1997
|
var handleDiscardRecording = /*#__PURE__*/function () {
|
|
1942
|
-
var
|
|
1943
|
-
var
|
|
1944
|
-
|
|
1998
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
1999
|
+
var _ref6,
|
|
2000
|
+
_ref6$forceAbort,
|
|
1945
2001
|
forceAbort,
|
|
1946
2002
|
multipartS3Uploader,
|
|
1947
|
-
|
|
1948
|
-
return _regeneratorRuntime.wrap(function
|
|
1949
|
-
while (1) switch (
|
|
2003
|
+
_args3 = arguments;
|
|
2004
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
2005
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
1950
2006
|
case 0:
|
|
1951
|
-
|
|
2007
|
+
_ref6 = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {}, _ref6$forceAbort = _ref6.forceAbort, forceAbort = _ref6$forceAbort === void 0 ? false : _ref6$forceAbort;
|
|
1952
2008
|
if (upload) {
|
|
1953
|
-
|
|
2009
|
+
_context3.next = 4;
|
|
1954
2010
|
break;
|
|
1955
2011
|
}
|
|
1956
2012
|
onDiscard();
|
|
1957
|
-
return
|
|
2013
|
+
return _context3.abrupt("return");
|
|
1958
2014
|
case 4:
|
|
1959
2015
|
multipartS3Uploader = getMultipartS3Uploader();
|
|
1960
|
-
|
|
2016
|
+
_context3.next = 7;
|
|
1961
2017
|
return multipartS3Uploader.abortUpload(forceAbort);
|
|
1962
2018
|
case 7:
|
|
1963
2019
|
if (!(multipartS3Uploader.status === UPLOAD_STATUS$1.aborting)) {
|
|
1964
|
-
|
|
2020
|
+
_context3.next = 9;
|
|
1965
2021
|
break;
|
|
1966
2022
|
}
|
|
1967
|
-
return
|
|
2023
|
+
return _context3.abrupt("return");
|
|
1968
2024
|
case 9:
|
|
1969
2025
|
onDiscard();
|
|
1970
2026
|
case 10:
|
|
1971
2027
|
case "end":
|
|
1972
|
-
return
|
|
2028
|
+
return _context3.stop();
|
|
1973
2029
|
}
|
|
1974
|
-
},
|
|
2030
|
+
}, _callee3);
|
|
1975
2031
|
}));
|
|
1976
2032
|
return function handleDiscardRecording() {
|
|
1977
|
-
return
|
|
2033
|
+
return _ref5.apply(this, arguments);
|
|
1978
2034
|
};
|
|
1979
2035
|
}();
|
|
1980
2036
|
var handleRestartRecording = function handleRestartRecording() {
|
|
@@ -2026,6 +2082,12 @@ var MediaRecorder$1 = function MediaRecorder(_ref, ref) {
|
|
|
2026
2082
|
newMultipartS3Uploader.addCallback(key, uploaderCallbacks[key]);
|
|
2027
2083
|
});
|
|
2028
2084
|
handleCreateRecording();
|
|
2085
|
+
copyRecordingLinkToClipboardOnStop({
|
|
2086
|
+
createRecordingPromise: createRecordingPromise,
|
|
2087
|
+
recordingRef: recordingRef,
|
|
2088
|
+
baseURLRef: baseURLRef,
|
|
2089
|
+
successMessage: t("neetoMediaRecorder.record.copyToClipboardToastrMessage")
|
|
2090
|
+
});
|
|
2029
2091
|
};
|
|
2030
2092
|
useImperativeHandle(ref, function () {
|
|
2031
2093
|
return {
|
|
@@ -2049,25 +2111,25 @@ var MediaRecorder$1 = function MediaRecorder(_ref, ref) {
|
|
|
2049
2111
|
var multipartS3Uploader = upload ? getMultipartS3Uploader({
|
|
2050
2112
|
initialize: true
|
|
2051
2113
|
}) : null;
|
|
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
|
|
2114
|
+
var recorderCallbacks = (_recorderCallbacks = {}, _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onDataAvailable, upload ? multipartS3Uploader.push : noop), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onStop, _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
2053
2115
|
var blob;
|
|
2054
|
-
return _regeneratorRuntime.wrap(function
|
|
2055
|
-
while (1) switch (
|
|
2116
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
2117
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
2056
2118
|
case 0:
|
|
2057
2119
|
if (upload) {
|
|
2058
|
-
|
|
2120
|
+
_context4.next = 5;
|
|
2059
2121
|
break;
|
|
2060
2122
|
}
|
|
2061
2123
|
blob = screenRecorder.getWebmMediaBlob();
|
|
2062
2124
|
RequestedRecordingCallback(blob);
|
|
2063
2125
|
onRecordingCompleted(blob);
|
|
2064
|
-
return
|
|
2126
|
+
return _context4.abrupt("return");
|
|
2065
2127
|
case 5:
|
|
2066
2128
|
if (!createRecordingPromise.current) {
|
|
2067
|
-
|
|
2129
|
+
_context4.next = 9;
|
|
2068
2130
|
break;
|
|
2069
2131
|
}
|
|
2070
|
-
|
|
2132
|
+
_context4.next = 8;
|
|
2071
2133
|
return createRecordingPromise.current;
|
|
2072
2134
|
case 8:
|
|
2073
2135
|
createRecordingPromise.current = null;
|
|
@@ -2075,9 +2137,9 @@ var MediaRecorder$1 = function MediaRecorder(_ref, ref) {
|
|
|
2075
2137
|
multipartS3Uploader.completeUpload();
|
|
2076
2138
|
case 10:
|
|
2077
2139
|
case "end":
|
|
2078
|
-
return
|
|
2140
|
+
return _context4.stop();
|
|
2079
2141
|
}
|
|
2080
|
-
},
|
|
2142
|
+
}, _callee4);
|
|
2081
2143
|
}))), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onDiscard, handleDiscardRecording), _defineProperty(_recorderCallbacks, SCREEN_RECORDER_EVENT.onRestart, handleRestartRecording), _recorderCallbacks);
|
|
2082
2144
|
Object.keys(recorderCallbacks).forEach(function (key) {
|
|
2083
2145
|
screenRecorder.addCallback(key, recorderCallbacks[key]);
|