vesant-sdk 1.7.1-dev.afc5a32 → 1.7.1-dev.d2f7d80

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/react.js CHANGED
@@ -1023,9 +1023,14 @@ function retryTarget(hasHostedJourney) {
1023
1023
  function modalMaxWidth(hasHostedJourney) {
1024
1024
  return hasHostedJourney ? 680 : 448;
1025
1025
  }
1026
+ function resultForModalClose(stageKind, result) {
1027
+ const terminal = stageKind === "accepted" || stageKind === "declined" || stageKind === "max_attempts";
1028
+ return terminal && result !== void 0 ? result : null;
1029
+ }
1026
1030
 
1027
1031
  // src/kyc/FaceCaptureModal.tsx
1028
1032
  var MOBILE_UA = /Mobi|Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;
1033
+ var ACCEPTED_AUTO_CLOSE_MS = 1200;
1029
1034
  var LIVENESS_MESSAGES = [
1030
1035
  "Position your face inside the oval",
1031
1036
  "Make sure your face is well lit",
@@ -1322,12 +1327,22 @@ function FaceCaptureModal({
1322
1327
  }, 3e3);
1323
1328
  return () => clearInterval(interval);
1324
1329
  }, [captureMode]);
1325
- const close = (result) => {
1330
+ const close = React.useCallback((result) => {
1326
1331
  cancelledRef.current = true;
1327
1332
  if (result === null && onCancel) {
1328
1333
  onCancel();
1329
1334
  }
1330
1335
  onComplete(result);
1336
+ }, [onCancel, onComplete]);
1337
+ React.useEffect(() => {
1338
+ if (stage.kind !== "accepted") return;
1339
+ const result = stage.result;
1340
+ const timer = setTimeout(() => close(result), ACCEPTED_AUTO_CLOSE_MS);
1341
+ return () => clearTimeout(timer);
1342
+ }, [close, stage]);
1343
+ const handleHeaderClose = () => {
1344
+ const result = "result" in stage ? stage.result : void 0;
1345
+ close(resultForModalClose(stage.kind, result));
1331
1346
  };
1332
1347
  const renderChoose = () => /* @__PURE__ */ React__default.default.createElement("div", { style: contentStyle }, /* @__PURE__ */ React__default.default.createElement("div", { style: visualGuideContainerStyle }, /* @__PURE__ */ React__default.default.createElement("div", { style: visualGuideStyle }, /* @__PURE__ */ React__default.default.createElement("div", { style: circleStyle }, /* @__PURE__ */ React__default.default.createElement("img", { src: Camera, alt: "", width: 48, height: 48 })))), /* @__PURE__ */ React__default.default.createElement("p", { style: subtitleStyle }, "How would you like to verify?"), /* @__PURE__ */ React__default.default.createElement("div", { style: buttonsContainerStyle }, /* @__PURE__ */ React__default.default.createElement(
1333
1348
  "button",
@@ -1433,7 +1448,7 @@ function FaceCaptureModal({
1433
1448
  return /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement("style", null, keyframes), /* @__PURE__ */ React__default.default.createElement("div", { style: overlayStyle }, /* @__PURE__ */ React__default.default.createElement("div", { style: { ...modalStyle, maxWidth: modalMaxWidth(journeyMode) } }, /* @__PURE__ */ React__default.default.createElement("div", { style: headerStyle }, /* @__PURE__ */ React__default.default.createElement(
1434
1449
  "button",
1435
1450
  {
1436
- onClick: () => close(null),
1451
+ onClick: handleHeaderClose,
1437
1452
  style: closeButtonStyle,
1438
1453
  "aria-label": "Close"
1439
1454
  },