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.
@@ -83,15 +83,21 @@ var KycApiService = class {
83
83
  );
84
84
  if (!response.ok) {
85
85
  const errorData = await response.json().catch(() => ({}));
86
- const message = errorData?.message || `Face upload failed with status ${response.status}`;
86
+ const message = errorData?.message || errorData?.errorData?.message || `Face upload failed with status ${response.status}`;
87
87
  const error = new Error(message);
88
88
  error.statusCode = response.status;
89
89
  error.errorData = errorData;
90
+ if (errorData.statusCode) {
91
+ error.statusCode = errorData.statusCode;
92
+ }
90
93
  throw error;
91
94
  }
92
95
  const data = await response.json();
93
96
  return data;
94
97
  } catch (error) {
98
+ if (error.message && !error.message.includes("Face upload failed")) {
99
+ throw error;
100
+ }
95
101
  const message = error?.message || "Face upload failed";
96
102
  throw new Error(`Face upload failed: ${message}`);
97
103
  }
@@ -1163,8 +1169,29 @@ function useFaceScan(videoRef, canvasRef, callbacks) {
1163
1169
  livenessInstruction: "Face captured and uploaded successfully!",
1164
1170
  loading: false
1165
1171
  }));
1172
+ if (callbacks?.onFaceCaptureComplete) {
1173
+ callbacks.onFaceCaptureComplete(dataUrl);
1174
+ }
1175
+ setTimeout(() => {
1176
+ setState((prev) => ({ ...prev, showDocumentUpload: true }));
1177
+ }, 500);
1166
1178
  } catch (uploadError) {
1167
- throw new Error(uploadError.message || "Failed to upload face scan");
1179
+ if (uploadError.message === "FACE_ALREADY_REGISTERED" || uploadError.isFaceAlreadyRegistered) {
1180
+ setState((prev) => ({
1181
+ ...prev,
1182
+ loading: false,
1183
+ allStepsCompleted: false,
1184
+ showDocumentUpload: false,
1185
+ livenessInstruction: "Face already registered. Please click Retry to register again."
1186
+ }));
1187
+ return;
1188
+ }
1189
+ setState((prev) => ({
1190
+ ...prev,
1191
+ livenessInstruction: uploadError.message || "Error capturing image. Please try again.",
1192
+ loading: false
1193
+ }));
1194
+ throw uploadError;
1168
1195
  }
1169
1196
  } else {
1170
1197
  setState((prev) => ({
@@ -1174,13 +1201,13 @@ function useFaceScan(videoRef, canvasRef, callbacks) {
1174
1201
  livenessInstruction: "Face captured successfully!",
1175
1202
  loading: false
1176
1203
  }));
1204
+ if (callbacks?.onFaceCaptureComplete) {
1205
+ callbacks.onFaceCaptureComplete(dataUrl);
1206
+ }
1207
+ setTimeout(() => {
1208
+ setState((prev) => ({ ...prev, showDocumentUpload: true }));
1209
+ }, 500);
1177
1210
  }
1178
- if (callbacks?.onFaceCaptureComplete) {
1179
- callbacks.onFaceCaptureComplete(dataUrl);
1180
- }
1181
- setTimeout(() => {
1182
- setState((prev) => ({ ...prev, showDocumentUpload: true }));
1183
- }, 500);
1184
1211
  } catch (err) {
1185
1212
  console.error("Error capturing image:", err);
1186
1213
  setState((prev) => ({
@@ -1363,14 +1390,18 @@ function FaceScanModal({ onComplete }) {
1363
1390
  } catch (error) {
1364
1391
  const errorMessage = error?.message || "";
1365
1392
  const errorData = error?.errorData || {};
1366
- if (errorMessage.includes("Face already registered") || errorMessage.includes("already registered") || errorData?.message?.includes("Face already registered") || error?.statusCode === 500 && errorMessage.includes("Face")) {
1393
+ const statusCode = error?.statusCode;
1394
+ const isFaceAlreadyRegistered = errorMessage.includes("Face already registered") || errorMessage.includes("already registered") || errorData?.message?.includes("Face already registered") || statusCode === 500 && errorMessage.includes("Face already registered");
1395
+ if (isFaceAlreadyRegistered) {
1367
1396
  setShowRetryButton(true);
1368
1397
  setToast({
1369
1398
  message: "Face already registered. Click Retry to register again.",
1370
1399
  type: "warning"
1371
1400
  });
1372
- setState((prev) => ({ ...prev, loading: false }));
1373
- return;
1401
+ setState((prev) => ({ ...prev, loading: false, allStepsCompleted: false, showDocumentUpload: false }));
1402
+ const faceRegisteredError = new Error("FACE_ALREADY_REGISTERED");
1403
+ faceRegisteredError.isFaceAlreadyRegistered = true;
1404
+ throw faceRegisteredError;
1374
1405
  }
1375
1406
  throw error;
1376
1407
  }