astra-sdk-web 1.1.10 → 1.1.11

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.
@@ -294,15 +294,21 @@ var KycApiService = class {
294
294
  );
295
295
  if (!response.ok) {
296
296
  const errorData = await response.json().catch(() => ({}));
297
- const message = errorData?.message || `Face upload failed with status ${response.status}`;
297
+ const message = errorData?.message || errorData?.errorData?.message || `Face upload failed with status ${response.status}`;
298
298
  const error = new Error(message);
299
299
  error.statusCode = response.status;
300
300
  error.errorData = errorData;
301
+ if (errorData.statusCode) {
302
+ error.statusCode = errorData.statusCode;
303
+ }
301
304
  throw error;
302
305
  }
303
306
  const data = await response.json();
304
307
  return data;
305
308
  } catch (error) {
309
+ if (error.message && !error.message.includes("Face upload failed")) {
310
+ throw error;
311
+ }
306
312
  const message = error?.message || "Face upload failed";
307
313
  throw new Error(`Face upload failed: ${message}`);
308
314
  }
@@ -1374,8 +1380,29 @@ function useFaceScan(videoRef, canvasRef, callbacks) {
1374
1380
  livenessInstruction: "Face captured and uploaded successfully!",
1375
1381
  loading: false
1376
1382
  }));
1383
+ if (callbacks?.onFaceCaptureComplete) {
1384
+ callbacks.onFaceCaptureComplete(dataUrl);
1385
+ }
1386
+ setTimeout(() => {
1387
+ setState((prev) => ({ ...prev, showDocumentUpload: true }));
1388
+ }, 500);
1377
1389
  } catch (uploadError) {
1378
- throw new Error(uploadError.message || "Failed to upload face scan");
1390
+ if (uploadError.message === "FACE_ALREADY_REGISTERED" || uploadError.isFaceAlreadyRegistered) {
1391
+ setState((prev) => ({
1392
+ ...prev,
1393
+ loading: false,
1394
+ allStepsCompleted: false,
1395
+ showDocumentUpload: false,
1396
+ livenessInstruction: "Face already registered. Please click Retry to register again."
1397
+ }));
1398
+ return;
1399
+ }
1400
+ setState((prev) => ({
1401
+ ...prev,
1402
+ livenessInstruction: uploadError.message || "Error capturing image. Please try again.",
1403
+ loading: false
1404
+ }));
1405
+ throw uploadError;
1379
1406
  }
1380
1407
  } else {
1381
1408
  setState((prev) => ({
@@ -1385,13 +1412,13 @@ function useFaceScan(videoRef, canvasRef, callbacks) {
1385
1412
  livenessInstruction: "Face captured successfully!",
1386
1413
  loading: false
1387
1414
  }));
1415
+ if (callbacks?.onFaceCaptureComplete) {
1416
+ callbacks.onFaceCaptureComplete(dataUrl);
1417
+ }
1418
+ setTimeout(() => {
1419
+ setState((prev) => ({ ...prev, showDocumentUpload: true }));
1420
+ }, 500);
1388
1421
  }
1389
- if (callbacks?.onFaceCaptureComplete) {
1390
- callbacks.onFaceCaptureComplete(dataUrl);
1391
- }
1392
- setTimeout(() => {
1393
- setState((prev) => ({ ...prev, showDocumentUpload: true }));
1394
- }, 500);
1395
1422
  } catch (err) {
1396
1423
  console.error("Error capturing image:", err);
1397
1424
  setState((prev) => ({
@@ -1574,14 +1601,18 @@ function FaceScanModal({ onComplete }) {
1574
1601
  } catch (error) {
1575
1602
  const errorMessage = error?.message || "";
1576
1603
  const errorData = error?.errorData || {};
1577
- if (errorMessage.includes("Face already registered") || errorMessage.includes("already registered") || errorData?.message?.includes("Face already registered") || error?.statusCode === 500 && errorMessage.includes("Face")) {
1604
+ const statusCode = error?.statusCode;
1605
+ const isFaceAlreadyRegistered = errorMessage.includes("Face already registered") || errorMessage.includes("already registered") || errorData?.message?.includes("Face already registered") || statusCode === 500 && errorMessage.includes("Face already registered");
1606
+ if (isFaceAlreadyRegistered) {
1578
1607
  setShowRetryButton(true);
1579
1608
  setToast({
1580
1609
  message: "Face already registered. Click Retry to register again.",
1581
1610
  type: "warning"
1582
1611
  });
1583
- setState((prev) => ({ ...prev, loading: false }));
1584
- return;
1612
+ setState((prev) => ({ ...prev, loading: false, allStepsCompleted: false, showDocumentUpload: false }));
1613
+ const faceRegisteredError = new Error("FACE_ALREADY_REGISTERED");
1614
+ faceRegisteredError.isFaceAlreadyRegistered = true;
1615
+ throw faceRegisteredError;
1585
1616
  }
1586
1617
  throw error;
1587
1618
  }