omnipay-reactnative-sdk 1.2.3-beta.9 → 1.2.4
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/README.md +14 -64
- package/android/build.gradle +4 -15
- package/android/src/main/java/com/omniretail/omnipay/OmnipayActivityPackage.java +0 -5
- package/lib/commonjs/components/OmnipayProvider.js +98 -20
- package/lib/commonjs/components/OmnipayProvider.js.map +1 -1
- package/lib/commonjs/utils/buildUrlWithMetadata.js +14 -0
- package/lib/commonjs/utils/buildUrlWithMetadata.js.map +1 -0
- package/lib/module/components/OmnipayProvider.js +99 -21
- package/lib/module/components/OmnipayProvider.js.map +1 -1
- package/lib/module/components/OmnipayView.js.map +1 -1
- package/lib/module/components/views/BvnVerification.js.map +1 -1
- package/lib/module/components/views/PaylaterAgreement.js.map +1 -1
- package/lib/module/components/views/Registration.js.map +1 -1
- package/lib/module/utils/buildUrlWithMetadata.js +8 -0
- package/lib/module/utils/buildUrlWithMetadata.js.map +1 -0
- package/lib/typescript/components/OmnipayProvider.d.ts +5 -2
- package/lib/typescript/components/OmnipayProvider.d.ts.map +1 -1
- package/lib/typescript/hooks/useOmnipay.d.ts +4 -1
- package/lib/typescript/hooks/useOmnipay.d.ts.map +1 -1
- package/lib/typescript/utils/buildUrlWithMetadata.d.ts +2 -0
- package/lib/typescript/utils/buildUrlWithMetadata.d.ts.map +1 -0
- package/package.json +12 -29
- package/src/components/OmnipayProvider.tsx +154 -31
- package/src/components/OmnipayView.tsx +1 -1
- package/src/components/views/BvnVerification.tsx +1 -1
- package/src/components/views/PaylaterAgreement.tsx +1 -1
- package/src/components/views/Registration.tsx +1 -1
- package/src/hooks/useOmnipay.tsx +1 -1
- package/src/utils/buildUrlWithMetadata.ts +21 -0
- package/android/src/main/java/com/omniretail/omnipay/FaceVerificationFrameProcessor.kt +0 -111
- package/ios/FaceVerificationFrameProcessor.swift +0 -138
- package/ios/FaceVerificationFrameProcessorPlugin.m +0 -4
- package/ios/OmnipayReactnativeSdk.m +0 -5
- package/ios/OmnipayReactnativeSdk.swift +0 -10
- package/ios/omnipay-reactnative-sdk-Bridging-Header.h +0 -8
- package/ios/omnipay_reactnative_sdk.h +0 -6
- package/lib/commonjs/components/Button.js +0 -68
- package/lib/commonjs/components/Button.js.map +0 -1
- package/lib/commonjs/components/biometrics/FaceVerification.js +0 -380
- package/lib/commonjs/components/biometrics/FaceVerification.js.map +0 -1
- package/lib/commonjs/components/biometrics/useFaceVerification.js +0 -85
- package/lib/commonjs/components/biometrics/useFaceVerification.js.map +0 -1
- package/lib/commonjs/components/biometrics/useFaceVerificationFlow.js +0 -157
- package/lib/commonjs/components/biometrics/useFaceVerificationFlow.js.map +0 -1
- package/lib/module/components/Button.js +0 -61
- package/lib/module/components/Button.js.map +0 -1
- package/lib/module/components/biometrics/FaceVerification.js +0 -372
- package/lib/module/components/biometrics/FaceVerification.js.map +0 -1
- package/lib/module/components/biometrics/useFaceVerification.js +0 -78
- package/lib/module/components/biometrics/useFaceVerification.js.map +0 -1
- package/lib/module/components/biometrics/useFaceVerificationFlow.js +0 -150
- package/lib/module/components/biometrics/useFaceVerificationFlow.js.map +0 -1
- package/lib/typescript/components/Button.d.ts +0 -17
- package/lib/typescript/components/Button.d.ts.map +0 -1
- package/lib/typescript/components/biometrics/FaceVerification.d.ts +0 -9
- package/lib/typescript/components/biometrics/FaceVerification.d.ts.map +0 -1
- package/lib/typescript/components/biometrics/useFaceVerification.d.ts +0 -38
- package/lib/typescript/components/biometrics/useFaceVerification.d.ts.map +0 -1
- package/lib/typescript/components/biometrics/useFaceVerificationFlow.d.ts +0 -29
- package/lib/typescript/components/biometrics/useFaceVerificationFlow.d.ts.map +0 -1
- package/omnipay_reactnative_sdk.podspec +0 -52
- package/src/components/Button.tsx +0 -86
- package/src/components/biometrics/FaceVerification.tsx +0 -429
- package/src/components/biometrics/useFaceVerification.ts +0 -120
- package/src/components/biometrics/useFaceVerificationFlow.ts +0 -224
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useFaceVerificationFlow = void 0;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
var _useFaceVerification = require("./useFaceVerification");
|
|
9
|
-
const DEFAULT_CONFIG = {
|
|
10
|
-
stepTimeout: 10000,
|
|
11
|
-
// 10 seconds per step
|
|
12
|
-
totalTimeout: 60000,
|
|
13
|
-
// 1 minute total
|
|
14
|
-
confirmationFrames: 5,
|
|
15
|
-
// 5 consecutive frames
|
|
16
|
-
requiredSteps: ['position_face', 'smile', 'blink', 'turn_left', 'turn_right']
|
|
17
|
-
};
|
|
18
|
-
const STEP_INSTRUCTIONS = {
|
|
19
|
-
position_face: 'Position your face in the center of the frame',
|
|
20
|
-
smile: 'Please smile for the camera',
|
|
21
|
-
blink: 'Please blink your eyes',
|
|
22
|
-
turn_left: 'Slowly turn your head to the left',
|
|
23
|
-
turn_right: 'Slowly turn your head to the right',
|
|
24
|
-
completed: 'Verification completed successfully!',
|
|
25
|
-
failed: 'Verification failed. Please try again.'
|
|
26
|
-
};
|
|
27
|
-
const useFaceVerificationFlow = (config = {}) => {
|
|
28
|
-
const fullConfig = {
|
|
29
|
-
...DEFAULT_CONFIG,
|
|
30
|
-
...config
|
|
31
|
-
};
|
|
32
|
-
const [state, setState] = (0, _react.useState)({
|
|
33
|
-
currentStep: 'position_face',
|
|
34
|
-
completedSteps: [],
|
|
35
|
-
stepStartTime: Date.now(),
|
|
36
|
-
totalStartTime: Date.now(),
|
|
37
|
-
isProcessing: false,
|
|
38
|
-
progress: 0,
|
|
39
|
-
instruction: STEP_INSTRUCTIONS.position_face
|
|
40
|
-
});
|
|
41
|
-
const [confirmationCount, setConfirmationCount] = (0, _react.useState)(0);
|
|
42
|
-
|
|
43
|
-
// Reset verification flow
|
|
44
|
-
const resetFlow = (0, _react.useCallback)(() => {
|
|
45
|
-
const now = Date.now();
|
|
46
|
-
setState({
|
|
47
|
-
currentStep: 'position_face',
|
|
48
|
-
completedSteps: [],
|
|
49
|
-
stepStartTime: now,
|
|
50
|
-
totalStartTime: now,
|
|
51
|
-
isProcessing: false,
|
|
52
|
-
progress: 0,
|
|
53
|
-
instruction: STEP_INSTRUCTIONS.position_face
|
|
54
|
-
});
|
|
55
|
-
setConfirmationCount(0);
|
|
56
|
-
}, []);
|
|
57
|
-
|
|
58
|
-
// Check if current step is completed based on face detection result
|
|
59
|
-
const checkStepCompletion = (0, _react.useCallback)(result => {
|
|
60
|
-
if (!result.faceDetected) return false;
|
|
61
|
-
switch (state.currentStep) {
|
|
62
|
-
case 'position_face':
|
|
63
|
-
return _useFaceVerification.FaceVerificationUtils.isFaceCentered(result);
|
|
64
|
-
case 'smile':
|
|
65
|
-
return _useFaceVerification.FaceVerificationUtils.isConfidentSmile(result);
|
|
66
|
-
case 'blink':
|
|
67
|
-
return _useFaceVerification.FaceVerificationUtils.isConfidentBlink(result);
|
|
68
|
-
case 'turn_left':
|
|
69
|
-
return _useFaceVerification.FaceVerificationUtils.isHeadTurnedLeft(result);
|
|
70
|
-
case 'turn_right':
|
|
71
|
-
return _useFaceVerification.FaceVerificationUtils.isHeadTurnedRight(result);
|
|
72
|
-
default:
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
}, [state.currentStep]);
|
|
76
|
-
|
|
77
|
-
// Get next step in sequence
|
|
78
|
-
const getNextStep = (0, _react.useCallback)(currentStep => {
|
|
79
|
-
const currentIndex = fullConfig.requiredSteps.indexOf(currentStep);
|
|
80
|
-
if (currentIndex === -1 || currentIndex === fullConfig.requiredSteps.length - 1) {
|
|
81
|
-
return 'completed';
|
|
82
|
-
}
|
|
83
|
-
const nextStep = fullConfig.requiredSteps[currentIndex + 1];
|
|
84
|
-
return nextStep || 'completed';
|
|
85
|
-
}, [fullConfig.requiredSteps]);
|
|
86
|
-
|
|
87
|
-
// Process face detection result
|
|
88
|
-
const processFaceResult = (0, _react.useCallback)(result => {
|
|
89
|
-
if (state.currentStep === 'completed' || state.currentStep === 'failed') {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
const now = Date.now();
|
|
93
|
-
|
|
94
|
-
// Check for timeouts
|
|
95
|
-
if (now - state.totalStartTime > fullConfig.totalTimeout) {
|
|
96
|
-
setState(prev => ({
|
|
97
|
-
...prev,
|
|
98
|
-
currentStep: 'failed',
|
|
99
|
-
instruction: 'Verification timed out. Please try again.',
|
|
100
|
-
error: 'Total verification timeout exceeded'
|
|
101
|
-
}));
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
if (now - state.stepStartTime > fullConfig.stepTimeout) {
|
|
105
|
-
setState(prev => ({
|
|
106
|
-
...prev,
|
|
107
|
-
currentStep: 'failed',
|
|
108
|
-
instruction: 'Step timed out. Please try again.',
|
|
109
|
-
error: 'Step timeout exceeded'
|
|
110
|
-
}));
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Check if current step is completed
|
|
115
|
-
const stepCompleted = checkStepCompletion(result);
|
|
116
|
-
if (stepCompleted) {
|
|
117
|
-
setConfirmationCount(prev => prev + 1);
|
|
118
|
-
|
|
119
|
-
// Require multiple consecutive confirmations
|
|
120
|
-
if (confirmationCount + 1 >= fullConfig.confirmationFrames) {
|
|
121
|
-
const nextStep = getNextStep(state.currentStep);
|
|
122
|
-
const newCompletedSteps = [...state.completedSteps, state.currentStep];
|
|
123
|
-
const newProgress = newCompletedSteps.length / fullConfig.requiredSteps.length * 100;
|
|
124
|
-
setState(prev => ({
|
|
125
|
-
...prev,
|
|
126
|
-
currentStep: nextStep,
|
|
127
|
-
completedSteps: newCompletedSteps,
|
|
128
|
-
stepStartTime: now,
|
|
129
|
-
progress: newProgress,
|
|
130
|
-
instruction: STEP_INSTRUCTIONS[nextStep],
|
|
131
|
-
isProcessing: nextStep === 'completed'
|
|
132
|
-
}));
|
|
133
|
-
setConfirmationCount(0);
|
|
134
|
-
}
|
|
135
|
-
} else {
|
|
136
|
-
// Reset confirmation count if step not completed
|
|
137
|
-
setConfirmationCount(0);
|
|
138
|
-
}
|
|
139
|
-
}, [state, fullConfig.totalTimeout, fullConfig.stepTimeout, fullConfig.confirmationFrames, fullConfig.requiredSteps.length, confirmationCount, checkStepCompletion, getNextStep]);
|
|
140
|
-
|
|
141
|
-
// Auto-reset on mount
|
|
142
|
-
(0, _react.useEffect)(() => {
|
|
143
|
-
resetFlow();
|
|
144
|
-
}, [resetFlow]);
|
|
145
|
-
return {
|
|
146
|
-
state,
|
|
147
|
-
processFaceResult,
|
|
148
|
-
resetFlow,
|
|
149
|
-
isCompleted: state.currentStep === 'completed',
|
|
150
|
-
isFailed: state.currentStep === 'failed',
|
|
151
|
-
isActive: state.currentStep !== 'completed' && state.currentStep !== 'failed',
|
|
152
|
-
remainingTime: Math.max(0, fullConfig.stepTimeout - (Date.now() - state.stepStartTime)),
|
|
153
|
-
totalRemainingTime: Math.max(0, fullConfig.totalTimeout - (Date.now() - state.totalStartTime))
|
|
154
|
-
};
|
|
155
|
-
};
|
|
156
|
-
exports.useFaceVerificationFlow = useFaceVerificationFlow;
|
|
157
|
-
//# sourceMappingURL=useFaceVerificationFlow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_useFaceVerification","DEFAULT_CONFIG","stepTimeout","totalTimeout","confirmationFrames","requiredSteps","STEP_INSTRUCTIONS","position_face","smile","blink","turn_left","turn_right","completed","failed","useFaceVerificationFlow","config","fullConfig","state","setState","useState","currentStep","completedSteps","stepStartTime","Date","now","totalStartTime","isProcessing","progress","instruction","confirmationCount","setConfirmationCount","resetFlow","useCallback","checkStepCompletion","result","faceDetected","FaceVerificationUtils","isFaceCentered","isConfidentSmile","isConfidentBlink","isHeadTurnedLeft","isHeadTurnedRight","getNextStep","currentIndex","indexOf","length","nextStep","processFaceResult","prev","error","stepCompleted","newCompletedSteps","newProgress","useEffect","isCompleted","isFailed","isActive","remainingTime","Math","max","totalRemainingTime","exports"],"sourceRoot":"../../../../src","sources":["components/biometrics/useFaceVerificationFlow.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { TouchableOpacity, Text, StyleSheet, ActivityIndicator } from 'react-native';
|
|
3
|
-
const Button = ({
|
|
4
|
-
title,
|
|
5
|
-
onPress,
|
|
6
|
-
backgroundColor = '#007AFF',
|
|
7
|
-
borderColor,
|
|
8
|
-
textColor = 'white',
|
|
9
|
-
disabled = false,
|
|
10
|
-
loading = false,
|
|
11
|
-
style,
|
|
12
|
-
textStyle,
|
|
13
|
-
activeOpacity = 0.8
|
|
14
|
-
}) => {
|
|
15
|
-
const buttonStyle = {
|
|
16
|
-
...styles.button,
|
|
17
|
-
backgroundColor: disabled ? '#cccccc' : backgroundColor,
|
|
18
|
-
borderColor: disabled ? '#cccccc' : borderColor || backgroundColor,
|
|
19
|
-
...style
|
|
20
|
-
};
|
|
21
|
-
const finalTextStyle = {
|
|
22
|
-
...styles.buttonText,
|
|
23
|
-
color: disabled ? '#666666' : textColor,
|
|
24
|
-
...textStyle
|
|
25
|
-
};
|
|
26
|
-
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
27
|
-
style: buttonStyle,
|
|
28
|
-
onPress: onPress,
|
|
29
|
-
disabled: disabled || loading,
|
|
30
|
-
activeOpacity: activeOpacity,
|
|
31
|
-
accessibilityRole: "button",
|
|
32
|
-
accessibilityLabel: title,
|
|
33
|
-
accessibilityState: {
|
|
34
|
-
disabled: disabled || loading
|
|
35
|
-
}
|
|
36
|
-
}, loading ? /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
37
|
-
color: textColor,
|
|
38
|
-
size: "small"
|
|
39
|
-
}) : /*#__PURE__*/React.createElement(Text, {
|
|
40
|
-
style: finalTextStyle
|
|
41
|
-
}, title));
|
|
42
|
-
};
|
|
43
|
-
const styles = StyleSheet.create({
|
|
44
|
-
button: {
|
|
45
|
-
borderRadius: 6,
|
|
46
|
-
paddingHorizontal: 12,
|
|
47
|
-
paddingVertical: 14,
|
|
48
|
-
borderWidth: 1,
|
|
49
|
-
alignItems: 'center',
|
|
50
|
-
justifyContent: 'center',
|
|
51
|
-
minHeight: 48
|
|
52
|
-
},
|
|
53
|
-
buttonText: {
|
|
54
|
-
color: 'white',
|
|
55
|
-
fontSize: 16,
|
|
56
|
-
fontWeight: '600',
|
|
57
|
-
paddingHorizontal: 30
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
export default Button;
|
|
61
|
-
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","TouchableOpacity","Text","StyleSheet","ActivityIndicator","Button","title","onPress","backgroundColor","borderColor","textColor","disabled","loading","style","textStyle","activeOpacity","buttonStyle","styles","button","finalTextStyle","buttonText","color","createElement","accessibilityRole","accessibilityLabel","accessibilityState","size","create","borderRadius","paddingHorizontal","paddingVertical","borderWidth","alignItems","justifyContent","minHeight","fontSize","fontWeight"],"sourceRoot":"../../../src","sources":["components/Button.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,gBAAgB,EAChBC,IAAI,EACJC,UAAU,EACVC,iBAAiB,QAGZ,cAAc;AAerB,MAAMC,MAA6B,GAAGA,CAAC;EACrCC,KAAK;EACLC,OAAO;EACPC,eAAe,GAAG,SAAS;EAC3BC,WAAW;EACXC,SAAS,GAAG,OAAO;EACnBC,QAAQ,GAAG,KAAK;EAChBC,OAAO,GAAG,KAAK;EACfC,KAAK;EACLC,SAAS;EACTC,aAAa,GAAG;AAClB,CAAC,KAAK;EACJ,MAAMC,WAAsB,GAAG;IAC7B,GAAGC,MAAM,CAACC,MAAM;IAChBV,eAAe,EAAEG,QAAQ,GAAG,SAAS,GAAGH,eAAe;IACvDC,WAAW,EAAEE,QAAQ,GAAG,SAAS,GAAGF,WAAW,IAAID,eAAe;IAClE,GAAGK;EACL,CAAC;EAED,MAAMM,cAAyB,GAAG;IAChC,GAAGF,MAAM,CAACG,UAAU;IACpBC,KAAK,EAAEV,QAAQ,GAAG,SAAS,GAAGD,SAAS;IACvC,GAAGI;EACL,CAAC;EAED,oBACEd,KAAA,CAAAsB,aAAA,CAACrB,gBAAgB;IACfY,KAAK,EAAEG,WAAY;IACnBT,OAAO,EAAEA,OAAQ;IACjBI,QAAQ,EAAEA,QAAQ,IAAIC,OAAQ;IAC9BG,aAAa,EAAEA,aAAc;IAC7BQ,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAElB,KAAM;IAC1BmB,kBAAkB,EAAE;MAAEd,QAAQ,EAAEA,QAAQ,IAAIC;IAAQ;EAAE,GAErDA,OAAO,gBACNZ,KAAA,CAAAsB,aAAA,CAAClB,iBAAiB;IAACiB,KAAK,EAAEX,SAAU;IAACgB,IAAI,EAAC;EAAO,CAAE,CAAC,gBAEpD1B,KAAA,CAAAsB,aAAA,CAACpB,IAAI;IAACW,KAAK,EAAEM;EAAe,GAAEb,KAAY,CAE5B,CAAC;AAEvB,CAAC;AAED,MAAMW,MAAM,GAAGd,UAAU,CAACwB,MAAM,CAAC;EAC/BT,MAAM,EAAE;IACNU,YAAY,EAAE,CAAC;IACfC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,WAAW,EAAE,CAAC;IACdC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,SAAS,EAAE;EACb,CAAC;EACDd,UAAU,EAAE;IACVC,KAAK,EAAE,OAAO;IACdc,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBP,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC;AAEF,eAAexB,MAAM","ignoreList":[]}
|
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
import React, { useState, useEffect } from 'react';
|
|
2
|
-
import { View, Modal, Dimensions, Platform, StyleSheet, TouchableOpacity, Image, Text } from 'react-native';
|
|
3
|
-
import { Camera, useCameraDevice, useCameraPermission } from 'react-native-vision-camera';
|
|
4
|
-
import Button from '../Button';
|
|
5
|
-
import { useFaceVerification } from './useFaceVerification';
|
|
6
|
-
import { useFaceVerificationFlow } from './useFaceVerificationFlow';
|
|
7
|
-
const FaceVerification = ({
|
|
8
|
-
onClose,
|
|
9
|
-
onSuccess,
|
|
10
|
-
primaryColor
|
|
11
|
-
}) => {
|
|
12
|
-
const device = useCameraDevice('front');
|
|
13
|
-
const {
|
|
14
|
-
hasPermission,
|
|
15
|
-
requestPermission
|
|
16
|
-
} = useCameraPermission();
|
|
17
|
-
const [isRequestingPermission, setIsRequestingPermission] = useState(false);
|
|
18
|
-
|
|
19
|
-
// Face verification flow
|
|
20
|
-
const {
|
|
21
|
-
state: flowState,
|
|
22
|
-
resetFlow,
|
|
23
|
-
isCompleted,
|
|
24
|
-
isFailed
|
|
25
|
-
} = useFaceVerificationFlow();
|
|
26
|
-
|
|
27
|
-
// Frame processor
|
|
28
|
-
const frameProcessor = useFaceVerification();
|
|
29
|
-
|
|
30
|
-
// Handle completion
|
|
31
|
-
useEffect(() => {
|
|
32
|
-
if (isCompleted) {
|
|
33
|
-
setTimeout(() => {
|
|
34
|
-
onSuccess();
|
|
35
|
-
}, 1000); // Show success message briefly
|
|
36
|
-
}
|
|
37
|
-
}, [isCompleted, onSuccess]);
|
|
38
|
-
const handleRequestPermission = async () => {
|
|
39
|
-
setIsRequestingPermission(true);
|
|
40
|
-
try {
|
|
41
|
-
await requestPermission();
|
|
42
|
-
} catch (error) {
|
|
43
|
-
console.error('Error requesting camera permission:', error);
|
|
44
|
-
} finally {
|
|
45
|
-
setIsRequestingPermission(false);
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
const renderPermissionRequest = () => /*#__PURE__*/React.createElement(View, {
|
|
49
|
-
style: styles.permissionContainer
|
|
50
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
51
|
-
style: styles.permissionIconContainer
|
|
52
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
53
|
-
style: styles.permissionIcon
|
|
54
|
-
}, "\uD83D\uDCF7")), /*#__PURE__*/React.createElement(Text, {
|
|
55
|
-
style: styles.permissionTitle
|
|
56
|
-
}, "Camera Permission Required"), /*#__PURE__*/React.createElement(Text, {
|
|
57
|
-
style: styles.permissionDescription
|
|
58
|
-
}, "To verify your identity, we need access to your camera. This allows us to capture your face for secure verification."), /*#__PURE__*/React.createElement(Button, {
|
|
59
|
-
title: "Allow Camera Access",
|
|
60
|
-
onPress: handleRequestPermission,
|
|
61
|
-
backgroundColor: primaryColor,
|
|
62
|
-
loading: isRequestingPermission
|
|
63
|
-
}));
|
|
64
|
-
const renderNoDevice = () => /*#__PURE__*/React.createElement(View, {
|
|
65
|
-
style: styles.errorContainer
|
|
66
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
67
|
-
style: styles.errorTitle
|
|
68
|
-
}, "Camera Not Available"), /*#__PURE__*/React.createElement(Text, {
|
|
69
|
-
style: styles.errorSubtitle
|
|
70
|
-
}, "No front camera detected on this device. Face verification requires a front-facing camera."));
|
|
71
|
-
const renderCamera = () => {
|
|
72
|
-
if (!device) return null;
|
|
73
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
74
|
-
style: styles.cameraContainer
|
|
75
|
-
}, /*#__PURE__*/React.createElement(Camera, {
|
|
76
|
-
device: device,
|
|
77
|
-
style: styles.camera,
|
|
78
|
-
isActive: true,
|
|
79
|
-
frameProcessor: frameProcessor
|
|
80
|
-
}), /*#__PURE__*/React.createElement(View, {
|
|
81
|
-
style: styles.cameraOverlay
|
|
82
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
83
|
-
style: styles.faceFrame
|
|
84
|
-
}), /*#__PURE__*/React.createElement(View, {
|
|
85
|
-
style: styles.progressContainer
|
|
86
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
87
|
-
style: [styles.progressBar, {
|
|
88
|
-
width: `${flowState.progress}%`,
|
|
89
|
-
backgroundColor: primaryColor
|
|
90
|
-
}]
|
|
91
|
-
})), /*#__PURE__*/React.createElement(Text, {
|
|
92
|
-
style: styles.instructionText
|
|
93
|
-
}, flowState.instruction), /*#__PURE__*/React.createElement(Text, {
|
|
94
|
-
style: styles.stepIndicator
|
|
95
|
-
}, "Step ", flowState.completedSteps.length + 1, " of 5"), isCompleted && /*#__PURE__*/React.createElement(View, {
|
|
96
|
-
style: [styles.statusContainer, {
|
|
97
|
-
backgroundColor: primaryColor
|
|
98
|
-
}]
|
|
99
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
100
|
-
style: styles.statusText
|
|
101
|
-
}, "\u2713 Verification Complete!")), isFailed && /*#__PURE__*/React.createElement(View, {
|
|
102
|
-
style: [styles.statusContainer, styles.statusContainerError]
|
|
103
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
104
|
-
style: styles.statusText
|
|
105
|
-
}, "\u2717 Verification Failed"), /*#__PURE__*/React.createElement(Button, {
|
|
106
|
-
title: "Try Again",
|
|
107
|
-
onPress: resetFlow,
|
|
108
|
-
backgroundColor: "white",
|
|
109
|
-
textColor: "#ff4444",
|
|
110
|
-
style: styles.retryButton
|
|
111
|
-
}))));
|
|
112
|
-
};
|
|
113
|
-
console.log(onSuccess, primaryColor);
|
|
114
|
-
return /*#__PURE__*/React.createElement(Modal, {
|
|
115
|
-
visible: true,
|
|
116
|
-
transparent: true,
|
|
117
|
-
onRequestClose: onClose,
|
|
118
|
-
style: styles.modal
|
|
119
|
-
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
120
|
-
style: styles.backdrop,
|
|
121
|
-
activeOpacity: 1,
|
|
122
|
-
onPress: onClose
|
|
123
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
124
|
-
style: [styles.container]
|
|
125
|
-
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
126
|
-
style: styles.close,
|
|
127
|
-
onPress: onClose
|
|
128
|
-
}, /*#__PURE__*/React.createElement(Image, {
|
|
129
|
-
source: require('../../assets/cancel.png'),
|
|
130
|
-
style: styles.closeIcon
|
|
131
|
-
})), /*#__PURE__*/React.createElement(View, {
|
|
132
|
-
style: styles.contentContainer
|
|
133
|
-
}, !hasPermission && renderPermissionRequest(), hasPermission && !device && renderNoDevice(), hasPermission && device && renderCamera()))));
|
|
134
|
-
};
|
|
135
|
-
export default FaceVerification;
|
|
136
|
-
const styles = StyleSheet.create({
|
|
137
|
-
hide: {
|
|
138
|
-
display: 'none'
|
|
139
|
-
},
|
|
140
|
-
full: {
|
|
141
|
-
flex: 1,
|
|
142
|
-
width: '100%',
|
|
143
|
-
height: '100%'
|
|
144
|
-
},
|
|
145
|
-
webview: {
|
|
146
|
-
flex: 1,
|
|
147
|
-
width: '100%',
|
|
148
|
-
height: Dimensions.get('window').height - 40,
|
|
149
|
-
backgroundColor: 'white',
|
|
150
|
-
borderTopRightRadius: 20,
|
|
151
|
-
borderTopLeftRadius: 20,
|
|
152
|
-
paddingTop: 150
|
|
153
|
-
},
|
|
154
|
-
webviewLoader: {
|
|
155
|
-
zIndex: 3,
|
|
156
|
-
backgroundColor: 'white',
|
|
157
|
-
alignItems: 'center',
|
|
158
|
-
justifyContent: 'center',
|
|
159
|
-
flex: 1,
|
|
160
|
-
width: '100%',
|
|
161
|
-
height: '100%',
|
|
162
|
-
position: 'absolute',
|
|
163
|
-
top: 0,
|
|
164
|
-
left: 0,
|
|
165
|
-
borderTopRightRadius: 20,
|
|
166
|
-
borderTopLeftRadius: 20
|
|
167
|
-
},
|
|
168
|
-
backdrop: {
|
|
169
|
-
backgroundColor: 'rgba(0,0,0,0.3)',
|
|
170
|
-
flex: 1,
|
|
171
|
-
justifyContent: 'flex-end',
|
|
172
|
-
position: 'relative',
|
|
173
|
-
height: '100%'
|
|
174
|
-
},
|
|
175
|
-
container: {
|
|
176
|
-
backgroundColor: 'white',
|
|
177
|
-
borderTopRightRadius: 20,
|
|
178
|
-
borderTopLeftRadius: 20,
|
|
179
|
-
maxHeight: Dimensions.get('window').height - 120,
|
|
180
|
-
flex: 1,
|
|
181
|
-
position: 'relative',
|
|
182
|
-
...(Platform.OS === 'android' && {
|
|
183
|
-
overflow: 'hidden'
|
|
184
|
-
})
|
|
185
|
-
},
|
|
186
|
-
modal: {
|
|
187
|
-
flex: 1,
|
|
188
|
-
backgroundColor: 'rgba(0,0,0,0.48)',
|
|
189
|
-
height: '100%',
|
|
190
|
-
width: '100%'
|
|
191
|
-
},
|
|
192
|
-
close: {
|
|
193
|
-
position: 'absolute',
|
|
194
|
-
top: 10,
|
|
195
|
-
right: 10,
|
|
196
|
-
backgroundColor: 'white',
|
|
197
|
-
height: 24,
|
|
198
|
-
width: 24,
|
|
199
|
-
borderRadius: 1000,
|
|
200
|
-
alignItems: 'center',
|
|
201
|
-
justifyContent: 'center',
|
|
202
|
-
zIndex: 2
|
|
203
|
-
},
|
|
204
|
-
closeIcon: {
|
|
205
|
-
height: 12,
|
|
206
|
-
width: 12
|
|
207
|
-
},
|
|
208
|
-
contentContainer: {
|
|
209
|
-
height: '100%',
|
|
210
|
-
position: 'relative',
|
|
211
|
-
borderTopRightRadius: 20,
|
|
212
|
-
borderTopLeftRadius: 20,
|
|
213
|
-
padding: 16
|
|
214
|
-
},
|
|
215
|
-
testContent: {
|
|
216
|
-
paddingTop: 30,
|
|
217
|
-
paddingLeft: 16
|
|
218
|
-
},
|
|
219
|
-
testTwoContent: {
|
|
220
|
-
paddingTop: 10,
|
|
221
|
-
paddingLeft: 16
|
|
222
|
-
},
|
|
223
|
-
errorSubtitle: {
|
|
224
|
-
textAlign: 'center',
|
|
225
|
-
fontSize: 14,
|
|
226
|
-
color: '#5e7079',
|
|
227
|
-
marginBottom: 20,
|
|
228
|
-
paddingHorizontal: 8,
|
|
229
|
-
marginTop: 14
|
|
230
|
-
},
|
|
231
|
-
errorContainer: {
|
|
232
|
-
flex: 1,
|
|
233
|
-
justifyContent: 'center',
|
|
234
|
-
alignItems: 'center',
|
|
235
|
-
width: Dimensions.get('window').width,
|
|
236
|
-
height: Dimensions.get('window').height,
|
|
237
|
-
zIndex: 2,
|
|
238
|
-
backgroundColor: 'white'
|
|
239
|
-
},
|
|
240
|
-
camera: {
|
|
241
|
-
width: '100%',
|
|
242
|
-
height: 400
|
|
243
|
-
},
|
|
244
|
-
// Permission request styles
|
|
245
|
-
permissionContainer: {
|
|
246
|
-
flex: 1,
|
|
247
|
-
justifyContent: 'center',
|
|
248
|
-
alignItems: 'center',
|
|
249
|
-
paddingHorizontal: 24,
|
|
250
|
-
paddingVertical: 40
|
|
251
|
-
},
|
|
252
|
-
permissionIconContainer: {
|
|
253
|
-
width: 80,
|
|
254
|
-
height: 80,
|
|
255
|
-
borderRadius: 40,
|
|
256
|
-
backgroundColor: '#f0f0f0',
|
|
257
|
-
justifyContent: 'center',
|
|
258
|
-
alignItems: 'center',
|
|
259
|
-
marginBottom: 24
|
|
260
|
-
},
|
|
261
|
-
permissionIcon: {
|
|
262
|
-
fontSize: 40
|
|
263
|
-
},
|
|
264
|
-
permissionTitle: {
|
|
265
|
-
fontSize: 20,
|
|
266
|
-
fontWeight: '600',
|
|
267
|
-
color: '#1a1a1a',
|
|
268
|
-
textAlign: 'center',
|
|
269
|
-
marginBottom: 12
|
|
270
|
-
},
|
|
271
|
-
permissionDescription: {
|
|
272
|
-
fontSize: 16,
|
|
273
|
-
color: '#666',
|
|
274
|
-
textAlign: 'center',
|
|
275
|
-
lineHeight: 22,
|
|
276
|
-
marginBottom: 32
|
|
277
|
-
},
|
|
278
|
-
// Error styles
|
|
279
|
-
errorTitle: {
|
|
280
|
-
fontSize: 18,
|
|
281
|
-
fontWeight: '600',
|
|
282
|
-
color: '#1a1a1a',
|
|
283
|
-
textAlign: 'center',
|
|
284
|
-
marginBottom: 8
|
|
285
|
-
},
|
|
286
|
-
// Camera styles
|
|
287
|
-
cameraContainer: {
|
|
288
|
-
flex: 1,
|
|
289
|
-
position: 'relative',
|
|
290
|
-
marginTop: 60
|
|
291
|
-
},
|
|
292
|
-
cameraOverlay: {
|
|
293
|
-
position: 'absolute',
|
|
294
|
-
top: 0,
|
|
295
|
-
left: 0,
|
|
296
|
-
right: 0,
|
|
297
|
-
bottom: 0,
|
|
298
|
-
justifyContent: 'center',
|
|
299
|
-
alignItems: 'center'
|
|
300
|
-
},
|
|
301
|
-
faceFrame: {
|
|
302
|
-
width: 200,
|
|
303
|
-
height: 250,
|
|
304
|
-
borderWidth: 3,
|
|
305
|
-
borderColor: 'white',
|
|
306
|
-
borderRadius: 100,
|
|
307
|
-
borderStyle: 'dashed',
|
|
308
|
-
backgroundColor: 'transparent'
|
|
309
|
-
},
|
|
310
|
-
instructionText: {
|
|
311
|
-
color: 'white',
|
|
312
|
-
fontSize: 16,
|
|
313
|
-
fontWeight: '500',
|
|
314
|
-
textAlign: 'center',
|
|
315
|
-
marginTop: 20,
|
|
316
|
-
backgroundColor: 'rgba(0,0,0,0.7)',
|
|
317
|
-
paddingHorizontal: 16,
|
|
318
|
-
paddingVertical: 8,
|
|
319
|
-
borderRadius: 20
|
|
320
|
-
},
|
|
321
|
-
// Verification flow styles
|
|
322
|
-
progressContainer: {
|
|
323
|
-
position: 'absolute',
|
|
324
|
-
top: 20,
|
|
325
|
-
left: 20,
|
|
326
|
-
right: 20,
|
|
327
|
-
height: 4,
|
|
328
|
-
backgroundColor: 'rgba(255,255,255,0.3)',
|
|
329
|
-
borderRadius: 2,
|
|
330
|
-
overflow: 'hidden'
|
|
331
|
-
},
|
|
332
|
-
progressBar: {
|
|
333
|
-
height: '100%',
|
|
334
|
-
borderRadius: 2
|
|
335
|
-
},
|
|
336
|
-
stepIndicator: {
|
|
337
|
-
color: 'white',
|
|
338
|
-
fontSize: 14,
|
|
339
|
-
fontWeight: '400',
|
|
340
|
-
textAlign: 'center',
|
|
341
|
-
marginTop: 8,
|
|
342
|
-
backgroundColor: 'rgba(0,0,0,0.5)',
|
|
343
|
-
paddingHorizontal: 12,
|
|
344
|
-
paddingVertical: 4,
|
|
345
|
-
borderRadius: 12,
|
|
346
|
-
alignSelf: 'center'
|
|
347
|
-
},
|
|
348
|
-
statusContainer: {
|
|
349
|
-
position: 'absolute',
|
|
350
|
-
bottom: 40,
|
|
351
|
-
left: 20,
|
|
352
|
-
right: 20,
|
|
353
|
-
padding: 20,
|
|
354
|
-
borderRadius: 12,
|
|
355
|
-
alignItems: 'center'
|
|
356
|
-
},
|
|
357
|
-
statusContainerError: {
|
|
358
|
-
backgroundColor: '#ff4444'
|
|
359
|
-
},
|
|
360
|
-
statusText: {
|
|
361
|
-
color: 'white',
|
|
362
|
-
fontSize: 18,
|
|
363
|
-
fontWeight: '600',
|
|
364
|
-
textAlign: 'center',
|
|
365
|
-
marginBottom: 8
|
|
366
|
-
},
|
|
367
|
-
retryButton: {
|
|
368
|
-
marginTop: 12,
|
|
369
|
-
minWidth: 120
|
|
370
|
-
}
|
|
371
|
-
});
|
|
372
|
-
//# sourceMappingURL=FaceVerification.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","View","Modal","Dimensions","Platform","StyleSheet","TouchableOpacity","Image","Text","Camera","useCameraDevice","useCameraPermission","Button","useFaceVerification","useFaceVerificationFlow","FaceVerification","onClose","onSuccess","primaryColor","device","hasPermission","requestPermission","isRequestingPermission","setIsRequestingPermission","state","flowState","resetFlow","isCompleted","isFailed","frameProcessor","setTimeout","handleRequestPermission","error","console","renderPermissionRequest","createElement","style","styles","permissionContainer","permissionIconContainer","permissionIcon","permissionTitle","permissionDescription","title","onPress","backgroundColor","loading","renderNoDevice","errorContainer","errorTitle","errorSubtitle","renderCamera","cameraContainer","camera","isActive","cameraOverlay","faceFrame","progressContainer","progressBar","width","progress","instructionText","instruction","stepIndicator","completedSteps","length","statusContainer","statusText","statusContainerError","textColor","retryButton","log","visible","transparent","onRequestClose","modal","backdrop","activeOpacity","container","close","source","require","closeIcon","contentContainer","create","hide","display","full","flex","height","webview","get","borderTopRightRadius","borderTopLeftRadius","paddingTop","webviewLoader","zIndex","alignItems","justifyContent","position","top","left","maxHeight","OS","overflow","right","borderRadius","padding","testContent","paddingLeft","testTwoContent","textAlign","fontSize","color","marginBottom","paddingHorizontal","marginTop","paddingVertical","fontWeight","lineHeight","bottom","borderWidth","borderColor","borderStyle","alignSelf","minWidth"],"sourceRoot":"../../../../src","sources":["components/biometrics/FaceVerification.tsx"],"mappings":"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","ignoreList":[]}
|