idmission-web-sdk 2.3.81 → 2.3.82

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.
@@ -211,7 +211,7 @@
211
211
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
212
212
  };
213
213
 
214
- var webSdkVersion = '2.3.81';
214
+ var webSdkVersion = '2.3.82';
215
215
 
216
216
  function getPlatform() {
217
217
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -2125,6 +2125,12 @@
2125
2125
  setIdCaptureVideoUrl: function setIdCaptureVideoUrl() {
2126
2126
  return null;
2127
2127
  },
2128
+ setSignatureStartTimestamp: function setSignatureStartTimestamp() {
2129
+ return null;
2130
+ },
2131
+ setSignatureEndTimestamp: function setSignatureEndTimestamp() {
2132
+ return null;
2133
+ },
2128
2134
  setIdCaptureVideoIdFrontImage: function setIdCaptureVideoIdFrontImage() {
2129
2135
  return null;
2130
2136
  },
@@ -2289,44 +2295,50 @@
2289
2295
  signatureVideoUrl = _16[0],
2290
2296
  setSignatureVideoUrl = _16[1];
2291
2297
  var _17 = React.useState(null),
2292
- idCaptureVideoUrl = _17[0],
2293
- setIdCaptureVideoUrl = _17[1];
2298
+ signatureStartTimestamp = _17[0],
2299
+ setSignatureStartTimestamp = _17[1];
2294
2300
  var _18 = React.useState(null),
2295
- idCaptureVideoIdFrontImage = _18[0],
2296
- setIdCaptureVideoIdFrontImage = _18[1];
2301
+ signatureEndTimestamp = _18[0],
2302
+ setSignatureEndTimestamp = _18[1];
2297
2303
  var _19 = React.useState(null),
2298
- idCaptureVideoIdBackImage = _19[0],
2299
- setIdCaptureVideoIdBackImage = _19[1];
2304
+ idCaptureVideoUrl = _19[0],
2305
+ setIdCaptureVideoUrl = _19[1];
2300
2306
  var _20 = React.useState(null),
2301
- idCaptureVideoAudioUrl = _20[0],
2302
- setIdCaptureVideoAudioUrl = _20[1];
2307
+ idCaptureVideoIdFrontImage = _20[0],
2308
+ setIdCaptureVideoIdFrontImage = _20[1];
2303
2309
  var _21 = React.useState(null),
2304
- idCaptureVideoAudioStartsAt = _21[0],
2305
- setIdCaptureVideoAudioStartsAt = _21[1];
2310
+ idCaptureVideoIdBackImage = _21[0],
2311
+ setIdCaptureVideoIdBackImage = _21[1];
2306
2312
  var _22 = React.useState(null),
2307
- expectedAudioText = _22[0],
2308
- setExpectedAudioText = _22[1];
2313
+ idCaptureVideoAudioUrl = _22[0],
2314
+ setIdCaptureVideoAudioUrl = _22[1];
2309
2315
  var _23 = React.useState(null),
2310
- additionalDocuments = _23[0],
2311
- setAdditionalDocuments = _23[1];
2316
+ idCaptureVideoAudioStartsAt = _23[0],
2317
+ setIdCaptureVideoAudioStartsAt = _23[1];
2312
2318
  var _24 = React.useState(null),
2313
- geolocationResult = _24[0],
2314
- setGeolocationResult = _24[1];
2315
- var _25 = React.useState(0),
2316
- geolocationAttempts = _25[0],
2317
- setGeolocationAttempts = _25[1];
2318
- var _26 = React.useState(false),
2319
- geolocationBlocked = _26[0],
2320
- setGeolocationBlocked = _26[1];
2321
- var _27 = React.useState([]),
2322
- idFrontCaptureAttempts = _27[0],
2323
- setIdFrontCaptureAttempts = _27[1];
2324
- var _28 = React.useState([]),
2325
- idBackCaptureAttempts = _28[0],
2326
- setIdBackCaptureAttempts = _28[1];
2319
+ expectedAudioText = _24[0],
2320
+ setExpectedAudioText = _24[1];
2321
+ var _25 = React.useState(null),
2322
+ additionalDocuments = _25[0],
2323
+ setAdditionalDocuments = _25[1];
2324
+ var _26 = React.useState(null),
2325
+ geolocationResult = _26[0],
2326
+ setGeolocationResult = _26[1];
2327
+ var _27 = React.useState(0),
2328
+ geolocationAttempts = _27[0],
2329
+ setGeolocationAttempts = _27[1];
2330
+ var _28 = React.useState(false),
2331
+ geolocationBlocked = _28[0],
2332
+ setGeolocationBlocked = _28[1];
2327
2333
  var _29 = React.useState([]),
2328
- selfieCaptureAttempts = _29[0],
2329
- setSelfieCaptureAttempts = _29[1];
2334
+ idFrontCaptureAttempts = _29[0],
2335
+ setIdFrontCaptureAttempts = _29[1];
2336
+ var _30 = React.useState([]),
2337
+ idBackCaptureAttempts = _30[0],
2338
+ setIdBackCaptureAttempts = _30[1];
2339
+ var _31 = React.useState([]),
2340
+ selfieCaptureAttempts = _31[0],
2341
+ setSelfieCaptureAttempts = _31[1];
2330
2342
  var logIdFrontCaptureAttempt = React.useCallback(function (attempt) {
2331
2343
  setIdFrontCaptureAttempts(function (attempts) {
2332
2344
  return __spreadArray(__spreadArray([], attempts, true), [attempt], false);
@@ -2603,6 +2615,12 @@
2603
2615
  submissionRequest.customerData.signatureData.signatureVideo = documents.signatureVideo;
2604
2616
  }
2605
2617
  }
2618
+ if (signatureStartTimestamp) {
2619
+ submissionRequest.customerData.signatureStartTimestamp = signatureStartTimestamp;
2620
+ }
2621
+ if (signatureEndTimestamp) {
2622
+ submissionRequest.customerData.signatureEndTimestamp = signatureEndTimestamp;
2623
+ }
2606
2624
  if (additionalDocuments) {
2607
2625
  submissionRequest.customerData.additionalDocuments = additionalDocuments.map(function (d) {
2608
2626
  return _assign(_assign({}, d), {
@@ -2645,7 +2663,7 @@
2645
2663
  }
2646
2664
  });
2647
2665
  });
2648
- }, [additionalDocuments, bypassAgeValidation, bypassNameMatching, cardData, clientRequestID, companyId, customerDataMatchConfig, deduplicationEnabled, deduplicationSynchronous, documentServiceUrl, enrollmentId, expectedAudioText, geolocationResult, idBackCaptureAttempts, idBackImage, idBackImageRequired, idBackIrImage, idBackUvImage, idCaptureVideoAudioStartsAt, idCaptureVideoAudioUrl, idCaptureVideoIdBackImage, idCaptureVideoIdFrontImage, idCaptureVideoUrl, idCardForFaceMatch, idData, idFrontCaptureAttempts, idFrontImage, idFrontIrImage, idFrontUvImage, idImageResolutionCheck, jobId, manualReviewRequired, needImmediateResponse, passportImage, personalData, selfieCaptureAttempts, selfieImage, signatureData, signatureVideoUrl, uploadDocument, verifyIdWithExternalDatabases, webhooksClientTraceId, webhooksEnabled, webhooksFireOnReview, webhooksFireOnReviewURL, webhooksSendInputImages, webhooksSendProcessedImages, webhooksStripSpecialCharacters, webhooksURL]);
2666
+ }, [additionalDocuments, bypassAgeValidation, bypassNameMatching, cardData, clientRequestID, companyId, customerDataMatchConfig, deduplicationEnabled, deduplicationSynchronous, documentServiceUrl, enrollmentId, expectedAudioText, geolocationResult, idBackCaptureAttempts, idBackImage, idBackImageRequired, idBackIrImage, idBackUvImage, idCaptureVideoAudioStartsAt, idCaptureVideoAudioUrl, idCaptureVideoIdBackImage, idCaptureVideoIdFrontImage, idCaptureVideoUrl, idCardForFaceMatch, idData, idFrontCaptureAttempts, idFrontImage, idFrontIrImage, idFrontUvImage, idImageResolutionCheck, jobId, manualReviewRequired, needImmediateResponse, passportImage, personalData, selfieCaptureAttempts, selfieImage, signatureData, signatureEndTimestamp, signatureStartTimestamp, signatureVideoUrl, uploadDocument, verifyIdWithExternalDatabases, webhooksClientTraceId, webhooksEnabled, webhooksFireOnReview, webhooksFireOnReviewURL, webhooksSendInputImages, webhooksSendProcessedImages, webhooksStripSpecialCharacters, webhooksURL]);
2649
2667
  var defaultOnSubmit = React.useCallback(function () {
2650
2668
  return __awaiter(void 0, void 0, void 0, function () {
2651
2669
  var submissionResponse_1, payload, host, endpoint, response, statusMessage, submissionResponse_2, e_1, err;
@@ -2942,6 +2960,8 @@
2942
2960
  setSelfieImage: setSelfieImage,
2943
2961
  setSignatureData: setSignatureData,
2944
2962
  setSignatureVideoUrl: setSignatureVideoUrl,
2963
+ setSignatureStartTimestamp: setSignatureStartTimestamp,
2964
+ setSignatureEndTimestamp: setSignatureEndTimestamp,
2945
2965
  setIdCaptureVideoUrl: setIdCaptureVideoUrl,
2946
2966
  setIdCaptureVideoIdFrontImage: setIdCaptureVideoIdFrontImage,
2947
2967
  setIdCaptureVideoIdBackImage: setIdCaptureVideoIdBackImage,
@@ -23743,7 +23763,6 @@
23743
23763
  clearRecordedData: function clearRecordedData() {
23744
23764
  return null;
23745
23765
  },
23746
- isRecording: false,
23747
23766
  signaturePad: {
23748
23767
  current: null
23749
23768
  },
@@ -23766,7 +23785,7 @@
23766
23785
  if (!camera) throw new Error('Camera not found');
23767
23786
  // set our flag and clear whatever we have recorded so far.
23768
23787
  set({
23769
- isRecording: true
23788
+ recordingStartedAt: performance.now()
23770
23789
  });
23771
23790
  signatureChunks = [];
23772
23791
  // start recording video and audio
@@ -23780,27 +23799,51 @@
23780
23799
  videoBitsPerSecond: 270000,
23781
23800
  audioBitsPerSecond: 32000
23782
23801
  });
23802
+ var hasFirstChunk = false;
23783
23803
  signatureRecorder.ondataavailable = function (event) {
23784
23804
  signatureChunks.push(event.data);
23805
+ if (!hasFirstChunk) {
23806
+ hasFirstChunk = true;
23807
+ set({
23808
+ firstChunkReceivedAt: performance.now(),
23809
+ lastChunkReceivedAt: performance.now()
23810
+ });
23811
+ } else {
23812
+ set({
23813
+ lastChunkReceivedAt: performance.now()
23814
+ });
23815
+ }
23785
23816
  };
23786
23817
  signatureRecorder.start(100);
23787
23818
  },
23788
23819
  stopRecording: function stopRecording(signatureData, imageUrl) {
23789
23820
  set({
23790
- isRecording: false
23821
+ firstChunkReceivedAt: undefined,
23822
+ recordingStoppedAt: performance.now()
23823
+ });
23824
+ waitForOneMoreChunk().then(function () {
23825
+ if (!signatureRecorder) return;
23826
+ signatureRecorder.stop();
23827
+ signatureRecorder.onstop = function () {
23828
+ var blob = new Blob(signatureChunks, {
23829
+ type: 'video/mp4'
23830
+ });
23831
+ signatureChunks = [];
23832
+ signatureRecorder = null;
23833
+ if (!signatureData) return;
23834
+ var _a = get(),
23835
+ onSignatureVideoCaptured = _a.onSignatureVideoCaptured,
23836
+ recordingStartedAt = _a.recordingStartedAt,
23837
+ signatureStartedAt = _a.signatureStartedAt,
23838
+ signatureEndedAt = _a.signatureEndedAt,
23839
+ lastChunkReceivedAt = _a.lastChunkReceivedAt;
23840
+ var endMs = Math.min(signatureEndedAt !== null && signatureEndedAt !== void 0 ? signatureEndedAt : Infinity, lastChunkReceivedAt !== null && lastChunkReceivedAt !== void 0 ? lastChunkReceivedAt : Infinity);
23841
+ var signatureStartTimestamp = signatureStartedAt && recordingStartedAt ? formatTimestamp(Math.max(0, signatureStartedAt - recordingStartedAt - 500)) : undefined;
23842
+ var signatureEndTimestamp = endMs !== Infinity && recordingStartedAt ? formatTimestamp(Math.min(endMs - recordingStartedAt + 500, lastChunkReceivedAt !== null && lastChunkReceivedAt !== void 0 ? lastChunkReceivedAt : Infinity)) : undefined;
23843
+ onSignatureVideoCaptured(blob, signatureData, imageUrl !== null && imageUrl !== void 0 ? imageUrl : null, signatureStartTimestamp, signatureEndTimestamp);
23844
+ };
23845
+ useVideoRecorderStore.getState().stopRecording();
23791
23846
  });
23792
- if (!signatureRecorder) return;
23793
- signatureRecorder.stop();
23794
- signatureRecorder.onstop = function () {
23795
- var blob = new Blob(signatureChunks, {
23796
- type: 'video/mp4'
23797
- });
23798
- signatureChunks = [];
23799
- signatureRecorder = null;
23800
- if (!signatureData) return;
23801
- get().onSignatureVideoCaptured(blob, signatureData, imageUrl !== null && imageUrl !== void 0 ? imageUrl : null);
23802
- };
23803
- useVideoRecorderStore.getState().stopRecording();
23804
23847
  },
23805
23848
  clearRecordedData: function clearRecordedData() {
23806
23849
  signatureChunks = [];
@@ -23809,13 +23852,42 @@
23809
23852
  signatureRecorder === null || signatureRecorder === void 0 ? void 0 : signatureRecorder.stop();
23810
23853
  signatureRecorder = null;
23811
23854
  set({
23812
- isRecording: false,
23855
+ recordingStartedAt: undefined,
23856
+ recordingStoppedAt: undefined,
23857
+ firstChunkReceivedAt: undefined,
23858
+ lastChunkReceivedAt: undefined,
23813
23859
  signaturePadEmpty: true,
23814
- signatureValid: false
23860
+ signatureValid: false,
23861
+ signatureStartedAt: undefined,
23862
+ signatureEndedAt: undefined
23815
23863
  });
23816
23864
  }
23817
23865
  });
23818
23866
  }));
23867
+ function waitForOneMoreChunk(timeoutMs) {
23868
+ if (timeoutMs === void 0) {
23869
+ timeoutMs = 3000;
23870
+ }
23871
+ var start = performance.now();
23872
+ return new Promise(function (resolve) {
23873
+ var initialLastChunkReceivedAt = useVideoSignatureStore.getState().lastChunkReceivedAt;
23874
+ if (!initialLastChunkReceivedAt) return resolve();
23875
+ function gotAChunk() {
23876
+ var lastChunkReceivedAt = useVideoSignatureStore.getState().lastChunkReceivedAt;
23877
+ return performance.now() - start > timeoutMs || !lastChunkReceivedAt || !initialLastChunkReceivedAt || lastChunkReceivedAt > initialLastChunkReceivedAt;
23878
+ }
23879
+ setTimeout(function () {
23880
+ if (gotAChunk()) return resolve(); // check immediately
23881
+ // otherwise, check every 100ms
23882
+ var interval = setInterval(function () {
23883
+ if (gotAChunk()) {
23884
+ clearInterval(interval);
23885
+ resolve();
23886
+ }
23887
+ }, 100);
23888
+ }, 0);
23889
+ });
23890
+ }
23819
23891
  function VideoSignatureContextProvider(_a) {
23820
23892
  var _this = this;
23821
23893
  var _b, _c;
@@ -23834,7 +23906,14 @@
23834
23906
  // clear recorded data when the component is mounted
23835
23907
  useVideoSignatureStore.getState().clearRecordedData();
23836
23908
  }, []);
23837
- var isRecording = useVideoSignatureStore().isRecording;
23909
+ var _e = useVideoSignatureStore(useShallow(function (state) {
23910
+ return {
23911
+ recordingStartedAt: state.recordingStartedAt,
23912
+ recordingStoppedAt: state.recordingStoppedAt
23913
+ };
23914
+ })),
23915
+ recordingStartedAt = _e.recordingStartedAt,
23916
+ recordingStoppedAt = _e.recordingStoppedAt;
23838
23917
  useFrameLoop(React.useCallback(function () {
23839
23918
  return __awaiter(_this, void 0, void 0, function () {
23840
23919
  var signaturePad, ctx, _a, w, h, isPortrait, rect;
@@ -23861,7 +23940,7 @@
23861
23940
  });
23862
23941
  });
23863
23942
  }, [videoRef]), {
23864
- autoStart: isRecording,
23943
+ autoStart: !!recordingStartedAt && !recordingStoppedAt,
23865
23944
  throttleMs: 1000 / 24
23866
23945
  });
23867
23946
  return /*#__PURE__*/React.createElement(React.Fragment, null, children, /*#__PURE__*/React.createElement(InvisibleCanvas, {
@@ -23870,6 +23949,17 @@
23870
23949
  height: (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.videoHeight
23871
23950
  }));
23872
23951
  }
23952
+ function formatTimestamp(durationMs) {
23953
+ // should be in the format of 00:00:00:00 (hh:mm:ss:cs)
23954
+ var hours = Math.floor(durationMs / 3600000);
23955
+ var minutes = Math.floor(durationMs % 3600000 / 60000);
23956
+ var seconds = Math.floor(durationMs % 60000 / 1000);
23957
+ var milliseconds = durationMs % 1000;
23958
+ // Convert milliseconds to centiseconds (1/100th of a second)
23959
+ var centiseconds = Math.floor(milliseconds / 10);
23960
+ var csString = centiseconds.toString().padStart(2, '0');
23961
+ return "".concat(hours.toString().padStart(2, '0'), ":") + "".concat(minutes.toString().padStart(2, '0'), ":") + "".concat(seconds.toString().padStart(2, '0'), ":") + "".concat(csString);
23962
+ }
23873
23963
 
23874
23964
  function VideoSignaturePad(_a) {
23875
23965
  var onAcceptBtnClicked = _a.onAcceptBtnClicked,
@@ -23931,8 +24021,11 @@
23931
24021
  ref: signaturePad,
23932
24022
  canvasProps: canvasProps,
23933
24023
  onBegin: function onBegin() {
23934
- return useVideoSignatureStore.setState({
23935
- signaturePadEmpty: false
24024
+ return useVideoSignatureStore.setState(function (s) {
24025
+ return {
24026
+ signaturePadEmpty: false,
24027
+ signatureStartedAt: s.signatureStartedAt || performance.now()
24028
+ };
23936
24029
  });
23937
24030
  },
23938
24031
  onEnd: function onEnd() {
@@ -23942,7 +24035,8 @@
23942
24035
  return point;
23943
24036
  });
23944
24037
  useVideoSignatureStore.setState({
23945
- signatureValid: points.length >= minSignaturePadPoints
24038
+ signatureValid: points.length >= minSignaturePadPoints,
24039
+ signatureEndedAt: performance.now()
23946
24040
  });
23947
24041
  }
23948
24042
  }), !headTrackingSatisfied && !!verbiage.headTrackingUnsatisfiedText ? ( /*#__PURE__*/React.createElement(SignaturePadContentContainer, {
@@ -24009,6 +24103,12 @@
24009
24103
  React.useEffect(function () {
24010
24104
  if (guideToDisplay) setMode(guideToDisplay);
24011
24105
  }, [guideToDisplay]);
24106
+ var firstChunkReceivedAt = useVideoSignatureStore(useShallow(function (state) {
24107
+ return {
24108
+ firstChunkReceivedAt: state.firstChunkReceivedAt
24109
+ };
24110
+ })).firstChunkReceivedAt;
24111
+ var signaturePadDisabled = requestedAction !== 'CAPTURE_SIGNATURE' || !firstChunkReceivedAt;
24012
24112
  return /*#__PURE__*/React.createElement(Container$3, {
24013
24113
  className: classNames.container
24014
24114
  }, /*#__PURE__*/React.createElement(Inner$1, {
@@ -24032,7 +24132,7 @@
24032
24132
  }, /*#__PURE__*/React.createElement(VideoSignaturePad, {
24033
24133
  onAcceptBtnClicked: onAcceptBtnClicked,
24034
24134
  onClearBtnClicked: onClearBtnClicked,
24035
- disabled: requestedAction !== 'CAPTURE_SIGNATURE',
24135
+ disabled: signaturePadDisabled,
24036
24136
  headTrackingSatisfied: headTrackingSatisfied,
24037
24137
  minSignaturePadPoints: minSignaturePadPoints,
24038
24138
  classNames: classNames,
@@ -24089,9 +24189,14 @@
24089
24189
  onHeadTrackingPredictionMade = _o.onPredictionMade,
24090
24190
  startHeadTracking = _o.start,
24091
24191
  stopHeadTracking = _o.stop;
24092
- var _p = useVideoSignatureStore(),
24192
+ var _p = useVideoSignatureStore(useShallow(function (state) {
24193
+ return {
24194
+ clearRecordedData: state.clearRecordedData,
24195
+ firstChunkReceivedAt: state.firstChunkReceivedAt
24196
+ };
24197
+ })),
24093
24198
  clearRecordedData = _p.clearRecordedData,
24094
- isRecording = _p.isRecording;
24199
+ firstChunkReceivedAt = _p.firstChunkReceivedAt;
24095
24200
  React.useEffect(function () {
24096
24201
  useVideoSignatureStore.setState({
24097
24202
  onSignatureVideoCaptured: onSignatureVideoCaptured
@@ -24175,7 +24280,7 @@
24175
24280
  face: lastFace,
24176
24281
  scaling: debugScalingDetails,
24177
24282
  color: headTrackingSatisfied ? 'green' : 'red'
24178
- }))), /*#__PURE__*/React.createElement(DebugStatsPane, null, "Video: ", videoWidth, "x", videoHeight, /*#__PURE__*/React.createElement("br", null), "Recording: ", isRecording ? 'true' : 'false'))), /*#__PURE__*/React.createElement(ExitCaptureButton, {
24283
+ }))), /*#__PURE__*/React.createElement(DebugStatsPane, null, "Video: ", videoWidth, "x", videoHeight, /*#__PURE__*/React.createElement("br", null), "Recording: ", firstChunkReceivedAt ? 'true' : 'false'))), /*#__PURE__*/React.createElement(ExitCaptureButton, {
24179
24284
  onClick: onExit,
24180
24285
  className: classNames.exitCaptureBtn
24181
24286
  }));
@@ -24506,6 +24611,8 @@
24506
24611
  setSelfieImage = _u.setSelfieImage,
24507
24612
  setSignatureData = _u.setSignatureData,
24508
24613
  setSignatureVideoUrl = _u.setSignatureVideoUrl,
24614
+ setSignatureStartTimestamp = _u.setSignatureStartTimestamp,
24615
+ setSignatureEndTimestamp = _u.setSignatureEndTimestamp,
24509
24616
  logSelfieCaptureAttempt = _u.logSelfieCaptureAttempt,
24510
24617
  uploadDocument = _u.uploadDocument;
24511
24618
  var cameraAccessDenied = useCameraStore(useShallow(function (state) {
@@ -24565,12 +24672,14 @@
24565
24672
  filetype: 'image/jpeg'
24566
24673
  }).then(onSelfieCaptured);
24567
24674
  }, [logCaptureMetadata, onSelfieCaptured, setSelfieImage, uploadDocument]);
24568
- var onSignatureCaptureCompleted = React.useCallback(function (videoData, signatureData, signatureImageData) {
24675
+ var onSignatureCaptureCompleted = React.useCallback(function (videoData, signatureData, signatureImageData, signatureStartTimestamp, signatureEndTimestamp) {
24569
24676
  setSignatureData(signatureData);
24570
24677
  setSignatureVideoUrl(URL.createObjectURL(videoData));
24678
+ if (signatureStartTimestamp) setSignatureStartTimestamp(signatureStartTimestamp);
24679
+ if (signatureEndTimestamp) setSignatureEndTimestamp(signatureEndTimestamp);
24571
24680
  setCaptureState('SUCCESS');
24572
- onVideoCaptured === null || onVideoCaptured === void 0 ? void 0 : onVideoCaptured(videoData, signatureData, signatureImageData);
24573
- }, [onVideoCaptured, setSignatureData, setSignatureVideoUrl]);
24681
+ onVideoCaptured === null || onVideoCaptured === void 0 ? void 0 : onVideoCaptured(videoData, signatureData, signatureImageData, signatureStartTimestamp, signatureEndTimestamp);
24682
+ }, [onVideoCaptured, setSignatureData, setSignatureEndTimestamp, setSignatureStartTimestamp, setSignatureVideoUrl]);
24574
24683
  var _x = React.useState(true),
24575
24684
  showLoadingOverlay = _x[0],
24576
24685
  setShowLoadingOverlay = _x[1];