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.
- package/dist/astra-sdk.cjs.js +42 -11
- package/dist/astra-sdk.cjs.js.map +1 -1
- package/dist/astra-sdk.es.js +42 -11
- package/dist/astra-sdk.es.js.map +1 -1
- package/dist/components.cjs.js +42 -11
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +42 -11
- package/dist/components.es.js.map +1 -1
- package/package.json +1 -1
- package/src/features/faceScan/hooks/useFaceScan.ts +37 -10
- package/src/pages/FaceScanModal.tsx +12 -5
- package/src/services/kycApiService.ts +9 -1
package/dist/components.cjs.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|