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.
@@ -89,15 +89,21 @@ var KycApiService = class {
89
89
  );
90
90
  if (!response.ok) {
91
91
  const errorData = await response.json().catch(() => ({}));
92
- const message = errorData?.message || `Face upload failed with status ${response.status}`;
92
+ const message = errorData?.message || errorData?.errorData?.message || `Face upload failed with status ${response.status}`;
93
93
  const error = new Error(message);
94
94
  error.statusCode = response.status;
95
95
  error.errorData = errorData;
96
+ if (errorData.statusCode) {
97
+ error.statusCode = errorData.statusCode;
98
+ }
96
99
  throw error;
97
100
  }
98
101
  const data = await response.json();
99
102
  return data;
100
103
  } catch (error) {
104
+ if (error.message && !error.message.includes("Face upload failed")) {
105
+ throw error;
106
+ }
101
107
  const message = error?.message || "Face upload failed";
102
108
  throw new Error(`Face upload failed: ${message}`);
103
109
  }
@@ -1169,8 +1175,29 @@ function useFaceScan(videoRef, canvasRef, callbacks) {
1169
1175
  livenessInstruction: "Face captured and uploaded successfully!",
1170
1176
  loading: false
1171
1177
  }));
1178
+ if (callbacks?.onFaceCaptureComplete) {
1179
+ callbacks.onFaceCaptureComplete(dataUrl);
1180
+ }
1181
+ setTimeout(() => {
1182
+ setState((prev) => ({ ...prev, showDocumentUpload: true }));
1183
+ }, 500);
1172
1184
  } catch (uploadError) {
1173
- throw new Error(uploadError.message || "Failed to upload face scan");
1185
+ if (uploadError.message === "FACE_ALREADY_REGISTERED" || uploadError.isFaceAlreadyRegistered) {
1186
+ setState((prev) => ({
1187
+ ...prev,
1188
+ loading: false,
1189
+ allStepsCompleted: false,
1190
+ showDocumentUpload: false,
1191
+ livenessInstruction: "Face already registered. Please click Retry to register again."
1192
+ }));
1193
+ return;
1194
+ }
1195
+ setState((prev) => ({
1196
+ ...prev,
1197
+ livenessInstruction: uploadError.message || "Error capturing image. Please try again.",
1198
+ loading: false
1199
+ }));
1200
+ throw uploadError;
1174
1201
  }
1175
1202
  } else {
1176
1203
  setState((prev) => ({
@@ -1180,13 +1207,13 @@ function useFaceScan(videoRef, canvasRef, callbacks) {
1180
1207
  livenessInstruction: "Face captured successfully!",
1181
1208
  loading: false
1182
1209
  }));
1210
+ if (callbacks?.onFaceCaptureComplete) {
1211
+ callbacks.onFaceCaptureComplete(dataUrl);
1212
+ }
1213
+ setTimeout(() => {
1214
+ setState((prev) => ({ ...prev, showDocumentUpload: true }));
1215
+ }, 500);
1183
1216
  }
1184
- if (callbacks?.onFaceCaptureComplete) {
1185
- callbacks.onFaceCaptureComplete(dataUrl);
1186
- }
1187
- setTimeout(() => {
1188
- setState((prev) => ({ ...prev, showDocumentUpload: true }));
1189
- }, 500);
1190
1217
  } catch (err) {
1191
1218
  console.error("Error capturing image:", err);
1192
1219
  setState((prev) => ({
@@ -1369,14 +1396,18 @@ function FaceScanModal({ onComplete }) {
1369
1396
  } catch (error) {
1370
1397
  const errorMessage = error?.message || "";
1371
1398
  const errorData = error?.errorData || {};
1372
- if (errorMessage.includes("Face already registered") || errorMessage.includes("already registered") || errorData?.message?.includes("Face already registered") || error?.statusCode === 500 && errorMessage.includes("Face")) {
1399
+ const statusCode = error?.statusCode;
1400
+ const isFaceAlreadyRegistered = errorMessage.includes("Face already registered") || errorMessage.includes("already registered") || errorData?.message?.includes("Face already registered") || statusCode === 500 && errorMessage.includes("Face already registered");
1401
+ if (isFaceAlreadyRegistered) {
1373
1402
  setShowRetryButton(true);
1374
1403
  setToast({
1375
1404
  message: "Face already registered. Click Retry to register again.",
1376
1405
  type: "warning"
1377
1406
  });
1378
- setState((prev) => ({ ...prev, loading: false }));
1379
- return;
1407
+ setState((prev) => ({ ...prev, loading: false, allStepsCompleted: false, showDocumentUpload: false }));
1408
+ const faceRegisteredError = new Error("FACE_ALREADY_REGISTERED");
1409
+ faceRegisteredError.isFaceAlreadyRegistered = true;
1410
+ throw faceRegisteredError;
1380
1411
  }
1381
1412
  throw error;
1382
1413
  }