@newtonschool/react_proctoring_library 0.0.65 → 0.0.67-staging
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/dist/components/breach-parameters/index.js +24 -0
- package/dist/components/fullscreen/index.js +31 -0
- package/dist/components/index.js +1 -1
- package/dist/components/permissions/index.js +2 -2
- package/dist/components/permissions/permission-body.js +2 -2
- package/dist/components/proctor-app/Loadable.js +2 -2
- package/dist/components/proctor-app/index.js +56 -94
- package/dist/components/proctor-context-app/Loadable.js +2 -2
- package/dist/components/proctor-context-app/index.js +43 -32
- package/dist/components/screenshare-activity-tracker/electron.js +104 -0
- package/dist/components/screenshare-activity-tracker/index.js +31 -16
- package/dist/components/screenshare-activity-tracker/web.js +94 -0
- package/dist/components/webcam-activity-tracker/electron.js +110 -0
- package/dist/components/webcam-activity-tracker/index.js +32 -50
- package/dist/components/webcam-activity-tracker/web.js +126 -0
- package/dist/contexts/ElectronContext.js +9 -0
- package/dist/hooks/electron/useFullScreenData.js +40 -0
- package/dist/hooks/electron/useIsElectron.js +31 -0
- package/dist/hooks/electron/useIsPageFocussed.js +25 -0
- package/dist/hooks/electron/usePageVisibility.js +37 -0
- package/dist/hooks/electron/useWakeUpLock.js +33 -0
- package/dist/hooks/useBreachData.js +39 -0
- package/dist/hooks/useGenericFullScreenData.js +29 -0
- package/dist/hooks/useGenericPageFocus.js +17 -0
- package/dist/hooks/useGenericPageVisibility.js +17 -0
- package/dist/hooks/useGenericWakeUpLock.js +29 -0
- package/dist/hooks/useTrackBreachParameters.js +63 -0
- package/dist/hooks/{index.js → web/index.js} +1 -1
- package/dist/hooks/{useFullScreenData.js → web/useFullScreenData.js} +12 -10
- package/dist/hooks/{useIsPageFocussed.js → web/useIsPageFocussed.js} +1 -1
- package/dist/hooks/{usePageVisibility.js → web/usePageVisibility.js} +1 -1
- package/dist/hooks/{useWakeUpLock.js → web/useWakeUpLock.js} +2 -2
- package/dist/utils/breachUtils.js +2 -2
- package/dist/utils/browserUtils.js +22 -22
- package/dist/utils/fullScreen.js +31 -0
- package/dist/utils/loadable.js +1 -1
- package/dist/utils/webcamMicrophoneUtils.js +27 -4
- package/package.json +3 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = BreachParameters;
|
|
7
|
+
var _useTrackBreachParameters = require("../../hooks/useTrackBreachParameters");
|
|
8
|
+
function BreachParameters(_ref) {
|
|
9
|
+
let {
|
|
10
|
+
config,
|
|
11
|
+
getProctorParamValues,
|
|
12
|
+
proctoringIdentifier,
|
|
13
|
+
permissions,
|
|
14
|
+
proctorParams
|
|
15
|
+
} = _ref;
|
|
16
|
+
(0, _useTrackBreachParameters.useTrackBreachParameters)({
|
|
17
|
+
config,
|
|
18
|
+
getProctorParamValues,
|
|
19
|
+
proctoringIdentifier,
|
|
20
|
+
permissions,
|
|
21
|
+
proctorParams
|
|
22
|
+
});
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = FullScreen;
|
|
7
|
+
require("core-js/modules/es.symbol.description.js");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _useGenericFullScreenData = _interopRequireDefault(require("../../hooks/useGenericFullScreenData"));
|
|
10
|
+
var _ElectronContext = require("../../contexts/ElectronContext");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
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; }
|
|
13
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
16
|
+
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); }
|
|
17
|
+
function FullScreen(_ref) {
|
|
18
|
+
let {
|
|
19
|
+
setAskPermissionAction
|
|
20
|
+
} = _ref;
|
|
21
|
+
const isElectronApp = (0, _react.useContext)(_ElectronContext.ElectronContext);
|
|
22
|
+
const {
|
|
23
|
+
setFullscreen
|
|
24
|
+
} = (0, _useGenericFullScreenData.default)(isElectronApp);
|
|
25
|
+
(0, _react.useEffect)(() => {
|
|
26
|
+
setAskPermissionAction(oldAskPermissionAction => _objectSpread(_objectSpread({}, oldAskPermissionAction), {}, {
|
|
27
|
+
fullscreen: () => setFullscreen(true)
|
|
28
|
+
}));
|
|
29
|
+
}, [setAskPermissionAction, setFullscreen]);
|
|
30
|
+
return null;
|
|
31
|
+
}
|
package/dist/components/index.js
CHANGED
|
@@ -24,4 +24,4 @@ Object.defineProperty(exports, "ProctoredContextApp", {
|
|
|
24
24
|
var _permissions = require("./permissions");
|
|
25
25
|
var _proctorApp = _interopRequireDefault(require("./proctor-app"));
|
|
26
26
|
var _proctorContextApp = _interopRequireDefault(require("./proctor-context-app"));
|
|
27
|
-
function _interopRequireDefault(
|
|
27
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -14,8 +14,8 @@ var _permissionBody = require("./permission-body");
|
|
|
14
14
|
var _breachUtils = require("../../utils/breachUtils");
|
|
15
15
|
var _permission = require("../../utils/permission");
|
|
16
16
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
18
|
-
function _interopRequireDefault(
|
|
17
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
19
|
const Permission = _ref => {
|
|
20
20
|
let {
|
|
21
21
|
proctorParams,
|
|
@@ -12,8 +12,8 @@ require("./index.scss");
|
|
|
12
12
|
var text = _interopRequireWildcard(require("../../constants/text"));
|
|
13
13
|
var _browserUtils = require("../../utils/browserUtils");
|
|
14
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
16
|
-
function _interopRequireDefault(
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
17
|
const PermissionBody = _ref => {
|
|
18
18
|
let {
|
|
19
19
|
showFullscreenText,
|
|
@@ -9,9 +9,9 @@ require("core-js/modules/es.weak-map.js");
|
|
|
9
9
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
var _loadable = _interopRequireDefault(require("../../utils/loadable"));
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
15
15
|
* Asynchronously loads the component for FeaturePage
|
|
16
16
|
*/
|
|
17
17
|
var _default = exports.default = (0, _loadable.default)(() => Promise.resolve().then(() => _interopRequireWildcard(require("./index"))), {
|
|
@@ -1,38 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/es.symbol.description.js");
|
|
3
4
|
require("core-js/modules/es.object.assign.js");
|
|
4
5
|
require("core-js/modules/es.weak-map.js");
|
|
5
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
6
6
|
Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
value: true
|
|
8
8
|
});
|
|
9
9
|
exports.default = exports.ProctorApp = void 0;
|
|
10
|
-
require("core-js/modules/
|
|
11
|
-
require("core-js/modules/es.symbol.description.js");
|
|
10
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
12
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
var _useWakeUpLock = require("../../hooks/useWakeUpLock");
|
|
14
12
|
require("./index.scss");
|
|
15
|
-
var _utils = require("../../utils");
|
|
16
|
-
var _hooks = require("../../hooks");
|
|
17
13
|
var _permissions = require("../permissions");
|
|
18
14
|
var _breachUtils = require("../../utils/breachUtils");
|
|
19
|
-
var _webcamMicrophoneUtils = require("../../utils/webcamMicrophoneUtils");
|
|
20
15
|
var _defaults = require("../../constants/defaults");
|
|
21
|
-
var _webcamActivityTracker = _interopRequireDefault(require("../webcam-activity-tracker"));
|
|
22
16
|
var _browserUtils = require("../../utils/browserUtils");
|
|
23
|
-
var _screenshareActivityTracker = require("../screenshare-activity-tracker");
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
|
|
17
|
+
var _screenshareActivityTracker = _interopRequireDefault(require("../screenshare-activity-tracker"));
|
|
18
|
+
var _webcamActivityTracker = _interopRequireDefault(require("../webcam-activity-tracker"));
|
|
19
|
+
var _fullscreen = _interopRequireDefault(require("../fullscreen"));
|
|
20
|
+
var _ElectronContext = require("../../contexts/ElectronContext");
|
|
21
|
+
var _useGenericWakeUpLock = _interopRequireDefault(require("../../hooks/useGenericWakeUpLock"));
|
|
22
|
+
var _breachParameters = _interopRequireDefault(require("../breach-parameters"));
|
|
23
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
27
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
28
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
29
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
25
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
26
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
30
27
|
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; }
|
|
31
28
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
32
|
-
function _defineProperty(
|
|
33
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
|
29
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
30
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
34
31
|
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); }
|
|
35
|
-
const isWebcamProcessingReliable = (0, _utils.isGPUAvailable)();
|
|
36
32
|
const ProctorApp = _ref => {
|
|
37
33
|
let {
|
|
38
34
|
proctoringIdentifier,
|
|
@@ -48,106 +44,72 @@ const ProctorApp = _ref => {
|
|
|
48
44
|
} = _ref;
|
|
49
45
|
const context = (0, _react.useContext)(proctoredContext);
|
|
50
46
|
const {
|
|
51
|
-
actions,
|
|
52
47
|
permissions,
|
|
53
48
|
references,
|
|
54
|
-
|
|
55
|
-
screenshareStream
|
|
49
|
+
permissionErrors
|
|
56
50
|
} = context;
|
|
57
51
|
const {
|
|
58
52
|
acquireWakeUpLock,
|
|
59
53
|
releaseWakeUpLock
|
|
60
|
-
} = (0,
|
|
54
|
+
} = (0, _useGenericWakeUpLock.default)();
|
|
55
|
+
const [askPermissionAction, setAskPermissionAction] = (0, _react.useState)({
|
|
56
|
+
screenshare: () => {},
|
|
57
|
+
fullscreen: () => {},
|
|
58
|
+
video: () => {}
|
|
59
|
+
});
|
|
61
60
|
(0, _react.useEffect)(() => {
|
|
62
61
|
acquireWakeUpLock();
|
|
63
62
|
return releaseWakeUpLock;
|
|
64
63
|
}, []);
|
|
64
|
+
const isElectronApp = (0, _react.useContext)(_ElectronContext.ElectronContext);
|
|
65
65
|
const CustomPermissionView = customPermissionView;
|
|
66
66
|
const proctorParams = (0, _react.useMemo)(() => _objectSpread(_objectSpread({}, _defaults.defaultConfig), config.proctorParams), [config.proctorParams]);
|
|
67
|
-
const statistics = (0, _react.useRef)((0, _breachUtils.getInitialStats)(proctorParams));
|
|
68
|
-
const {
|
|
69
|
-
recurring = false,
|
|
70
|
-
recurringFetchInterval = 0
|
|
71
|
-
} = config;
|
|
72
|
-
const recurringFetchIntervalRef = (0, _react.useRef)(null);
|
|
73
|
-
const sendScreengrab = (0, _react.useCallback)(async function () {
|
|
74
|
-
let isBreach = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
75
|
-
let breachedParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
76
|
-
if (proctorParams.screenshareSnapshots && permissions.screenshare) {
|
|
77
|
-
const screenshot = await (0, _webcamMicrophoneUtils.captureScreenshot)("#".concat(_dom.SCREENSHARE_REFERENCE_ID));
|
|
78
|
-
getScreengrab(proctoringIdentifier, screenshot, isBreach, breachedParam);
|
|
79
|
-
}
|
|
80
|
-
}, [getScreengrab, proctoringIdentifier, proctorParams.screenshareSnapshots, permissions.screenshare]);
|
|
81
|
-
const sendWebcamSnapshot = (0, _react.useCallback)(async function () {
|
|
82
|
-
let isBreach = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
83
|
-
let breachedParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
84
|
-
if (proctorParams.webcamSnapshots && permissions.video) {
|
|
85
|
-
const webcamSnapshot = await (0, _webcamMicrophoneUtils.captureScreenshot)("#".concat(_dom.WEBCAM_REFERENCE_ID));
|
|
86
|
-
getWebcamSnapshot(proctoringIdentifier, webcamSnapshot, isBreach, breachedParam);
|
|
87
|
-
}
|
|
88
|
-
}, [proctoringIdentifier, getWebcamSnapshot, proctorParams.webcamSnapshots, permissions.video]);
|
|
89
|
-
const sendProctoredParamValues = (0, _react.useCallback)(function () {
|
|
90
|
-
let isBreach = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
91
|
-
let breachParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
92
|
-
getProctorParamValues(proctoringIdentifier, statistics.current, isBreach, breachParam);
|
|
93
|
-
}, [proctoringIdentifier, getProctorParamValues]);
|
|
94
|
-
const isTabSwitched = !(0, _hooks.usePageVisibility)(proctorParams.tabSwitch);
|
|
95
|
-
const isPageFocussed = (0, _useIsPageFocussed.default)(proctorParams.pageFocus);
|
|
96
|
-
(0, _react.useEffect)(() => {
|
|
97
|
-
let timeoutId = null;
|
|
98
|
-
if (recurring) {
|
|
99
|
-
const randomStartDelay = 1000 * (Math.floor(Math.random() * 10) + 1);
|
|
100
|
-
timeoutId = setTimeout(() => {
|
|
101
|
-
recurringFetchIntervalRef.current = setInterval(() => {
|
|
102
|
-
sendProctoredParamValues();
|
|
103
|
-
sendWebcamSnapshot();
|
|
104
|
-
sendScreengrab();
|
|
105
|
-
}, recurringFetchInterval);
|
|
106
|
-
}, randomStartDelay);
|
|
107
|
-
}
|
|
108
|
-
return () => {
|
|
109
|
-
clearInterval(recurringFetchIntervalRef.current);
|
|
110
|
-
clearTimeout(timeoutId);
|
|
111
|
-
};
|
|
112
|
-
}, [recurring, recurringFetchInterval, sendProctoredParamValues, sendWebcamSnapshot, sendScreengrab]);
|
|
113
|
-
(0, _react.useEffect)(() => {
|
|
114
|
-
const currentStats = {
|
|
115
|
-
isTabSwitched,
|
|
116
|
-
isFullScreen: permissions.fullscreen,
|
|
117
|
-
isWebcamDataNotReliable: !isWebcamProcessingReliable,
|
|
118
|
-
isPageFocussed
|
|
119
|
-
};
|
|
120
|
-
const breachData = (0, _breachUtils.getDataOnBreach)(statistics, currentStats, proctorParams);
|
|
121
|
-
(0, _utils.updateStatistics)(statistics, currentStats, proctorParams);
|
|
122
|
-
if (breachData) {
|
|
123
|
-
sendProctoredParamValues(true, breachData.breachedParam);
|
|
124
|
-
sendWebcamSnapshot(true, breachData.breachedParam);
|
|
125
|
-
sendScreengrab(true, breachData.breachedParam);
|
|
126
|
-
}
|
|
127
|
-
}, [isTabSwitched, isPageFocussed, permissions.fullscreen, sendProctoredParamValues, sendWebcamSnapshot, sendScreengrab, proctorParams]);
|
|
128
67
|
const shouldShowProctoredComponent = (0, _breachUtils.showProctoredComponent)(proctorParams, permissions);
|
|
68
|
+
const askPermission = (0, _react.useCallback)(requiredPermissions => {
|
|
69
|
+
requiredPermissions.forEach(element => {
|
|
70
|
+
if (!permissions[element] && askPermissionAction[element]) {
|
|
71
|
+
askPermissionAction[element]();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}, [permissions, askPermissionAction]);
|
|
129
75
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
130
76
|
className: "".concat(proctorParams.copyPasteProctoring ? 'disable-copy-paste fullwidth fullheight' : 'fullwidth fullheight')
|
|
131
77
|
}, shouldShowProctoredComponent && children, !shouldShowProctoredComponent && customPermissionView && /*#__PURE__*/_react.default.createElement(CustomPermissionView, _extends({
|
|
132
78
|
permissions: permissions,
|
|
133
79
|
proctorParams: proctorParams,
|
|
134
80
|
references: references,
|
|
135
|
-
actions:
|
|
136
|
-
|
|
81
|
+
actions: {
|
|
82
|
+
askPermission
|
|
83
|
+
},
|
|
84
|
+
browserDetails: (0, _browserUtils.getBrowserDetails)(),
|
|
85
|
+
permissionErrors: permissionErrors
|
|
137
86
|
}, permissionPassedProps)), !shouldShowProctoredComponent && !customPermissionView && /*#__PURE__*/_react.default.createElement(_permissions.Permission, {
|
|
138
|
-
proctorParams: proctorParams,
|
|
139
87
|
permissions: permissions,
|
|
140
|
-
|
|
88
|
+
proctorParams: proctorParams,
|
|
89
|
+
askPermission: askPermission
|
|
141
90
|
}), proctorParams.webcamSnapshots && /*#__PURE__*/_react.default.createElement(_webcamActivityTracker.default, {
|
|
91
|
+
logger: logger,
|
|
92
|
+
config: config,
|
|
93
|
+
proctorParams: proctorParams,
|
|
94
|
+
proctoredContext: proctoredContext,
|
|
95
|
+
getWebcamSnapshot: getWebcamSnapshot,
|
|
96
|
+
proctoringIdentifier: proctoringIdentifier,
|
|
97
|
+
setAskPermissionAction: setAskPermissionAction
|
|
98
|
+
}), proctorParams.screenshareSnapshots && /*#__PURE__*/_react.default.createElement(_screenshareActivityTracker.default, {
|
|
99
|
+
config: config,
|
|
100
|
+
getScreengrab: getScreengrab,
|
|
101
|
+
proctorParams: proctorParams,
|
|
102
|
+
proctoredContext: proctoredContext,
|
|
103
|
+
proctoringIdentifier: proctoringIdentifier,
|
|
104
|
+
setAskPermissionAction: setAskPermissionAction
|
|
105
|
+
}), proctorParams.fullscreenExit && /*#__PURE__*/_react.default.createElement(_fullscreen.default, {
|
|
106
|
+
setAskPermissionAction: setAskPermissionAction
|
|
107
|
+
}), /*#__PURE__*/_react.default.createElement(_breachParameters.default, {
|
|
108
|
+
config: config,
|
|
109
|
+
getProctorParamValues: getProctorParamValues,
|
|
110
|
+
permissions: permissions,
|
|
142
111
|
proctorParams: proctorParams,
|
|
143
|
-
|
|
144
|
-
setVideoPermission: permissionSetter.video,
|
|
145
|
-
webcamReference: references.webcamReference,
|
|
146
|
-
canvasReference: references.canvasReference,
|
|
147
|
-
logger: logger
|
|
148
|
-
}), proctorParams.screenshareSnapshots && /*#__PURE__*/_react.default.createElement(_screenshareActivityTracker.ScreenshareActivityTracker, {
|
|
149
|
-
screenshareStream: screenshareStream,
|
|
150
|
-
ref: references.screenshareReference
|
|
112
|
+
proctoringIdentifier: proctoringIdentifier
|
|
151
113
|
}));
|
|
152
114
|
};
|
|
153
115
|
exports.ProctorApp = ProctorApp;
|
|
@@ -9,9 +9,9 @@ require("core-js/modules/es.weak-map.js");
|
|
|
9
9
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
var _loadable = _interopRequireDefault(require("../../utils/loadable"));
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
15
15
|
* Asynchronously loads the component for FeaturePage
|
|
16
16
|
*/
|
|
17
17
|
var _default = exports.default = (0, _loadable.default)(() => Promise.resolve().then(() => _interopRequireWildcard(require("./index"))), {
|
|
@@ -8,15 +8,17 @@ exports.default = void 0;
|
|
|
8
8
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
9
9
|
require("core-js/modules/es.symbol.description.js");
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _hooks = require("../../hooks");
|
|
12
|
-
var _webcamMicrophoneUtils = require("../../utils/webcamMicrophoneUtils");
|
|
13
11
|
var _defaults = require("../../constants/defaults");
|
|
12
|
+
var _useIsElectron = _interopRequireDefault(require("../../hooks/electron/useIsElectron"));
|
|
13
|
+
var _ElectronContext = require("../../contexts/ElectronContext");
|
|
14
|
+
var _useGenericFullScreenData = _interopRequireDefault(require("../../hooks/useGenericFullScreenData"));
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
16
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
17
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
18
|
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; }
|
|
17
19
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
|
-
function _defineProperty(
|
|
19
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
|
20
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
21
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
20
22
|
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); }
|
|
21
23
|
const ProctoredContextApp = _ref => {
|
|
22
24
|
let {
|
|
@@ -28,17 +30,25 @@ const ProctoredContextApp = _ref => {
|
|
|
28
30
|
customContext = {}
|
|
29
31
|
} = _ref;
|
|
30
32
|
const proctorParams = (0, _react.useMemo)(() => _objectSpread(_objectSpread({}, _defaults.defaultConfig), config.proctorParams), [config.proctorParams]);
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
} = (0, _hooks.useFullscreenData)(proctorParams.fullscreenExit);
|
|
33
|
+
const [, isElectronApp] = (0, _useIsElectron.default)();
|
|
34
|
+
const [webCamDeviceId, setWebCamDeviceId] = (0, _react.useState)();
|
|
35
|
+
const [screenShareDeviceId, setScreenShareDeviceId] = (0, _react.useState)();
|
|
35
36
|
const [audioPermisison, setAudioPermission] = (0, _react.useState)();
|
|
36
37
|
const [videoPermission, setVideoPermission] = (0, _react.useState)();
|
|
38
|
+
const [permissionErrors, setPermissionErrors] = (0, _react.useState)({
|
|
39
|
+
audio: null,
|
|
40
|
+
video: null,
|
|
41
|
+
fullscreen: null,
|
|
42
|
+
screenshare: null
|
|
43
|
+
});
|
|
37
44
|
const [screensharePermission, setScreensharePermission] = (0, _react.useState)();
|
|
38
45
|
const webcamReference = (0, _react.useRef)(null);
|
|
39
|
-
const canvasReference = (0, _react.useRef)(null);
|
|
40
46
|
const screenshareReference = (0, _react.useRef)(null);
|
|
41
47
|
const [screenshareStream, setScreenshareStream] = (0, _react.useState)(null);
|
|
48
|
+
const data = (0, _useGenericFullScreenData.default)(isElectronApp);
|
|
49
|
+
const {
|
|
50
|
+
isFullscreen
|
|
51
|
+
} = data;
|
|
42
52
|
const Context = contextProvider;
|
|
43
53
|
const permissions = (0, _react.useMemo)(() => ({
|
|
44
54
|
video: videoPermission,
|
|
@@ -46,24 +56,16 @@ const ProctoredContextApp = _ref => {
|
|
|
46
56
|
fullscreen: isFullscreen,
|
|
47
57
|
screenshare: screensharePermission
|
|
48
58
|
}), [videoPermission, audioPermisison, isFullscreen, screensharePermission]);
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
},
|
|
53
|
-
fullscreen: () => {
|
|
54
|
-
setFullscreen();
|
|
55
|
-
},
|
|
56
|
-
video: () => {
|
|
57
|
-
window.location.reload();
|
|
59
|
+
const endTest = () => {
|
|
60
|
+
if (isElectronApp) {
|
|
61
|
+
window.electron.actions.stopProctoring();
|
|
58
62
|
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
});
|
|
66
|
-
}, [permissions, askPermissionAction]);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// useEffect(()=>{
|
|
66
|
+
// endTest
|
|
67
|
+
// })
|
|
68
|
+
|
|
67
69
|
return /*#__PURE__*/_react.default.createElement(Context.Provider, {
|
|
68
70
|
value: _objectSpread(_objectSpread({}, customContext), {}, {
|
|
69
71
|
permissions,
|
|
@@ -72,17 +74,26 @@ const ProctoredContextApp = _ref => {
|
|
|
72
74
|
video: setVideoPermission,
|
|
73
75
|
screenshare: setScreensharePermission
|
|
74
76
|
},
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
askPermission
|
|
77
|
+
streamSetter: {
|
|
78
|
+
screenshare: setScreenshareStream
|
|
78
79
|
},
|
|
80
|
+
device: {
|
|
81
|
+
webCamDeviceId,
|
|
82
|
+
screenShareDeviceId,
|
|
83
|
+
setWebCamDeviceId,
|
|
84
|
+
setScreenShareDeviceId
|
|
85
|
+
},
|
|
86
|
+
permissionErrors,
|
|
87
|
+
setPermissionErrors,
|
|
88
|
+
proctorParams,
|
|
79
89
|
references: {
|
|
80
90
|
webcamReference,
|
|
81
|
-
canvasReference,
|
|
82
91
|
screenshareReference
|
|
83
92
|
},
|
|
84
93
|
screenshareStream
|
|
85
94
|
})
|
|
86
|
-
},
|
|
95
|
+
}, /*#__PURE__*/_react.default.createElement(_ElectronContext.ElectronContextProvider, {
|
|
96
|
+
value: isElectronApp
|
|
97
|
+
}, children));
|
|
87
98
|
};
|
|
88
99
|
var _default = exports.default = ProctoredContextApp;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = ElectronScreenShare;
|
|
7
|
+
require("core-js/modules/es.promise.js");
|
|
8
|
+
require("core-js/modules/es.symbol.description.js");
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
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; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
14
|
+
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); }
|
|
15
|
+
function ElectronScreenShare(_ref) {
|
|
16
|
+
let {
|
|
17
|
+
setAskPermissionAction,
|
|
18
|
+
proctoredContext,
|
|
19
|
+
config,
|
|
20
|
+
proctorParams
|
|
21
|
+
} = _ref;
|
|
22
|
+
const {
|
|
23
|
+
permissionSetter,
|
|
24
|
+
setPermissionErrors,
|
|
25
|
+
device
|
|
26
|
+
} = (0, _react.useContext)(proctoredContext);
|
|
27
|
+
const setScreensharePermission = permissionSetter.screenshare;
|
|
28
|
+
const streamDeviceId = device === null || device === void 0 ? void 0 : device.screenShareDeviceId;
|
|
29
|
+
(0, _react.useEffect)(() => {
|
|
30
|
+
setAskPermissionAction(oldAskPermissionAction => _objectSpread(_objectSpread({}, oldAskPermissionAction), {}, {
|
|
31
|
+
screenshare: async () => {
|
|
32
|
+
device.setScreenShareDeviceId(false);
|
|
33
|
+
setPermissionErrors(oldErrors => _objectSpread(_objectSpread({}, oldErrors || {}), {}, {
|
|
34
|
+
screenshare: null
|
|
35
|
+
}));
|
|
36
|
+
try {
|
|
37
|
+
await window.electron.permissions.requestScreenCapturePermission();
|
|
38
|
+
const streams = await window.electron.streams.getScreenStream();
|
|
39
|
+
const startedScreenShareRecording = await window.electron.actions.startScreenShareRecording(streams[0].id);
|
|
40
|
+
if (!startedScreenShareRecording) {
|
|
41
|
+
throw new Error('Error starting screen share recording');
|
|
42
|
+
}
|
|
43
|
+
device.setScreenShareDeviceId(streams[0].id);
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.error(error);
|
|
46
|
+
setPermissionErrors(oldErrors => _objectSpread(_objectSpread({}, oldErrors || {}), {}, {
|
|
47
|
+
screenshare: (error === null || error === void 0 ? void 0 : error.message) || 'Failed to start screen share'
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}));
|
|
52
|
+
}, []);
|
|
53
|
+
const startScreenShareSnapshot = async newStreamId => {
|
|
54
|
+
try {
|
|
55
|
+
setPermissionErrors(oldErrors => _objectSpread(_objectSpread({}, oldErrors || {}), {}, {
|
|
56
|
+
screenshare: null
|
|
57
|
+
}));
|
|
58
|
+
const snapshotIntervalID = await window.electron.actions.startScreenShareSnapshot({
|
|
59
|
+
streamId: newStreamId,
|
|
60
|
+
interval: config.recurringFetchInterval,
|
|
61
|
+
fileUploadConfig: config.fileUploadConfig
|
|
62
|
+
});
|
|
63
|
+
if (!snapshotIntervalID) {
|
|
64
|
+
throw Error('Error starting screen share snapshot');
|
|
65
|
+
}
|
|
66
|
+
return snapshotIntervalID;
|
|
67
|
+
} catch (error) {
|
|
68
|
+
console.error(error);
|
|
69
|
+
setPermissionErrors(oldErrors => _objectSpread(_objectSpread({}, oldErrors || {}), {}, {
|
|
70
|
+
screenshare: (error === null || error === void 0 ? void 0 : error.message) || 'Failed to start screen share'
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const endScreenShareSnapshot = async newStreamId => {
|
|
75
|
+
await window.electron.actions.stopScreenShareSnapshot({
|
|
76
|
+
streamId: newStreamId
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
(0, _react.useEffect)(() => {
|
|
80
|
+
var _config$fileUploadCon;
|
|
81
|
+
if (streamDeviceId && config !== null && config !== void 0 && (_config$fileUploadCon = config.fileUploadConfig) !== null && _config$fileUploadCon !== void 0 && _config$fileUploadCon.screenShare && config !== null && config !== void 0 && config.recurring) {
|
|
82
|
+
const snapshotIntervalID = startScreenShareSnapshot(streamDeviceId);
|
|
83
|
+
return () => {
|
|
84
|
+
console.log(snapshotIntervalID, 'snapshotIntervalID');
|
|
85
|
+
endScreenShareSnapshot(snapshotIntervalID);
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}, [streamDeviceId, config]);
|
|
89
|
+
(0, _react.useEffect)(() => {
|
|
90
|
+
if (streamDeviceId) {
|
|
91
|
+
const permissionSetter = permission => {
|
|
92
|
+
setScreensharePermission(permission);
|
|
93
|
+
};
|
|
94
|
+
window.electron.states.isScreenShareRecordingStarted(streamDeviceId).then(recordingStarted => {
|
|
95
|
+
permissionSetter(recordingStarted);
|
|
96
|
+
});
|
|
97
|
+
const id = window.electron.listener.screenShareRecordingStatusChanged(streamDeviceId, permissionSetter);
|
|
98
|
+
return () => {
|
|
99
|
+
window.electron.listener.removeListener(id, permissionSetter);
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}, [streamDeviceId]);
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
@@ -5,24 +5,39 @@ require("core-js/modules/web.dom-collections.iterator.js");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.default = void 0;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var
|
|
11
|
-
var
|
|
10
|
+
var _ElectronContext = require("../../contexts/ElectronContext");
|
|
11
|
+
var _electron = _interopRequireDefault(require("./electron"));
|
|
12
|
+
var _web = _interopRequireDefault(require("./web"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
13
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
14
|
-
const
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
const ScreenShare = _ref => {
|
|
15
17
|
let {
|
|
16
|
-
|
|
18
|
+
proctoredContext,
|
|
19
|
+
setAskPermissionAction,
|
|
20
|
+
proctorParams,
|
|
21
|
+
proctoringIdentifier,
|
|
22
|
+
getScreengrab,
|
|
23
|
+
config
|
|
17
24
|
} = _ref;
|
|
18
|
-
(0, _react.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
const isElectronApp = (0, _react.useContext)(_ElectronContext.ElectronContext);
|
|
26
|
+
if (isElectronApp) {
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(_electron.default, {
|
|
28
|
+
setAskPermissionAction: setAskPermissionAction,
|
|
29
|
+
proctorParams: proctorParams,
|
|
30
|
+
proctoredContext: proctoredContext,
|
|
31
|
+
config: config
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return /*#__PURE__*/_react.default.createElement(_web.default, {
|
|
35
|
+
proctoredContext: proctoredContext,
|
|
36
|
+
setAskPermissionAction: setAskPermissionAction,
|
|
37
|
+
getScreengrab: getScreengrab,
|
|
38
|
+
proctorParams: proctorParams,
|
|
39
|
+
proctoringIdentifier: proctoringIdentifier,
|
|
40
|
+
config: config
|
|
27
41
|
});
|
|
28
|
-
}
|
|
42
|
+
};
|
|
43
|
+
var _default = exports.default = ScreenShare;
|