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.
@@ -286,15 +286,21 @@ var KycApiService = class {
286
286
  );
287
287
  if (!response.ok) {
288
288
  const errorData = await response.json().catch(() => ({}));
289
- const message = errorData?.message || `Face upload failed with status ${response.status}`;
289
+ const message = errorData?.message || errorData?.errorData?.message || `Face upload failed with status ${response.status}`;
290
290
  const error = new Error(message);
291
291
  error.statusCode = response.status;
292
292
  error.errorData = errorData;
293
+ if (errorData.statusCode) {
294
+ error.statusCode = errorData.statusCode;
295
+ }
293
296
  throw error;
294
297
  }
295
298
  const data = await response.json();
296
299
  return data;
297
300
  } catch (error) {
301
+ if (error.message && !error.message.includes("Face upload failed")) {
302
+ throw error;
303
+ }
298
304
  const message = error?.message || "Face upload failed";
299
305
  throw new Error(`Face upload failed: ${message}`);
300
306
  }
@@ -1366,8 +1372,29 @@ function useFaceScan(videoRef, canvasRef, callbacks) {
1366
1372
  livenessInstruction: "Face captured and uploaded successfully!",
1367
1373
  loading: false
1368
1374
  }));
1375
+ if (callbacks?.onFaceCaptureComplete) {
1376
+ callbacks.onFaceCaptureComplete(dataUrl);
1377
+ }
1378
+ setTimeout(() => {
1379
+ setState((prev) => ({ ...prev, showDocumentUpload: true }));
1380
+ }, 500);
1369
1381
  } catch (uploadError) {
1370
- throw new Error(uploadError.message || "Failed to upload face scan");
1382
+ if (uploadError.message === "FACE_ALREADY_REGISTERED" || uploadError.isFaceAlreadyRegistered) {
1383
+ setState((prev) => ({
1384
+ ...prev,
1385
+ loading: false,
1386
+ allStepsCompleted: false,
1387
+ showDocumentUpload: false,
1388
+ livenessInstruction: "Face already registered. Please click Retry to register again."
1389
+ }));
1390
+ return;
1391
+ }
1392
+ setState((prev) => ({
1393
+ ...prev,
1394
+ livenessInstruction: uploadError.message || "Error capturing image. Please try again.",
1395
+ loading: false
1396
+ }));
1397
+ throw uploadError;
1371
1398
  }
1372
1399
  } else {
1373
1400
  setState((prev) => ({
@@ -1377,13 +1404,13 @@ function useFaceScan(videoRef, canvasRef, callbacks) {
1377
1404
  livenessInstruction: "Face captured successfully!",
1378
1405
  loading: false
1379
1406
  }));
1407
+ if (callbacks?.onFaceCaptureComplete) {
1408
+ callbacks.onFaceCaptureComplete(dataUrl);
1409
+ }
1410
+ setTimeout(() => {
1411
+ setState((prev) => ({ ...prev, showDocumentUpload: true }));
1412
+ }, 500);
1380
1413
  }
1381
- if (callbacks?.onFaceCaptureComplete) {
1382
- callbacks.onFaceCaptureComplete(dataUrl);
1383
- }
1384
- setTimeout(() => {
1385
- setState((prev) => ({ ...prev, showDocumentUpload: true }));
1386
- }, 500);
1387
1414
  } catch (err) {
1388
1415
  console.error("Error capturing image:", err);
1389
1416
  setState((prev) => ({
@@ -1566,14 +1593,18 @@ function FaceScanModal({ onComplete }) {
1566
1593
  } catch (error) {
1567
1594
  const errorMessage = error?.message || "";
1568
1595
  const errorData = error?.errorData || {};
1569
- if (errorMessage.includes("Face already registered") || errorMessage.includes("already registered") || errorData?.message?.includes("Face already registered") || error?.statusCode === 500 && errorMessage.includes("Face")) {
1596
+ const statusCode = error?.statusCode;
1597
+ const isFaceAlreadyRegistered = errorMessage.includes("Face already registered") || errorMessage.includes("already registered") || errorData?.message?.includes("Face already registered") || statusCode === 500 && errorMessage.includes("Face already registered");
1598
+ if (isFaceAlreadyRegistered) {
1570
1599
  setShowRetryButton(true);
1571
1600
  setToast({
1572
1601
  message: "Face already registered. Click Retry to register again.",
1573
1602
  type: "warning"
1574
1603
  });
1575
- setState((prev) => ({ ...prev, loading: false }));
1576
- return;
1604
+ setState((prev) => ({ ...prev, loading: false, allStepsCompleted: false, showDocumentUpload: false }));
1605
+ const faceRegisteredError = new Error("FACE_ALREADY_REGISTERED");
1606
+ faceRegisteredError.isFaceAlreadyRegistered = true;
1607
+ throw faceRegisteredError;
1577
1608
  }
1578
1609
  throw error;
1579
1610
  }