@newtonschool/react_proctoring_library 0.0.79 → 0.0.81

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.
@@ -10,6 +10,7 @@ require("core-js/modules/es.string.includes.js");
10
10
  require("core-js/modules/es.promise.js");
11
11
  var _react = require("react");
12
12
  var _reactWebcam = _interopRequireDefault(require("react-webcam"));
13
+ var _useSleepDetetected = require("../../hooks/useSleepDetetected");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
16
  function ownKeys(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; }
@@ -19,10 +20,13 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
19
20
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
21
  const getMacBookDevice = function getMacBookDevice() {
21
22
  let devices = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
23
+ if (!devices) {
24
+ return null;
25
+ }
22
26
  if (devices.length === 1) {
23
27
  return devices[0];
24
28
  }
25
- return devices.find(device => device.label.includes('FaceTime HD Camera'));
29
+ return devices.find(device => device.label.includes('FaceTime HD Camera')) || devices[0];
26
30
  };
27
31
  function ElectronWebCam(_ref) {
28
32
  let {
@@ -45,6 +49,7 @@ function ElectronWebCam(_ref) {
45
49
  recurringFetchInterval = 30000
46
50
  } = config;
47
51
  const deviceId = device === null || device === void 0 ? void 0 : device.webCamDeviceId;
52
+ const deviceWentToSleepCount = (0, _useSleepDetetected.useSleepDetected)();
48
53
  (0, _react.useEffect)(() => {
49
54
  setAskPermissionAction(oldAskPermissionAction => _objectSpread(_objectSpread({}, oldAskPermissionAction), {}, {
50
55
  video: async () => {
@@ -103,7 +108,7 @@ function ElectronWebCam(_ref) {
103
108
  if (deviceId) {
104
109
  startWebCamSnapshot();
105
110
  }
106
- }, [config.fileUploadConfig, deviceId, recurring, recurringFetchInterval, device.webCamDeviceId]);
111
+ }, [config.fileUploadConfig, deviceId, recurring, recurringFetchInterval, device.webCamDeviceId, deviceWentToSleepCount]);
107
112
  (0, _react.useEffect)(() => {
108
113
  if (deviceId) {
109
114
  const permissionSetter = permission => {
@@ -9,6 +9,7 @@ var _react = require("react");
9
9
  var _breachUtils = require("../../utils/breachUtils");
10
10
  var _useGenericFullScreenData = _interopRequireDefault(require("../useGenericFullScreenData"));
11
11
  var _ElectronContext = require("../../contexts/ElectronContext");
12
+ var _useIsPageFocussed = _interopRequireDefault(require("./useIsPageFocussed"));
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  function useKioskMode(_ref) {
14
15
  let {
@@ -24,15 +25,7 @@ function useKioskMode(_ref) {
24
25
  isFullscreen
25
26
  } = (0, _useGenericFullScreenData.default)(isElectronApp);
26
27
  const shouldShowProctoredComponent = (0, _breachUtils.showProctoredComponent)(proctorParams, permissions);
27
- const [isDocumentFocused, setIsDocumentFocused] = (0, _react.useState)(true);
28
- (0, _react.useEffect)(() => {
29
- window.addEventListener('focus', () => {
30
- setIsDocumentFocused(true);
31
- });
32
- window.addEventListener('blur', () => {
33
- setIsDocumentFocused(false);
34
- });
35
- }, []);
28
+ const isDocumentFocused = (0, _useIsPageFocussed.default)(isElectronApp);
36
29
  (0, _react.useEffect)(() => {
37
30
  const updateOnlineStatus = () => {
38
31
  setConnectedToInternet(window.navigator.onLine);
@@ -40,6 +33,10 @@ function useKioskMode(_ref) {
40
33
  window.addEventListener('online', updateOnlineStatus);
41
34
  window.addEventListener('offline', updateOnlineStatus);
42
35
  updateOnlineStatus();
36
+ return () => {
37
+ window.removeEventListener('online', updateOnlineStatus);
38
+ window.removeEventListener('offline', updateOnlineStatus);
39
+ };
43
40
  }, []);
44
41
  (0, _react.useEffect)(() => {
45
42
  if (shouldShowProctoredComponent && isFullscreen && isElectronApp && connectedToInternet && isDocumentFocused) {
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useSleepDetected = void 0;
7
+ require("core-js/modules/web.dom-collections.iterator.js");
8
+ var _react = require("react");
9
+ const useSleepDetected = () => {
10
+ const [deviceWentToSleepCount, setDeviceWentToSleepCount] = (0, _react.useState)(0);
11
+ var lastTime = new Date().getTime();
12
+ setInterval(function () {
13
+ var currentTime = new Date().getTime();
14
+ if (currentTime > lastTime + 2000 * 2) {
15
+ setDeviceWentToSleepCount(deviceWentToSleepCount + 1);
16
+ }
17
+ lastTime = currentTime;
18
+ }, 2000);
19
+ return deviceWentToSleepCount;
20
+ };
21
+ exports.useSleepDetected = useSleepDetected;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newtonschool/react_proctoring_library",
3
- "version": "0.0.79",
3
+ "version": "0.0.81",
4
4
  "description": "Used to proctor online tests",
5
5
  "author": "ayushkagrawal,shreyachandra,weastel",
6
6
  "main": "dist/index.js",