@monkvision/camera-web 5.0.20 → 5.0.22
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/lib/Camera/hooks/useUserMedia.js +24 -15
- package/package.json +12 -12
|
@@ -203,16 +203,17 @@ function useUserMedia(constraints, videoRef) {
|
|
|
203
203
|
var _e = (0, react_1.useState)([]), availableCameraDevices = _e[0], setAvailableCameraDevices = _e[1];
|
|
204
204
|
var _f = (0, react_1.useState)(null), selectedCameraDeviceId = _f[0], setSelectedCameraDeviceId = _f[1];
|
|
205
205
|
var _g = (0, react_1.useState)(null), lastConstraintsApplied = _g[0], setLastConstraintsApplied = _g[1];
|
|
206
|
+
var lastGetUserMediaTimeRef = (0, react_1.useRef)(null);
|
|
206
207
|
var handleError = (0, monitoring_1.useMonitoring)().handleError;
|
|
207
208
|
var isMounted = (0, common_1.useIsMounted)();
|
|
208
209
|
var handleGetUserMediaError = function (err, permissionState) {
|
|
209
210
|
var type = UserMediaErrorType.OTHER;
|
|
210
211
|
if (err instanceof Error && err.name === 'NotAllowedError') {
|
|
211
212
|
switch (permissionState) {
|
|
212
|
-
case '
|
|
213
|
+
case 'prompt':
|
|
213
214
|
type = UserMediaErrorType.WEBPAGE_NOT_ALLOWED;
|
|
214
215
|
break;
|
|
215
|
-
case '
|
|
216
|
+
case 'denied':
|
|
216
217
|
type = UserMediaErrorType.BROWSER_NOT_ALLOWED;
|
|
217
218
|
break;
|
|
218
219
|
default:
|
|
@@ -297,27 +298,35 @@ function useUserMedia(constraints, videoRef) {
|
|
|
297
298
|
}
|
|
298
299
|
setLastConstraintsApplied(constraints);
|
|
299
300
|
var effect = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
300
|
-
var err_2, permissionState;
|
|
301
|
-
var
|
|
302
|
-
return __generator(this, function (
|
|
303
|
-
switch (
|
|
301
|
+
var err_2, isCameraPermissionDenied, permissionState, _a;
|
|
302
|
+
var _b, _c;
|
|
303
|
+
return __generator(this, function (_d) {
|
|
304
|
+
switch (_d.label) {
|
|
304
305
|
case 0:
|
|
305
|
-
|
|
306
|
+
_d.trys.push([0, 2, , 6]);
|
|
307
|
+
lastGetUserMediaTimeRef.current = Date.now();
|
|
306
308
|
return [4 /*yield*/, getUserMedia()];
|
|
307
309
|
case 1:
|
|
308
|
-
|
|
309
|
-
return [3 /*break*/,
|
|
310
|
+
_d.sent();
|
|
311
|
+
return [3 /*break*/, 6];
|
|
310
312
|
case 2:
|
|
311
|
-
err_2 =
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
313
|
+
err_2 = _d.sent();
|
|
314
|
+
isCameraPermissionDenied = lastGetUserMediaTimeRef.current && Date.now() - lastGetUserMediaTimeRef.current < 100;
|
|
315
|
+
if (!isCameraPermissionDenied) return [3 /*break*/, 3];
|
|
316
|
+
_a = 'denied';
|
|
317
|
+
return [3 /*break*/, 5];
|
|
318
|
+
case 3: return [4 /*yield*/, getCameraPermissionState()];
|
|
319
|
+
case 4:
|
|
320
|
+
_a = (_c = (_b = (_d.sent())) === null || _b === void 0 ? void 0 : _b.state) !== null && _c !== void 0 ? _c : null;
|
|
321
|
+
_d.label = 5;
|
|
322
|
+
case 5:
|
|
323
|
+
permissionState = _a;
|
|
315
324
|
if (err_2 && isMounted()) {
|
|
316
325
|
handleGetUserMediaError(err_2, permissionState);
|
|
317
326
|
throw err_2;
|
|
318
327
|
}
|
|
319
|
-
return [3 /*break*/,
|
|
320
|
-
case
|
|
328
|
+
return [3 /*break*/, 6];
|
|
329
|
+
case 6: return [2 /*return*/];
|
|
321
330
|
}
|
|
322
331
|
});
|
|
323
332
|
}); };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monkvision/camera-web",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.22",
|
|
4
4
|
"license": "BSD-3-Clause-Clear",
|
|
5
5
|
"packageManager": "yarn@3.2.4",
|
|
6
6
|
"description": "MonkJs camera package for React (web) used to display a camera preview and take pictures",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"lint:fix": "yarn run prettier:fix && yarn run eslint:fix"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@monkvision/common": "5.0.
|
|
32
|
-
"@monkvision/common-ui-web": "5.0.
|
|
33
|
-
"@monkvision/monitoring": "5.0.
|
|
31
|
+
"@monkvision/common": "5.0.22",
|
|
32
|
+
"@monkvision/common-ui-web": "5.0.22",
|
|
33
|
+
"@monkvision/monitoring": "5.0.22",
|
|
34
34
|
"fast-deep-equal": "^3.1.3",
|
|
35
35
|
"i18next": "^23.4.5",
|
|
36
36
|
"react-i18next": "^13.2.0"
|
|
@@ -42,13 +42,13 @@
|
|
|
42
42
|
"react-router-dom": "^6.22.3"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@monkvision/eslint-config-base": "5.0.
|
|
46
|
-
"@monkvision/eslint-config-typescript": "5.0.
|
|
47
|
-
"@monkvision/eslint-config-typescript-react": "5.0.
|
|
48
|
-
"@monkvision/jest-config": "5.0.
|
|
49
|
-
"@monkvision/prettier-config": "5.0.
|
|
50
|
-
"@monkvision/test-utils": "5.0.
|
|
51
|
-
"@monkvision/typescript-config": "5.0.
|
|
45
|
+
"@monkvision/eslint-config-base": "5.0.22",
|
|
46
|
+
"@monkvision/eslint-config-typescript": "5.0.22",
|
|
47
|
+
"@monkvision/eslint-config-typescript-react": "5.0.22",
|
|
48
|
+
"@monkvision/jest-config": "5.0.22",
|
|
49
|
+
"@monkvision/prettier-config": "5.0.22",
|
|
50
|
+
"@monkvision/test-utils": "5.0.22",
|
|
51
|
+
"@monkvision/typescript-config": "5.0.22",
|
|
52
52
|
"@testing-library/react": "^12.1.5",
|
|
53
53
|
"@testing-library/react-hooks": "^8.0.1",
|
|
54
54
|
"@types/fscreen": "^1.0.1",
|
|
@@ -90,5 +90,5 @@
|
|
|
90
90
|
"url": "https://github.com/monkvision/monkjs/issues"
|
|
91
91
|
},
|
|
92
92
|
"homepage": "https://github.com/monkvision/monkjs",
|
|
93
|
-
"gitHead": "
|
|
93
|
+
"gitHead": "a247bce658ecb086070158973a2e30ca420f0713"
|
|
94
94
|
}
|