react-native-timacare 3.3.64 → 3.3.65
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/lib/commonjs/components/AlertLoan.js +1 -1
- package/lib/commonjs/components/AlertLoan.js.flow +11 -2
- package/lib/commonjs/components/AlertLoan.js.map +1 -1
- package/lib/commonjs/components/ItemTimaOne.js +1 -1
- package/lib/commonjs/components/ItemTimaOne.js.flow +2 -0
- package/lib/commonjs/components/ItemTimaOne.js.map +1 -1
- package/lib/commonjs/navigation/primary-navigator.js +1 -1
- package/lib/commonjs/navigation/primary-navigator.js.flow +9 -0
- package/lib/commonjs/navigation/primary-navigator.js.map +1 -1
- package/lib/commonjs/screens/full-submit/selfie.js +1 -1
- package/lib/commonjs/screens/full-submit/selfie.js.flow +257 -114
- package/lib/commonjs/screens/full-submit/selfie.js.map +1 -1
- package/lib/commonjs/screens/selfie/SelfieCamera.js +2 -0
- package/lib/commonjs/screens/selfie/SelfieCamera.js.flow +302 -0
- package/lib/commonjs/screens/selfie/SelfieCamera.js.map +1 -0
- package/lib/commonjs/screens/selfie/index.js +1 -1
- package/lib/commonjs/screens/selfie/index.js.flow +295 -165
- package/lib/commonjs/screens/selfie/index.js.map +1 -1
- package/lib/commonjs/screens/v3/ReviewInfoLoanBuyCar.js +2 -0
- package/lib/commonjs/screens/v3/ReviewInfoLoanBuyCar.js.flow +521 -0
- package/lib/commonjs/screens/v3/ReviewInfoLoanBuyCar.js.map +1 -0
- package/lib/commonjs/services/api/api.js +1 -1
- package/lib/commonjs/services/api/api.js.flow +41 -7
- package/lib/commonjs/services/api/api.js.map +1 -1
- package/lib/module/components/AlertLoan.js +1 -1
- package/lib/module/components/AlertLoan.js.map +1 -1
- package/lib/module/components/ItemTimaOne.js +1 -1
- package/lib/module/components/ItemTimaOne.js.map +1 -1
- package/lib/module/navigation/primary-navigator.js +1 -1
- package/lib/module/navigation/primary-navigator.js.map +1 -1
- package/lib/module/screens/full-submit/selfie.js +1 -1
- package/lib/module/screens/full-submit/selfie.js.map +1 -1
- package/lib/module/screens/selfie/SelfieCamera.js +2 -0
- package/lib/module/screens/selfie/SelfieCamera.js.map +1 -0
- package/lib/module/screens/selfie/index.js +1 -1
- package/lib/module/screens/selfie/index.js.map +1 -1
- package/lib/module/screens/v3/ReviewInfoLoanBuyCar.js +2 -0
- package/lib/module/screens/v3/ReviewInfoLoanBuyCar.js.map +1 -0
- package/lib/module/services/api/api.js +1 -1
- package/lib/module/services/api/api.js.map +1 -1
- package/lib/typescript/components/AlertLoan.d.ts.map +1 -1
- package/lib/typescript/components/ItemTimaOne.d.ts.map +1 -1
- package/lib/typescript/navigation/primary-navigator.d.ts +2 -0
- package/lib/typescript/navigation/primary-navigator.d.ts.map +1 -1
- package/lib/typescript/screens/full-submit/selfie.d.ts.map +1 -1
- package/lib/typescript/screens/selfie/SelfieCamera.d.ts +2 -0
- package/lib/typescript/screens/selfie/SelfieCamera.d.ts.map +1 -0
- package/lib/typescript/screens/selfie/index.d.ts.map +1 -1
- package/lib/typescript/screens/v3/ReviewInfoLoanBuyCar.d.ts +2 -0
- package/lib/typescript/screens/v3/ReviewInfoLoanBuyCar.d.ts.map +1 -0
- package/lib/typescript/services/api/api.d.ts +32 -0
- package/lib/typescript/services/api/api.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/AlertLoan.tsx +11 -2
- package/src/components/ItemTimaOne.tsx +2 -0
- package/src/navigation/primary-navigator.tsx +9 -0
- package/src/screens/full-submit/selfie.tsx +257 -114
- package/src/screens/selfie/SelfieCamera.tsx +302 -0
- package/src/screens/selfie/index.tsx +295 -165
- package/src/screens/v3/ReviewInfoLoanBuyCar.tsx +521 -0
- package/src/services/api/api.ts +41 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertLoan.d.ts","sourceRoot":"","sources":["../../../src/components/AlertLoan.tsx"],"names":[],"mappings":"AAMA,UAAU,gBAAgB;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAUD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"AlertLoan.d.ts","sourceRoot":"","sources":["../../../src/components/AlertLoan.tsx"],"names":[],"mappings":"AAMA,UAAU,gBAAgB;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAUD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,gBAAgB,eAkGpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemTimaOne.d.ts","sourceRoot":"","sources":["../../../src/components/ItemTimaOne.tsx"],"names":[],"mappings":"AAyCA,UAAU,MAAM;IACd,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,GAAG,CAAC;CACjB;AA6BD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ItemTimaOne.d.ts","sourceRoot":"","sources":["../../../src/components/ItemTimaOne.tsx"],"names":[],"mappings":"AAyCA,UAAU,MAAM;IACd,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,GAAG,CAAC;CACjB;AA6BD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,eAoX/D"}
|
|
@@ -72,6 +72,8 @@ export declare const ScreenNames: {
|
|
|
72
72
|
OcrStart: string;
|
|
73
73
|
ScanMRZ: string;
|
|
74
74
|
CameraVehicleRegistration: string;
|
|
75
|
+
ReviewInfoLoanBuyCar: string;
|
|
76
|
+
SelfieCamera: string;
|
|
75
77
|
};
|
|
76
78
|
export declare function PrimaryNavigator(props: any): JSX.Element;
|
|
77
79
|
export declare const canExit: (routeName: string) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primary-navigator.d.ts","sourceRoot":"","sources":["../../../src/navigation/primary-navigator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"primary-navigator.d.ts","sourceRoot":"","sources":["../../../src/navigation/primary-navigator.tsx"],"names":[],"mappings":"AAyFA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EvB,CAAC;AAIF,wBAAgB,gBAAgB,CAAC,KAAK,KAAA,eAmLrC;AAGD,eAAO,MAAM,OAAO,cAAe,MAAM,YAAmC,CAAC;AAE7E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAE,QAmC5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selfie.d.ts","sourceRoot":"","sources":["../../../../src/screens/full-submit/selfie.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"selfie.d.ts","sourceRoot":"","sources":["../../../../src/screens/full-submit/selfie.tsx"],"names":[],"mappings":"AAsCA,eAAO,MAAM,UAAU,KAsKrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelfieCamera.d.ts","sourceRoot":"","sources":["../../../../src/screens/selfie/SelfieCamera.tsx"],"names":[],"mappings":"AAmCA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,GAAG,eAkO9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screens/selfie/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screens/selfie/index.tsx"],"names":[],"mappings":"AA8CA,eAAO,MAAM,MAAM,KAyMjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewInfoLoanBuyCar.d.ts","sourceRoot":"","sources":["../../../../src/screens/v3/ReviewInfoLoanBuyCar.tsx"],"names":[],"mappings":"AA6BA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,GAAG,eAoatD"}
|
|
@@ -3095,5 +3095,37 @@ export declare class Api {
|
|
|
3095
3095
|
kind: string;
|
|
3096
3096
|
data?: undefined;
|
|
3097
3097
|
}>;
|
|
3098
|
+
getInfoCustomerLoanByCar(id: any): Promise<{
|
|
3099
|
+
kind: "timeout";
|
|
3100
|
+
temporary: true;
|
|
3101
|
+
} | {
|
|
3102
|
+
kind: "cannot-connect";
|
|
3103
|
+
temporary: true;
|
|
3104
|
+
} | {
|
|
3105
|
+
kind: "unknown";
|
|
3106
|
+
temporary: true;
|
|
3107
|
+
} | {
|
|
3108
|
+
kind: string;
|
|
3109
|
+
data: any;
|
|
3110
|
+
} | {
|
|
3111
|
+
kind: string;
|
|
3112
|
+
data?: undefined;
|
|
3113
|
+
}>;
|
|
3114
|
+
updateInfoCustomerLoanBuyCar(body: any): Promise<{
|
|
3115
|
+
kind: "timeout";
|
|
3116
|
+
temporary: true;
|
|
3117
|
+
} | {
|
|
3118
|
+
kind: "cannot-connect";
|
|
3119
|
+
temporary: true;
|
|
3120
|
+
} | {
|
|
3121
|
+
kind: "unknown";
|
|
3122
|
+
temporary: true;
|
|
3123
|
+
} | {
|
|
3124
|
+
kind: string;
|
|
3125
|
+
data: any;
|
|
3126
|
+
} | {
|
|
3127
|
+
kind: string;
|
|
3128
|
+
data?: undefined;
|
|
3129
|
+
}>;
|
|
3098
3130
|
}
|
|
3099
3131
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/services/api/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,UAAU,CAAC;AAOjE,OAAO,EAAgB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAuC1D;;GAEG;AACH,qBAAa,GAAG;IACd,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAM;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAkB;IAEtC;;;;OAIG;IACH,OAAO,CAAC,WAAW,CAAiB;IAEpC,wEAAwE;IACxE,OAAO,CAAC,kBAAkB,CAAC,CAAa;IAExC;;OAEG;IAEH;;;;OAIG;gBACS,MAAM,GAAE,SAA0B;WAKhC,WAAW,IAAI,GAAG;IAiBhC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/services/api/api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -78,7 +78,17 @@ export default function AlertLoan({ open, onClose }: IModalOptionLoan) {
|
|
|
78
78
|
color: '#828282',
|
|
79
79
|
}}
|
|
80
80
|
>
|
|
81
|
-
|
|
81
|
+
<MText
|
|
82
|
+
style={{
|
|
83
|
+
fontSize: 14,
|
|
84
|
+
color: '#EF592E',
|
|
85
|
+
fontWeight: 'bold',
|
|
86
|
+
}}
|
|
87
|
+
>
|
|
88
|
+
Chuyên viên Tima sẽ sớm liên hệ
|
|
89
|
+
</MText>{' '}
|
|
90
|
+
để xác minh thông tin. Anh/chị vui lòng để ý điện thoại để được hỗ
|
|
91
|
+
trợ giải ngân nhanh nhất
|
|
82
92
|
</MText>
|
|
83
93
|
<TouchableOpacity
|
|
84
94
|
onPress={onClose}
|
|
@@ -89,7 +99,6 @@ export default function AlertLoan({ open, onClose }: IModalOptionLoan) {
|
|
|
89
99
|
height: 40,
|
|
90
100
|
alignItems: 'center',
|
|
91
101
|
justifyContent: 'center',
|
|
92
|
-
paddingHorizontal: 50,
|
|
93
102
|
marginBottom: 24,
|
|
94
103
|
marginTop: 16,
|
|
95
104
|
}}
|
|
@@ -141,6 +141,8 @@ export default function ItemTimaOne({ item, navigation }: IProps) {
|
|
|
141
141
|
navigation.push(
|
|
142
142
|
item?.typeLoan === 5
|
|
143
143
|
? ScreenNames.ReviewInformation
|
|
144
|
+
: item?.typeLoan === 7
|
|
145
|
+
? ScreenNames.ReviewInfoLoanBuyCar
|
|
144
146
|
: ScreenNames.TopupLoanInfo,
|
|
145
147
|
{ loan: item }
|
|
146
148
|
);
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
import { OTP } from '../screens/otp';
|
|
18
18
|
import { NationalID } from '../screens/nationalID';
|
|
19
19
|
import { Selfie } from '../screens/selfie';
|
|
20
|
+
import SelfieCamera from '../screens/selfie/SelfieCamera';
|
|
20
21
|
import { Camera } from '../screens/camera';
|
|
21
22
|
import { TermScreen } from '../screens/terms/TermScreen';
|
|
22
23
|
import { LiveNess } from '../screens/liveness';
|
|
@@ -84,6 +85,7 @@ import ReviewLoanMotobike from '../screens/motobike/ReviewLoanMotobike';
|
|
|
84
85
|
import PolicyF88 from '../screens/motobike/PolicyF88';
|
|
85
86
|
import OcrStart from '../screens/NFC/OcrStart';
|
|
86
87
|
import ScanMRZ from '../screens/NFC/ScanMRZ';
|
|
88
|
+
import ReviewInfoLoanBuyCar from '../screens/v3/ReviewInfoLoanBuyCar';
|
|
87
89
|
|
|
88
90
|
export const ScreenNames = {
|
|
89
91
|
Main: 'HomeTimaCare',
|
|
@@ -160,6 +162,8 @@ export const ScreenNames = {
|
|
|
160
162
|
OcrStart: 'OcrStart',
|
|
161
163
|
ScanMRZ: 'ScanMRZ',
|
|
162
164
|
CameraVehicleRegistration: 'CameraVehicleRegistration',
|
|
165
|
+
ReviewInfoLoanBuyCar: 'ReviewInfoLoanBuyCar',
|
|
166
|
+
SelfieCamera: 'SelfieCamera',
|
|
163
167
|
};
|
|
164
168
|
|
|
165
169
|
const Stack = createNativeStackNavigator();
|
|
@@ -190,6 +194,7 @@ export function PrimaryNavigator(props) {
|
|
|
190
194
|
<Stack.Screen name={ScreenNames.Main} component={Home} />
|
|
191
195
|
<Stack.Screen name={ScreenNames.NationalID} component={NationalID} />
|
|
192
196
|
<Stack.Screen name={ScreenNames.Selfie} component={Selfie} />
|
|
197
|
+
<Stack.Screen name={ScreenNames.SelfieCamera} component={SelfieCamera} />
|
|
193
198
|
<Stack.Screen name={ScreenNames.Camera} component={Camera} />
|
|
194
199
|
<Stack.Screen name={ScreenNames.Terms} component={TermScreen} />
|
|
195
200
|
<Stack.Screen name={ScreenNames.LiveNess} component={LiveNess} />
|
|
@@ -336,6 +341,10 @@ export function PrimaryNavigator(props) {
|
|
|
336
341
|
<Stack.Screen name={ScreenNames.PolicyF88} component={PolicyF88} />
|
|
337
342
|
<Stack.Screen name={ScreenNames.OcrStart} component={OcrStart} />
|
|
338
343
|
<Stack.Screen name={ScreenNames.ScanMRZ} component={ScanMRZ} />
|
|
344
|
+
<Stack.Screen
|
|
345
|
+
name={ScreenNames.ReviewInfoLoanBuyCar}
|
|
346
|
+
component={ReviewInfoLoanBuyCar}
|
|
347
|
+
/>
|
|
339
348
|
</Stack.Navigator>
|
|
340
349
|
);
|
|
341
350
|
}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
//@ts-nocheck
|
|
2
2
|
import { StackActions, useNavigation } from '@react-navigation/native';
|
|
3
|
-
import { observer
|
|
4
|
-
import React, { useState } from 'react';
|
|
3
|
+
import { observer } from 'mobx-react-lite';
|
|
4
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
5
5
|
import {
|
|
6
6
|
ActivityIndicator,
|
|
7
|
-
|
|
7
|
+
Animated,
|
|
8
|
+
Easing,
|
|
8
9
|
Image,
|
|
9
|
-
ImageStyle,
|
|
10
10
|
SafeAreaView,
|
|
11
11
|
ScrollView,
|
|
12
|
-
|
|
13
|
-
TouchableOpacity,
|
|
12
|
+
StyleSheet,
|
|
14
13
|
View,
|
|
15
14
|
} from 'react-native';
|
|
16
15
|
import LinearGradient from 'react-native-linear-gradient';
|
|
17
|
-
import { CIMBBank,
|
|
16
|
+
import { CIMBBank, IConCamera, Tick2, TimaSmall } from '../../assets/icons';
|
|
18
17
|
import CIMBLoading from '../../components/CIMBLoading';
|
|
19
18
|
import MButton from '../../components/MButton';
|
|
20
19
|
import { MText } from '../../components/MText';
|
|
@@ -23,30 +22,55 @@ import { commonStyles } from '../CommonStyles';
|
|
|
23
22
|
import FullSubmitStore from './store';
|
|
24
23
|
import MHeader from '../../components/MHeader';
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
// require() ở module scope: không phải resolve lại asset mỗi lần render
|
|
26
|
+
const BACKGROUND = require('../../assets/img/EKYC.png');
|
|
27
|
+
const PLACEHOLDER = require('../../assets/img/selfie.png');
|
|
28
|
+
|
|
29
|
+
// Khung dọc 3:4 - đúng tỉ lệ ảnh máy ảnh trước trả về nên ảnh khách chụp
|
|
30
|
+
// không bị cắt hai bên như khung 356/534 cũ
|
|
31
|
+
const PREVIEW_ASPECT = 3 / 4;
|
|
32
|
+
|
|
33
|
+
const NOTES = [
|
|
34
|
+
'Nhìn thẳng vào máy ảnh, khuôn mặt nằm gọn trong khung hình',
|
|
35
|
+
'Chụp nơi đủ sáng, tránh ngược sáng hoặc bóng đổ lên mặt',
|
|
36
|
+
'Không đeo kính, khẩu trang, mũ và để lộ rõ đường nét khuôn mặt',
|
|
37
|
+
];
|
|
32
38
|
|
|
33
39
|
export const CimbSelfie = observer(function CimbSelfie(props: any) {
|
|
34
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
35
40
|
const navigation = useNavigation();
|
|
41
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
36
42
|
const [photo, setPhoto] = useState(null);
|
|
43
|
+
// Chặn double-submit: setIsLoading là bất đồng bộ nên hai lần bấm liên tiếp
|
|
44
|
+
// vẫn lọt qua được nếu chỉ dựa vào state.
|
|
45
|
+
const submitting = useRef(false);
|
|
37
46
|
const loan = props?.route.params?.loan;
|
|
38
|
-
|
|
39
|
-
|
|
47
|
+
|
|
48
|
+
// Ảnh vừa chụp hiện lên bằng fade + scale nhẹ để thấy rõ khung ảnh đã đổi
|
|
49
|
+
const reveal = useRef(new Animated.Value(1)).current;
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (!photo) return;
|
|
52
|
+
reveal.setValue(0);
|
|
53
|
+
Animated.timing(reveal, {
|
|
54
|
+
toValue: 1,
|
|
55
|
+
duration: 260,
|
|
56
|
+
easing: Easing.out(Easing.cubic),
|
|
57
|
+
useNativeDriver: true,
|
|
58
|
+
}).start();
|
|
59
|
+
}, [photo, reveal]);
|
|
60
|
+
|
|
61
|
+
const takePhoto = useCallback(() => {
|
|
62
|
+
navigation.push(ScreenNames.SelfieCamera, {
|
|
40
63
|
front: true,
|
|
41
64
|
selfie: true,
|
|
42
|
-
callback:
|
|
43
|
-
setPhoto(photo);
|
|
44
|
-
},
|
|
65
|
+
callback: setPhoto,
|
|
45
66
|
});
|
|
46
|
-
};
|
|
67
|
+
}, [navigation]);
|
|
47
68
|
|
|
48
|
-
const nextStep = () => {
|
|
69
|
+
const nextStep = useCallback(() => {
|
|
70
|
+
if (!photo || submitting.current) return;
|
|
71
|
+
submitting.current = true;
|
|
49
72
|
setIsLoading(true);
|
|
73
|
+
|
|
50
74
|
const formData = new FormData();
|
|
51
75
|
formData.append('loanbriefId', loan?.id);
|
|
52
76
|
formData.append('TypeDocumentId', 487);
|
|
@@ -55,126 +79,123 @@ export const CimbSelfie = observer(function CimbSelfie(props: any) {
|
|
|
55
79
|
type: 'image/jpg',
|
|
56
80
|
name: 'image.jpg',
|
|
57
81
|
});
|
|
82
|
+
|
|
58
83
|
FullSubmitStore.uploadDocument(
|
|
59
84
|
formData,
|
|
60
85
|
() => {
|
|
86
|
+
submitting.current = false;
|
|
61
87
|
setIsLoading(false);
|
|
62
88
|
setTimeout(() => {
|
|
63
89
|
navigation.dispatch(
|
|
64
|
-
StackActions.push(ScreenNames.MRZScanner, {
|
|
65
|
-
loan: loan,
|
|
66
|
-
})
|
|
90
|
+
StackActions.push(ScreenNames.MRZScanner, { loan })
|
|
67
91
|
);
|
|
68
92
|
}, 600);
|
|
69
93
|
},
|
|
70
94
|
() => {
|
|
95
|
+
submitting.current = false;
|
|
71
96
|
setIsLoading(false);
|
|
72
97
|
}
|
|
73
98
|
);
|
|
74
|
-
};
|
|
99
|
+
}, [photo, loan, navigation]);
|
|
100
|
+
|
|
101
|
+
const goBack = useCallback(() => navigation.goBack(), [navigation]);
|
|
102
|
+
|
|
103
|
+
const canSubmit = !!photo && !isLoading;
|
|
75
104
|
|
|
76
105
|
return (
|
|
77
|
-
<View style={
|
|
78
|
-
<Image source={
|
|
79
|
-
<MHeader title="Xác thực khuôn mặt" onBack={
|
|
106
|
+
<View style={commonStyles.fill}>
|
|
107
|
+
<Image source={BACKGROUND} style={styles.background} />
|
|
108
|
+
<MHeader title="Xác thực khuôn mặt" onBack={goBack} />
|
|
80
109
|
<SafeAreaView style={commonStyles.fill}>
|
|
81
|
-
<ScrollView
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
110
|
+
<ScrollView
|
|
111
|
+
style={commonStyles.fill}
|
|
112
|
+
contentContainerStyle={styles.scrollContent}
|
|
113
|
+
showsVerticalScrollIndicator={false}
|
|
114
|
+
>
|
|
115
|
+
<View style={styles.card}>
|
|
116
|
+
{/* Bọc một lớp cắt riêng: để Image tự bo góc thì mép ảnh vẫn thò ra
|
|
117
|
+
ngoài đường cong của card trên Android */}
|
|
118
|
+
<View style={styles.previewFrame}>
|
|
119
|
+
<Animated.Image
|
|
120
|
+
source={photo ? { uri: photo } : PLACEHOLDER}
|
|
121
|
+
resizeMode="cover"
|
|
122
|
+
style={[
|
|
123
|
+
styles.preview,
|
|
124
|
+
{
|
|
125
|
+
opacity: reveal,
|
|
126
|
+
transform: [
|
|
127
|
+
{
|
|
128
|
+
scale: reveal.interpolate({
|
|
129
|
+
inputRange: [0, 1],
|
|
130
|
+
outputRange: [0.97, 1],
|
|
131
|
+
}),
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
]}
|
|
136
|
+
/>
|
|
137
|
+
</View>
|
|
138
|
+
{/* Nhãn trạng thái: phân biệt rõ ảnh mẫu minh hoạ và ảnh đã chụp */}
|
|
139
|
+
<View style={[styles.badge, photo && styles.badgeDone]}>
|
|
140
|
+
{photo ? <Tick2 /> : null}
|
|
141
|
+
<MText style={[styles.badgeText, photo && styles.badgeTextDone]}>
|
|
142
|
+
{photo ? 'Ảnh của bạn' : 'Ảnh mẫu'}
|
|
143
|
+
</MText>
|
|
144
|
+
</View>
|
|
145
|
+
</View>
|
|
146
|
+
|
|
147
|
+
<View style={styles.noteCard}>
|
|
148
|
+
<MText style={styles.noteTitle}>Lưu ý khi chụp ảnh khuôn mặt</MText>
|
|
149
|
+
{NOTES.map((note) => (
|
|
150
|
+
<View key={note} style={styles.noteRow}>
|
|
151
|
+
<TimaSmall style={styles.noteBullet} />
|
|
152
|
+
<MText style={styles.noteText}>{note}</MText>
|
|
153
|
+
</View>
|
|
154
|
+
))}
|
|
96
155
|
</View>
|
|
97
156
|
</ScrollView>
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
flexDirection: 'row',
|
|
101
|
-
paddingHorizontal: 16,
|
|
102
|
-
marginBottom: 30,
|
|
103
|
-
}}
|
|
104
|
-
>
|
|
157
|
+
|
|
158
|
+
<View style={styles.footer}>
|
|
105
159
|
<MButton
|
|
106
|
-
|
|
107
|
-
onPress={() => {
|
|
108
|
-
takePhoto();
|
|
109
|
-
}}
|
|
160
|
+
onPress={takePhoto}
|
|
110
161
|
disabled={isLoading}
|
|
111
|
-
style={[
|
|
112
|
-
commonStyles.row,
|
|
113
|
-
commonStyles.alignCenter,
|
|
114
|
-
commonStyles.justifyCenter,
|
|
115
|
-
{
|
|
116
|
-
backgroundColor: '#FFFFFF',
|
|
117
|
-
height: 40,
|
|
118
|
-
borderRadius: 30,
|
|
119
|
-
flex: 1,
|
|
120
|
-
marginRight: 8,
|
|
121
|
-
borderWidth: 1,
|
|
122
|
-
borderColor: '#EF4123',
|
|
123
|
-
},
|
|
124
|
-
]}
|
|
162
|
+
style={[styles.captureButton, isLoading && styles.buttonMuted]}
|
|
125
163
|
>
|
|
126
|
-
<
|
|
127
|
-
|
|
164
|
+
<IConCamera width={16} height={16} />
|
|
165
|
+
<MText style={styles.captureText}>
|
|
166
|
+
{photo ? 'Chụp lại' : 'Chụp ảnh'}
|
|
128
167
|
</MText>
|
|
129
168
|
</MButton>
|
|
130
169
|
|
|
131
|
-
<
|
|
132
|
-
{
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
170
|
+
<MButton
|
|
171
|
+
disabled={!canSubmit}
|
|
172
|
+
onPress={nextStep}
|
|
173
|
+
style={commonStyles.fill}
|
|
174
|
+
>
|
|
175
|
+
{canSubmit ? (
|
|
176
|
+
<LinearGradient
|
|
177
|
+
colors={['#FF7A00', '#EF4123']}
|
|
178
|
+
start={{ x: 0, y: 0 }}
|
|
179
|
+
end={{ x: 1, y: 1 }}
|
|
180
|
+
style={[styles.submitButton, styles.submitShadow]}
|
|
138
181
|
>
|
|
139
|
-
<
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
},
|
|
151
|
-
]}
|
|
152
|
-
>
|
|
153
|
-
{isLoading ? (
|
|
154
|
-
<ActivityIndicator color={'white'} size="small" />
|
|
155
|
-
) : (
|
|
156
|
-
<MText
|
|
157
|
-
style={[commonStyles.textNormal, { color: 'white' }]}
|
|
158
|
-
>
|
|
159
|
-
Tiếp tục
|
|
160
|
-
</MText>
|
|
161
|
-
)}
|
|
162
|
-
</LinearGradient>
|
|
163
|
-
</MButton>
|
|
182
|
+
<MText style={styles.submitText}>Tiếp tục</MText>
|
|
183
|
+
</LinearGradient>
|
|
184
|
+
) : (
|
|
185
|
+
// Trạng thái chưa chụp/đang xử lý phải nhìn là biết chưa bấm được
|
|
186
|
+
<View style={[styles.submitButton, styles.submitDisabled]}>
|
|
187
|
+
{isLoading ? (
|
|
188
|
+
<ActivityIndicator color={'#FFFFFF'} size="small" />
|
|
189
|
+
) : (
|
|
190
|
+
<MText style={styles.submitText}>Tiếp tục</MText>
|
|
191
|
+
)}
|
|
192
|
+
</View>
|
|
164
193
|
)}
|
|
165
|
-
</
|
|
194
|
+
</MButton>
|
|
166
195
|
</View>
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
marginTop: 8,
|
|
171
|
-
flexDirection: 'row',
|
|
172
|
-
justifyContent: 'center',
|
|
173
|
-
}}
|
|
174
|
-
>
|
|
175
|
-
<MText style={{ fontSize: 12, color: '#333333' }}>
|
|
176
|
-
Cung cấp bởi{' '}
|
|
177
|
-
</MText>
|
|
196
|
+
|
|
197
|
+
<View style={styles.cimbRow}>
|
|
198
|
+
<MText style={styles.cimbText}>Cung cấp bởi </MText>
|
|
178
199
|
<CIMBBank />
|
|
179
200
|
</View>
|
|
180
201
|
</SafeAreaView>
|
|
@@ -182,3 +203,125 @@ export const CimbSelfie = observer(function CimbSelfie(props: any) {
|
|
|
182
203
|
</View>
|
|
183
204
|
);
|
|
184
205
|
});
|
|
206
|
+
|
|
207
|
+
const styles = StyleSheet.create({
|
|
208
|
+
background: {
|
|
209
|
+
position: 'absolute',
|
|
210
|
+
width: '100%',
|
|
211
|
+
height: '100%',
|
|
212
|
+
resizeMode: 'cover',
|
|
213
|
+
},
|
|
214
|
+
scrollContent: { paddingHorizontal: 24, paddingBottom: 24 },
|
|
215
|
+
|
|
216
|
+
card: {
|
|
217
|
+
marginTop: 20,
|
|
218
|
+
padding: 8,
|
|
219
|
+
borderRadius: 20,
|
|
220
|
+
backgroundColor: '#FFFFFF',
|
|
221
|
+
shadowColor: '#7A2E12',
|
|
222
|
+
shadowOffset: { width: 0, height: 10 },
|
|
223
|
+
shadowOpacity: 0.18,
|
|
224
|
+
shadowRadius: 20,
|
|
225
|
+
elevation: 8,
|
|
226
|
+
},
|
|
227
|
+
// Bán kính trong = bán kính card (20) - padding (8) để hai đường cong khớp nhau
|
|
228
|
+
previewFrame: {
|
|
229
|
+
width: '100%',
|
|
230
|
+
aspectRatio: PREVIEW_ASPECT,
|
|
231
|
+
borderRadius: 12,
|
|
232
|
+
overflow: 'hidden',
|
|
233
|
+
backgroundColor: '#F5EDE9',
|
|
234
|
+
},
|
|
235
|
+
preview: { width: '100%', height: '100%' },
|
|
236
|
+
badge: {
|
|
237
|
+
position: 'absolute',
|
|
238
|
+
left: 20,
|
|
239
|
+
bottom: 20,
|
|
240
|
+
flexDirection: 'row',
|
|
241
|
+
alignItems: 'center',
|
|
242
|
+
paddingHorizontal: 10,
|
|
243
|
+
paddingVertical: 5,
|
|
244
|
+
borderRadius: 14,
|
|
245
|
+
backgroundColor: 'rgba(0, 0, 0, 0.45)',
|
|
246
|
+
},
|
|
247
|
+
badgeDone: { backgroundColor: 'rgba(255, 255, 255, 0.94)' },
|
|
248
|
+
badgeText: { color: '#FFFFFF', fontSize: 11, fontWeight: '600' },
|
|
249
|
+
badgeTextDone: { color: '#28A745', marginLeft: 6 },
|
|
250
|
+
|
|
251
|
+
noteCard: {
|
|
252
|
+
marginTop: 20,
|
|
253
|
+
padding: 16,
|
|
254
|
+
borderRadius: 16,
|
|
255
|
+
backgroundColor: 'rgba(255, 255, 255, 0.75)',
|
|
256
|
+
borderWidth: 1,
|
|
257
|
+
borderColor: '#FFE1D3',
|
|
258
|
+
},
|
|
259
|
+
noteTitle: {
|
|
260
|
+
...commonStyles.textNormalBold,
|
|
261
|
+
fontSize: 15,
|
|
262
|
+
color: '#333333',
|
|
263
|
+
},
|
|
264
|
+
noteRow: { flexDirection: 'row', marginTop: 12 },
|
|
265
|
+
noteBullet: { marginTop: 5 },
|
|
266
|
+
noteText: {
|
|
267
|
+
color: '#5A5A5A',
|
|
268
|
+
marginLeft: 10,
|
|
269
|
+
fontSize: 13,
|
|
270
|
+
lineHeight: 20,
|
|
271
|
+
flex: 1,
|
|
272
|
+
},
|
|
273
|
+
|
|
274
|
+
// SafeAreaView đã cộng inset dưới trên iOS nên chỉ cần khoảng thở cố định
|
|
275
|
+
footer: {
|
|
276
|
+
flexDirection: 'row',
|
|
277
|
+
paddingHorizontal: 24,
|
|
278
|
+
paddingTop: 4,
|
|
279
|
+
marginBottom: 16,
|
|
280
|
+
},
|
|
281
|
+
captureButton: {
|
|
282
|
+
flexDirection: 'row',
|
|
283
|
+
alignItems: 'center',
|
|
284
|
+
justifyContent: 'center',
|
|
285
|
+
backgroundColor: '#FFFFFF',
|
|
286
|
+
height: 48,
|
|
287
|
+
borderRadius: 24,
|
|
288
|
+
flex: 1,
|
|
289
|
+
marginRight: 10,
|
|
290
|
+
borderWidth: 1.5,
|
|
291
|
+
borderColor: '#EF4123',
|
|
292
|
+
},
|
|
293
|
+
buttonMuted: { opacity: 0.5 },
|
|
294
|
+
captureText: {
|
|
295
|
+
...commonStyles.textNormal,
|
|
296
|
+
color: '#F05123',
|
|
297
|
+
fontWeight: '600',
|
|
298
|
+
marginLeft: 8,
|
|
299
|
+
},
|
|
300
|
+
submitButton: {
|
|
301
|
+
alignItems: 'center',
|
|
302
|
+
justifyContent: 'center',
|
|
303
|
+
height: 48,
|
|
304
|
+
borderRadius: 24,
|
|
305
|
+
},
|
|
306
|
+
submitShadow: {
|
|
307
|
+
shadowColor: '#EF4123',
|
|
308
|
+
shadowOffset: { width: 0, height: 6 },
|
|
309
|
+
shadowOpacity: 0.35,
|
|
310
|
+
shadowRadius: 12,
|
|
311
|
+
elevation: 6,
|
|
312
|
+
},
|
|
313
|
+
submitDisabled: { backgroundColor: '#D8D2CF' },
|
|
314
|
+
submitText: {
|
|
315
|
+
...commonStyles.textNormal,
|
|
316
|
+
color: '#FFFFFF',
|
|
317
|
+
fontWeight: '600',
|
|
318
|
+
},
|
|
319
|
+
|
|
320
|
+
cimbRow: {
|
|
321
|
+
marginBottom: 24,
|
|
322
|
+
flexDirection: 'row',
|
|
323
|
+
justifyContent: 'center',
|
|
324
|
+
alignItems: 'center',
|
|
325
|
+
},
|
|
326
|
+
cimbText: { fontSize: 12, color: '#333333' },
|
|
327
|
+
});
|