react-native-timacare 3.3.19 → 3.3.21

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.
Files changed (192) hide show
  1. package/lib/commonjs/assets/tts/f88.png +0 -0
  2. package/lib/commonjs/assets/v3/11.svg +13 -0
  3. package/lib/commonjs/assets/v3/12.svg +21 -0
  4. package/lib/commonjs/assets/v3/index.js +1 -1
  5. package/lib/commonjs/assets/v3/index.js.flow +4 -0
  6. package/lib/commonjs/assets/v3/index.js.map +1 -1
  7. package/lib/commonjs/components/MSelect.js +1 -1
  8. package/lib/commonjs/components/MSelect.js.flow +4 -2
  9. package/lib/commonjs/components/MSelect.js.map +1 -1
  10. package/lib/commonjs/components/keyboardspace/index.js +1 -1
  11. package/lib/commonjs/components/keyboardspace/index.js.flow +0 -2
  12. package/lib/commonjs/components/keyboardspace/index.js.map +1 -1
  13. package/lib/commonjs/components/select/index.js +1 -1
  14. package/lib/commonjs/components/select/index.js.flow +4 -2
  15. package/lib/commonjs/components/select/index.js.map +1 -1
  16. package/lib/commonjs/navigation/primary-navigator.js +1 -1
  17. package/lib/commonjs/navigation/primary-navigator.js.flow +15 -0
  18. package/lib/commonjs/navigation/primary-navigator.js.map +1 -1
  19. package/lib/commonjs/screens/detail-loan/DetailLoanTima.js +1 -1
  20. package/lib/commonjs/screens/detail-loan/DetailLoanTima.js.flow +29 -4
  21. package/lib/commonjs/screens/detail-loan/DetailLoanTima.js.map +1 -1
  22. package/lib/commonjs/screens/detail-loan/Info.js +1 -1
  23. package/lib/commonjs/screens/detail-loan/Info.js.flow +16 -8
  24. package/lib/commonjs/screens/detail-loan/Info.js.map +1 -1
  25. package/lib/commonjs/screens/detail-loan/Payment.js +1 -1
  26. package/lib/commonjs/screens/detail-loan/Payment.js.flow +19 -7
  27. package/lib/commonjs/screens/detail-loan/Payment.js.map +1 -1
  28. package/lib/commonjs/screens/detail-loan/PaymentAll.js +1 -1
  29. package/lib/commonjs/screens/detail-loan/PaymentAll.js.flow +49 -9
  30. package/lib/commonjs/screens/detail-loan/PaymentAll.js.map +1 -1
  31. package/lib/commonjs/screens/detail-loan/PaymentInfo.js +1 -1
  32. package/lib/commonjs/screens/detail-loan/PaymentInfo.js.flow +735 -85
  33. package/lib/commonjs/screens/detail-loan/PaymentInfo.js.map +1 -1
  34. package/lib/commonjs/screens/detail-loan/ShowQrCode.js +1 -1
  35. package/lib/commonjs/screens/detail-loan/ShowQrCode.js.flow +372 -68
  36. package/lib/commonjs/screens/detail-loan/ShowQrCode.js.map +1 -1
  37. package/lib/commonjs/screens/detail-loan/index.js +1 -1
  38. package/lib/commonjs/screens/detail-loan/index.js.flow +37 -33
  39. package/lib/commonjs/screens/detail-loan/index.js.map +1 -1
  40. package/lib/commonjs/screens/guide-transfer-bank/TransferDetail.js +1 -1
  41. package/lib/commonjs/screens/guide-transfer-bank/TransferDetail.js.flow +41 -12
  42. package/lib/commonjs/screens/guide-transfer-bank/TransferDetail.js.map +1 -1
  43. package/lib/commonjs/screens/guide-transfer-bank/index.js +1 -1
  44. package/lib/commonjs/screens/guide-transfer-bank/index.js.flow +228 -237
  45. package/lib/commonjs/screens/guide-transfer-bank/index.js.map +1 -1
  46. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js +2 -0
  47. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.flow +845 -0
  48. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.map +1 -0
  49. package/lib/commonjs/screens/home/Store.js +1 -1
  50. package/lib/commonjs/screens/home/Store.js.flow +4 -1
  51. package/lib/commonjs/screens/home/Store.js.map +1 -1
  52. package/lib/commonjs/screens/home/index.js +1 -1
  53. package/lib/commonjs/screens/home/index.js.flow +23 -31
  54. package/lib/commonjs/screens/home/index.js.map +1 -1
  55. package/lib/commonjs/screens/liveness-v2/index.js +1 -1
  56. package/lib/commonjs/screens/liveness-v2/index.js.flow +4 -4
  57. package/lib/commonjs/screens/liveness-v2/index.js.map +1 -1
  58. package/lib/commonjs/screens/motobike/InfoLoanMotobike.js +2 -0
  59. package/lib/commonjs/screens/motobike/InfoLoanMotobike.js.flow +674 -0
  60. package/lib/commonjs/screens/motobike/InfoLoanMotobike.js.map +1 -0
  61. package/lib/commonjs/screens/motobike/PolicyF88.js +2 -0
  62. package/lib/commonjs/screens/motobike/PolicyF88.js.flow +131 -0
  63. package/lib/commonjs/screens/motobike/PolicyF88.js.map +1 -0
  64. package/lib/commonjs/screens/motobike/ReviewLoanMotobike.js +2 -0
  65. package/lib/commonjs/screens/motobike/ReviewLoanMotobike.js.flow +453 -0
  66. package/lib/commonjs/screens/motobike/ReviewLoanMotobike.js.map +1 -0
  67. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js +1 -1
  68. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js.flow +4 -0
  69. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js.map +1 -1
  70. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationBack.js +1 -1
  71. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationBack.js.flow +28 -12
  72. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationBack.js.map +1 -1
  73. package/lib/commonjs/services/api/api.js +1 -1
  74. package/lib/commonjs/services/api/api.js.flow +96 -0
  75. package/lib/commonjs/services/api/api.js.map +1 -1
  76. package/lib/module/assets/tts/f88.png +0 -0
  77. package/lib/module/assets/v3/11.svg +13 -0
  78. package/lib/module/assets/v3/12.svg +21 -0
  79. package/lib/module/assets/v3/index.js +1 -1
  80. package/lib/module/assets/v3/index.js.map +1 -1
  81. package/lib/module/components/MSelect.js +1 -1
  82. package/lib/module/components/MSelect.js.map +1 -1
  83. package/lib/module/components/keyboardspace/index.js +1 -1
  84. package/lib/module/components/keyboardspace/index.js.map +1 -1
  85. package/lib/module/components/select/index.js +1 -1
  86. package/lib/module/components/select/index.js.map +1 -1
  87. package/lib/module/navigation/primary-navigator.js +1 -1
  88. package/lib/module/navigation/primary-navigator.js.map +1 -1
  89. package/lib/module/screens/detail-loan/DetailLoanTima.js +1 -1
  90. package/lib/module/screens/detail-loan/DetailLoanTima.js.map +1 -1
  91. package/lib/module/screens/detail-loan/Info.js +1 -1
  92. package/lib/module/screens/detail-loan/Info.js.map +1 -1
  93. package/lib/module/screens/detail-loan/Payment.js +1 -1
  94. package/lib/module/screens/detail-loan/Payment.js.map +1 -1
  95. package/lib/module/screens/detail-loan/PaymentAll.js +1 -1
  96. package/lib/module/screens/detail-loan/PaymentAll.js.map +1 -1
  97. package/lib/module/screens/detail-loan/PaymentInfo.js +1 -1
  98. package/lib/module/screens/detail-loan/PaymentInfo.js.map +1 -1
  99. package/lib/module/screens/detail-loan/ShowQrCode.js +1 -1
  100. package/lib/module/screens/detail-loan/ShowQrCode.js.map +1 -1
  101. package/lib/module/screens/detail-loan/index.js +1 -1
  102. package/lib/module/screens/detail-loan/index.js.map +1 -1
  103. package/lib/module/screens/guide-transfer-bank/TransferDetail.js +1 -1
  104. package/lib/module/screens/guide-transfer-bank/TransferDetail.js.map +1 -1
  105. package/lib/module/screens/guide-transfer-bank/index.js +1 -1
  106. package/lib/module/screens/guide-transfer-bank/index.js.map +1 -1
  107. package/lib/module/screens/home/ItemMotoBikeLoan.js +2 -0
  108. package/lib/module/screens/home/ItemMotoBikeLoan.js.map +1 -0
  109. package/lib/module/screens/home/Store.js +1 -1
  110. package/lib/module/screens/home/Store.js.map +1 -1
  111. package/lib/module/screens/home/index.js +1 -1
  112. package/lib/module/screens/home/index.js.map +1 -1
  113. package/lib/module/screens/liveness-v2/index.js +1 -1
  114. package/lib/module/screens/liveness-v2/index.js.map +1 -1
  115. package/lib/module/screens/motobike/InfoLoanMotobike.js +2 -0
  116. package/lib/module/screens/motobike/InfoLoanMotobike.js.map +1 -0
  117. package/lib/module/screens/motobike/PolicyF88.js +2 -0
  118. package/lib/module/screens/motobike/PolicyF88.js.map +1 -0
  119. package/lib/module/screens/motobike/ReviewLoanMotobike.js +2 -0
  120. package/lib/module/screens/motobike/ReviewLoanMotobike.js.map +1 -0
  121. package/lib/module/screens/toan-trinh-so/TTSSelfie.js +1 -1
  122. package/lib/module/screens/toan-trinh-so/TTSSelfie.js.map +1 -1
  123. package/lib/module/screens/toan-trinh-so/VehicleRegistrationBack.js +1 -1
  124. package/lib/module/screens/toan-trinh-so/VehicleRegistrationBack.js.map +1 -1
  125. package/lib/module/services/api/api.js +1 -1
  126. package/lib/module/services/api/api.js.map +1 -1
  127. package/lib/typescript/assets/v3/index.d.ts +3 -1
  128. package/lib/typescript/assets/v3/index.d.ts.map +1 -1
  129. package/lib/typescript/components/MSelect.d.ts.map +1 -1
  130. package/lib/typescript/components/keyboardspace/index.d.ts.map +1 -1
  131. package/lib/typescript/components/select/index.d.ts.map +1 -1
  132. package/lib/typescript/navigation/primary-navigator.d.ts +3 -0
  133. package/lib/typescript/navigation/primary-navigator.d.ts.map +1 -1
  134. package/lib/typescript/screens/detail-loan/DetailLoanTima.d.ts.map +1 -1
  135. package/lib/typescript/screens/detail-loan/Info.d.ts.map +1 -1
  136. package/lib/typescript/screens/detail-loan/Payment.d.ts.map +1 -1
  137. package/lib/typescript/screens/detail-loan/PaymentAll.d.ts.map +1 -1
  138. package/lib/typescript/screens/detail-loan/PaymentInfo.d.ts.map +1 -1
  139. package/lib/typescript/screens/detail-loan/ShowQrCode.d.ts.map +1 -1
  140. package/lib/typescript/screens/detail-loan/index.d.ts.map +1 -1
  141. package/lib/typescript/screens/guide-transfer-bank/TransferDetail.d.ts.map +1 -1
  142. package/lib/typescript/screens/guide-transfer-bank/index.d.ts.map +1 -1
  143. package/lib/typescript/screens/home/ItemMotoBikeLoan.d.ts +8 -0
  144. package/lib/typescript/screens/home/ItemMotoBikeLoan.d.ts.map +1 -0
  145. package/lib/typescript/screens/home/Store.d.ts.map +1 -1
  146. package/lib/typescript/screens/home/index.d.ts.map +1 -1
  147. package/lib/typescript/screens/motobike/InfoLoanMotobike.d.ts +2 -0
  148. package/lib/typescript/screens/motobike/InfoLoanMotobike.d.ts.map +1 -0
  149. package/lib/typescript/screens/motobike/PolicyF88.d.ts +2 -0
  150. package/lib/typescript/screens/motobike/PolicyF88.d.ts.map +1 -0
  151. package/lib/typescript/screens/motobike/ReviewLoanMotobike.d.ts +2 -0
  152. package/lib/typescript/screens/motobike/ReviewLoanMotobike.d.ts.map +1 -0
  153. package/lib/typescript/screens/toan-trinh-so/TTSSelfie.d.ts.map +1 -1
  154. package/lib/typescript/screens/toan-trinh-so/VehicleRegistrationBack.d.ts.map +1 -1
  155. package/lib/typescript/services/api/api.d.ts +96 -0
  156. package/lib/typescript/services/api/api.d.ts.map +1 -1
  157. package/package.json +2 -1
  158. package/src/assets/tts/f88.png +0 -0
  159. package/src/assets/v3/11.svg +13 -0
  160. package/src/assets/v3/12.svg +21 -0
  161. package/src/assets/v3/index.tsx +4 -0
  162. package/src/components/MSelect.tsx +4 -2
  163. package/src/components/keyboardspace/index.tsx +0 -2
  164. package/src/components/select/index.tsx +4 -2
  165. package/src/navigation/primary-navigator.tsx +15 -0
  166. package/src/screens/detail-loan/DetailLoanTima.tsx +29 -4
  167. package/src/screens/detail-loan/Info.tsx +16 -8
  168. package/src/screens/detail-loan/Payment.tsx +19 -7
  169. package/src/screens/detail-loan/PaymentAll.tsx +49 -9
  170. package/src/screens/detail-loan/PaymentInfo.tsx +735 -85
  171. package/src/screens/detail-loan/ShowQrCode.tsx +372 -68
  172. package/src/screens/detail-loan/index.tsx +37 -33
  173. package/src/screens/guide-transfer-bank/TransferDetail.tsx +41 -12
  174. package/src/screens/guide-transfer-bank/index.tsx +228 -237
  175. package/src/screens/home/ItemMotoBikeLoan.tsx +845 -0
  176. package/src/screens/home/Store.tsx +4 -1
  177. package/src/screens/home/index.tsx +23 -31
  178. package/src/screens/liveness-v2/index.tsx +4 -4
  179. package/src/screens/motobike/InfoLoanMotobike.tsx +674 -0
  180. package/src/screens/motobike/PolicyF88.tsx +131 -0
  181. package/src/screens/motobike/ReviewLoanMotobike.tsx +453 -0
  182. package/src/screens/toan-trinh-so/TTSSelfie.tsx +4 -0
  183. package/src/screens/toan-trinh-so/VehicleRegistrationBack.tsx +28 -12
  184. package/src/services/api/api.ts +96 -0
  185. package/lib/commonjs/components/CommonSelect.js +0 -2
  186. package/lib/commonjs/components/CommonSelect.js.flow +0 -12
  187. package/lib/commonjs/components/CommonSelect.js.map +0 -1
  188. package/lib/module/components/CommonSelect.js +0 -2
  189. package/lib/module/components/CommonSelect.js.map +0 -1
  190. package/lib/typescript/components/CommonSelect.d.ts +0 -8
  191. package/lib/typescript/components/CommonSelect.d.ts.map +0 -1
  192. package/src/components/CommonSelect.tsx +0 -12
@@ -0,0 +1,845 @@
1
+ //@ts-nocheck
2
+ import React, { useEffect } from 'react';
3
+ import { Alert, Image, TouchableOpacity, View } from 'react-native';
4
+ import LinearGradient from 'react-native-linear-gradient';
5
+ import { IconMoney2 } from '../../assets/svgs';
6
+ import { MText } from '../../components/MText';
7
+ import { formatMoney } from '../../utils';
8
+ import {
9
+ Icon1,
10
+ Icon10,
11
+ Icon11,
12
+ Icon12,
13
+ Icon2,
14
+ Icon3,
15
+ Icon4,
16
+ Icon5,
17
+ Icon7,
18
+ Icon8,
19
+ Icon9,
20
+ IconSuccess,
21
+ } from '../../assets/v3';
22
+ import { ScreenNames } from '../../navigation';
23
+ import {
24
+ CheckBox,
25
+ CheckBoxActive,
26
+ Close2Icon,
27
+ IconCheck,
28
+ Info,
29
+ } from '../../assets/icons';
30
+ import Modal from 'react-native-modal';
31
+ import { Api } from '../../services/api';
32
+
33
+ interface IProps {
34
+ item?: any;
35
+ navigation?: any;
36
+ callback: () => void;
37
+ }
38
+ export default function ItemMotoBikeLoan({
39
+ item,
40
+ navigation,
41
+ callback,
42
+ }: IProps) {
43
+ const [showModal, setShowModal] = React.useState(false);
44
+ const [showPolicy, setShowPolicy] = React.useState(false);
45
+ const [check, setCheck] = React.useState(false);
46
+ const [showModal2, setShowModal2] = React.useState(false);
47
+ const [isLoading, setIsLoading] = React.useState(false);
48
+
49
+ const confirm = async () => {
50
+ try {
51
+ setIsLoading(true);
52
+ const response = await Api.getInstance().confirmF88({
53
+ loanBriefId: item?.id,
54
+ });
55
+ if (response.kind === 'ok' && response.data?.meta?.errorCode === 200) {
56
+ setShowPolicy(false);
57
+ callback();
58
+ } else {
59
+ Alert.alert(
60
+ 'Thông báo',
61
+ response?.data?.meta?.errorMessage ||
62
+ 'Có lỗi xảy ra, vui lòng thử lại sau!'
63
+ );
64
+ }
65
+ } catch (error) {
66
+ Alert.alert('Thông báo', 'Có lỗi xảy ra, vui lòng thử lại sau');
67
+ } finally {
68
+ setIsLoading(false);
69
+ }
70
+ };
71
+
72
+ useEffect(() => {
73
+ if (item?.step === 4) {
74
+ setTimeout(() => {
75
+ setShowPolicy(true);
76
+ }, 300);
77
+ } else if (item?.step === 5) {
78
+ setTimeout(() => {
79
+ setShowModal2(true);
80
+ }, 300);
81
+ }
82
+ }, [item]);
83
+
84
+ return (
85
+ <View>
86
+ <View
87
+ style={{
88
+ backgroundColor: '#FFFFFF',
89
+ paddingHorizontal: 16,
90
+ marginBottom: 16,
91
+ borderRadius: 8,
92
+ borderWidth: 0.5,
93
+ borderColor: '#E0E0E0',
94
+ }}
95
+ >
96
+ <LinearGradient
97
+ colors={['#FF8E4F', '#EF592E']}
98
+ style={{
99
+ borderTopLeftRadius: 8,
100
+ borderTopRightRadius: 8,
101
+ marginHorizontal: -16,
102
+ }}
103
+ >
104
+ <View
105
+ style={{
106
+ flexDirection: 'row',
107
+ justifyContent: 'space-between',
108
+ alignItems: 'center',
109
+ paddingHorizontal: 16,
110
+ paddingVertical: 8,
111
+ }}
112
+ >
113
+ <View
114
+ style={{
115
+ flexDirection: 'row',
116
+ alignItems: 'center',
117
+ gap: 8,
118
+ }}
119
+ >
120
+ <IconMoney2 />
121
+ <MText
122
+ style={{
123
+ fontSize: 12,
124
+ color: 'white',
125
+ }}
126
+ >
127
+ HD-{item?.id}
128
+ </MText>
129
+ </View>
130
+ <MText
131
+ style={{
132
+ fontSize: 12,
133
+ color: 'white',
134
+ fontWeight: 'bold',
135
+ }}
136
+ >
137
+ {formatMoney(item?.loanAmount)}đ
138
+ </MText>
139
+ </View>
140
+ </LinearGradient>
141
+ <View
142
+ style={{
143
+ flexDirection: 'row',
144
+ paddingVertical: 16,
145
+ alignItems: 'center',
146
+ gap: 16,
147
+ }}
148
+ >
149
+ <TouchableOpacity
150
+ disabled={item?.step > 1 ? true : false}
151
+ onPress={() => {
152
+ if (item?.step === 0) {
153
+ navigation.push(ScreenNames.OCR, {
154
+ loan: item,
155
+ front: true,
156
+ });
157
+ } else {
158
+ navigation.push(ScreenNames.InfoLoanMotobike, {
159
+ loan: item,
160
+ });
161
+ }
162
+ }}
163
+ style={{
164
+ backgroundColor:
165
+ item?.step === 0 || item?.step === 1 ? '#FFF3E3' : '#ECFFE8',
166
+ borderRadius: 8,
167
+ paddingVertical: 8,
168
+ paddingHorizontal: 12,
169
+ flex: 1,
170
+ borderWidth: 1,
171
+ borderColor:
172
+ item?.step === 0 || item?.step === 1 ? '#FFF3E3' : '#B1EB95',
173
+ }}
174
+ >
175
+ <LinearGradient
176
+ colors={
177
+ item?.step === 0 || item?.step === 1
178
+ ? ['#FF8E4F', '#EF592E']
179
+ : ['#28A745', '#28A745']
180
+ }
181
+ style={{
182
+ paddingVertical: 2,
183
+ borderRadius: 40,
184
+ flexDirection: 'row',
185
+ alignItems: 'center',
186
+ justifyContent: 'center',
187
+ width: 50,
188
+ }}
189
+ >
190
+ <MText style={{ fontSize: 8, color: 'white' }}>Bước 1</MText>
191
+ </LinearGradient>
192
+ <View
193
+ style={{
194
+ marginTop: 8,
195
+ flexDirection: 'row',
196
+ alignItems: 'center',
197
+ gap: 4,
198
+ }}
199
+ >
200
+ {item?.step === 0 || item?.step === 1 ? (
201
+ <Icon3 />
202
+ ) : (
203
+ <IconSuccess />
204
+ )}
205
+ <MText
206
+ style={{
207
+ fontSize: 10,
208
+ }}
209
+ >
210
+ Thông tin cá nhân
211
+ </MText>
212
+ </View>
213
+ </TouchableOpacity>
214
+ <TouchableOpacity
215
+ onPress={() => {
216
+ if (item?.step === 2) {
217
+ navigation.push(ScreenNames.VehicleCamera, {
218
+ loan: item,
219
+ front: true,
220
+ });
221
+ } else {
222
+ navigation.push(ScreenNames.ReviewLoanMotobike, {
223
+ loan: item,
224
+ });
225
+ }
226
+ }}
227
+ disabled={item?.step === 2 || item?.step === 3 ? false : true}
228
+ style={{
229
+ backgroundColor:
230
+ item?.step < 2
231
+ ? '#FFFFFF'
232
+ : item?.step === 2 || item?.step === 3
233
+ ? '#FFF3E3'
234
+ : '#ECFFE8',
235
+ borderRadius: 8,
236
+ paddingVertical: 8,
237
+ paddingHorizontal: 12,
238
+ flex: 1,
239
+ borderWidth: 1,
240
+ borderColor:
241
+ item?.step < 2
242
+ ? '#F2F2F7'
243
+ : item?.step === 2 || item?.step === 3
244
+ ? '#FFF3E3'
245
+ : '#B1EB95',
246
+ }}
247
+ >
248
+ <LinearGradient
249
+ colors={
250
+ item?.step < 2
251
+ ? ['#C7C7CC', '#C7C7CC']
252
+ : item?.step === 2 || item?.step === 3
253
+ ? ['#FF8E4F', '#EF592E']
254
+ : ['#28A745', '#28A745']
255
+ }
256
+ style={{
257
+ paddingVertical: 2,
258
+ borderRadius: 40,
259
+ flexDirection: 'row',
260
+ alignItems: 'center',
261
+ justifyContent: 'center',
262
+ width: 50,
263
+ }}
264
+ >
265
+ <MText style={{ fontSize: 8, color: 'white' }}>Bước 2</MText>
266
+ </LinearGradient>
267
+ <View
268
+ style={{
269
+ marginTop: 8,
270
+ flexDirection: 'row',
271
+ alignItems: 'center',
272
+ gap: 4,
273
+ }}
274
+ >
275
+ {item?.step < 2 ? (
276
+ <Icon11 />
277
+ ) : item?.step === 2 || item?.step === 3 ? (
278
+ <Icon12 />
279
+ ) : (
280
+ <IconSuccess />
281
+ )}
282
+ <MText
283
+ style={{
284
+ fontSize: 10,
285
+ }}
286
+ >
287
+ Thông tin xe máy
288
+ </MText>
289
+ </View>
290
+ </TouchableOpacity>
291
+ </View>
292
+
293
+ <View
294
+ style={{
295
+ backgroundColor: '#EEF7FF',
296
+ flexDirection: 'row',
297
+ alignItems: 'center',
298
+ gap: 8,
299
+ borderRadius: 4,
300
+ paddingHorizontal: 8,
301
+ paddingVertical: 10,
302
+ }}
303
+ >
304
+ <MText
305
+ style={{
306
+ fontSize: 10,
307
+ flex: 1,
308
+ }}
309
+ >
310
+ Hướng dẫn các bước hoàn thiện đơn vay
311
+ </MText>
312
+ <TouchableOpacity onPress={() => setShowModal(true)}>
313
+ <MText
314
+ style={{
315
+ fontSize: 10,
316
+ color: '#2F80ED',
317
+ textDecorationLine: 'underline',
318
+ }}
319
+ >
320
+ Xem thêm
321
+ </MText>
322
+ </TouchableOpacity>
323
+ </View>
324
+ <View
325
+ style={{
326
+ flexDirection: 'row',
327
+ paddingBottom: 16,
328
+ marginTop: 16,
329
+ }}
330
+ >
331
+ <View style={{ flex: 1, paddingRight: 24 }}>
332
+ <MText
333
+ style={{
334
+ color: '#999999',
335
+ fontSize: 12,
336
+ }}
337
+ >
338
+ Trạng thái
339
+ </MText>
340
+ <MText
341
+ style={{
342
+ fontSize: 12,
343
+ fontWeight: 'bold',
344
+ }}
345
+ >
346
+ {item?.step <= 1
347
+ ? 'Chờ cập nhật thông tin cá nhân'
348
+ : item?.step === 2 || item?.step === 3
349
+ ? `Chờ cập nhật thông tin xe máy`
350
+ : 'Đơn vay đang chờ phê duyệt'}
351
+ </MText>
352
+ </View>
353
+ {item?.step <= 1 ? (
354
+ <TouchableOpacity
355
+ onPress={() => {
356
+ if (item?.step === 0) {
357
+ navigation.push(ScreenNames.OCR, {
358
+ loan: item,
359
+ front: true,
360
+ });
361
+ } else {
362
+ navigation.push(ScreenNames.InfoLoanMotobike, {
363
+ loan: item,
364
+ });
365
+ }
366
+ }}
367
+ >
368
+ <LinearGradient
369
+ colors={['#FF8E4F', '#EF592E']}
370
+ style={{
371
+ height: 30,
372
+ alignItems: 'center',
373
+ justifyContent: 'center',
374
+ borderRadius: 24,
375
+ paddingHorizontal: 10,
376
+ }}
377
+ >
378
+ <MText
379
+ style={{
380
+ color: 'white',
381
+ fontSize: 12,
382
+ }}
383
+ >
384
+ Cập nhật
385
+ </MText>
386
+ </LinearGradient>
387
+ </TouchableOpacity>
388
+ ) : item?.step === 2 || item?.step === 3 ? (
389
+ <TouchableOpacity
390
+ onPress={() => {
391
+ if (item?.step === 2) {
392
+ navigation.push(ScreenNames.VehicleCamera, {
393
+ loan: item,
394
+ front: true,
395
+ });
396
+ } else {
397
+ navigation.push(ScreenNames.ReviewLoanMotobike, {
398
+ loan: item,
399
+ });
400
+ }
401
+ }}
402
+ >
403
+ <LinearGradient
404
+ colors={['#FF8E4F', '#EF592E']}
405
+ style={{
406
+ height: 30,
407
+ alignItems: 'center',
408
+ justifyContent: 'center',
409
+ borderRadius: 24,
410
+ paddingHorizontal: 10,
411
+ }}
412
+ >
413
+ <MText
414
+ style={{
415
+ color: 'white',
416
+ fontSize: 12,
417
+ }}
418
+ >
419
+ Cập nhật
420
+ </MText>
421
+ </LinearGradient>
422
+ </TouchableOpacity>
423
+ ) : (
424
+ <></>
425
+ )}
426
+ </View>
427
+ {item?.step !== 5 ? (
428
+ <View
429
+ style={{
430
+ flexDirection: 'row',
431
+ alignItems: 'center',
432
+ gap: 8,
433
+ backgroundColor: '#FFF2F2',
434
+ marginHorizontal: -16,
435
+ paddingVertical: 10,
436
+ borderBottomRightRadius: 8,
437
+ borderBottomLeftRadius: 8,
438
+ paddingHorizontal: 10,
439
+ }}
440
+ >
441
+ <Info />
442
+ <MText
443
+ style={[
444
+ {
445
+ fontSize: 10,
446
+ color: '#E40010',
447
+ flex: 1,
448
+ },
449
+ ]}
450
+ >
451
+ {item?.step <= 1
452
+ ? 'Vui lòng cập nhật thông tin cá nhân để được giải ngân sớm nhất!'
453
+ : item?.step === 2 || item?.step === 3
454
+ ? `Vui lòng cập nhật thông tin xe để được giải ngân sớm nhất!`
455
+ : 'Đơn vay đang chờ phê duyệt'}
456
+ </MText>
457
+ </View>
458
+ ) : (
459
+ <></>
460
+ )}
461
+ </View>
462
+
463
+ <Modal isVisible={showPolicy} backdropColor="#000" backdropOpacity={0.5}>
464
+ <View
465
+ style={{
466
+ borderRadius: 12,
467
+ backgroundColor: 'white',
468
+ padding: 16,
469
+ }}
470
+ >
471
+ <View
472
+ style={{
473
+ flexDirection: 'row-reverse',
474
+ }}
475
+ >
476
+ <TouchableOpacity
477
+ onPress={() => setShowPolicy(false)}
478
+ style={{
479
+ width: 30,
480
+ height: 30,
481
+ alignItems: 'center',
482
+ justifyContent: 'center',
483
+ }}
484
+ >
485
+ <Close2Icon />
486
+ </TouchableOpacity>
487
+ </View>
488
+ <MText
489
+ style={{ fontSize: 16, fontWeight: 'bold', textAlign: 'center' }}
490
+ >
491
+ Tiếp tục xử lý đơn vay của bạn
492
+ </MText>
493
+ <View
494
+ style={{
495
+ marginTop: 16,
496
+ alignItems: 'center',
497
+ }}
498
+ >
499
+ <Image
500
+ source={require('../../assets/tts/f88.png')}
501
+ style={{
502
+ height: 60,
503
+ resizeMode: 'contain',
504
+ }}
505
+ />
506
+ </View>
507
+ <MText
508
+ style={{ color: '#828282', textAlign: 'center', marginTop: 16 }}
509
+ >
510
+ Tima sẽ chuyển thông tin đơn vay của bạn sang đối tác Công ty Cổ
511
+ phần Kinh doanh F88 để hoàn thiện thủ tục giải ngân. Khi chọn “Đồng
512
+ ý & Tiếp tục”, bạn xác nhận đồng ý cho việc thu thập, sử dụng và
513
+ chia sẻ thông tin theo quy định về bảo vệ dữ liệu cá nhân.
514
+ </MText>
515
+ <View
516
+ style={{
517
+ flexDirection: 'row',
518
+ alignItems: 'center',
519
+ marginTop: 24,
520
+ gap: 8,
521
+ }}
522
+ >
523
+ <TouchableOpacity
524
+ onPress={() => {
525
+ setCheck(!check);
526
+ }}
527
+ >
528
+ {check ? <CheckBoxActive /> : <CheckBox />}
529
+ </TouchableOpacity>
530
+ <MText>
531
+ Tôi đồng ý với{' '}
532
+ <MText
533
+ style={{ color: '#2F80ED' }}
534
+ onPress={() => {
535
+ setShowPolicy(false);
536
+ navigation.navigate(ScreenNames.PolicyF88, { item });
537
+ }}
538
+ >
539
+ điều kiện và điều khoản
540
+ </MText>
541
+ </MText>
542
+ </View>
543
+ <View>
544
+ <TouchableOpacity
545
+ disabled={check || isLoading ? false : true}
546
+ onPress={() => {
547
+ confirm();
548
+ }}
549
+ >
550
+ <LinearGradient
551
+ colors={check ? ['#FF8E4F', '#EF592E'] : ['#E0E0E0', '#E0E0E0']}
552
+ style={{
553
+ height: 40,
554
+ alignItems: 'center',
555
+ justifyContent: 'center',
556
+ borderRadius: 24,
557
+ paddingHorizontal: 10,
558
+ marginTop: 24,
559
+ }}
560
+ >
561
+ <MText
562
+ style={{
563
+ color: 'white',
564
+ fontWeight: 'bold',
565
+ }}
566
+ >
567
+ Đồng ý & Tiếp tục
568
+ </MText>
569
+ </LinearGradient>
570
+ </TouchableOpacity>
571
+ </View>
572
+ </View>
573
+ </Modal>
574
+
575
+ <Modal isVisible={showModal2} backdropColor="#000" backdropOpacity={0.5}>
576
+ <View
577
+ style={{
578
+ borderRadius: 12,
579
+ backgroundColor: 'white',
580
+ }}
581
+ >
582
+ <View
583
+ style={{
584
+ flexDirection: 'row-reverse',
585
+ }}
586
+ >
587
+ <TouchableOpacity
588
+ onPress={() => setShowModal2(false)}
589
+ style={{
590
+ width: 30,
591
+ height: 30,
592
+ alignItems: 'center',
593
+ justifyContent: 'center',
594
+ }}
595
+ >
596
+ <Close2Icon />
597
+ </TouchableOpacity>
598
+ </View>
599
+ <Image
600
+ source={require('../../assets/img/Frame1000011990.png')}
601
+ style={{
602
+ height: 230,
603
+ resizeMode: 'contain',
604
+ width: '100%',
605
+ }}
606
+ />
607
+ <View
608
+ style={{
609
+ paddingHorizontal: 24,
610
+ marginTop: 24,
611
+ flexDirection: 'column',
612
+ gap: 8,
613
+ alignItems: 'center',
614
+ }}
615
+ >
616
+ <MText
617
+ style={{
618
+ fontSize: 16,
619
+ fontWeight: 'bold',
620
+ textAlign: 'center',
621
+ }}
622
+ >
623
+ Đơn vay đang chờ phê duyệt
624
+ </MText>
625
+ <MText
626
+ style={{
627
+ fontSize: 14,
628
+ textAlign: 'center',
629
+ color: '#828282',
630
+ }}
631
+ >
632
+ Vui lòng chờ ít phút sau đó thực hiện eKYC để hoàn thiện khoản
633
+ vay!
634
+ </MText>
635
+ <TouchableOpacity
636
+ onPress={() => setShowModal2(false)}
637
+ style={{
638
+ borderWidth: 1,
639
+ borderColor: '#EF592E',
640
+ borderRadius: 24,
641
+ height: 40,
642
+ alignItems: 'center',
643
+ justifyContent: 'center',
644
+ paddingHorizontal: 50,
645
+ marginBottom: 24,
646
+ marginTop: 16,
647
+ }}
648
+ >
649
+ <MText
650
+ style={{
651
+ color: '#EF592E',
652
+ }}
653
+ >
654
+ Đã hiểu
655
+ </MText>
656
+ </TouchableOpacity>
657
+ </View>
658
+ </View>
659
+ </Modal>
660
+
661
+ <Modal
662
+ isVisible={showModal}
663
+ backdropColor="#000"
664
+ backdropOpacity={0.5}
665
+ onBackdropPress={() => setShowModal(false)}
666
+ >
667
+ <View
668
+ style={{
669
+ borderRadius: 12,
670
+ backgroundColor: 'white',
671
+ padding: 16,
672
+ }}
673
+ >
674
+ <MText
675
+ style={{
676
+ fontSize: 16,
677
+ fontWeight: 'bold',
678
+ textAlign: 'center',
679
+ marginTop: 16,
680
+ }}
681
+ >
682
+ Các bước hoàn thiện khoản vay
683
+ </MText>
684
+ <MText
685
+ style={{
686
+ textAlign: 'center',
687
+ color: '#828282',
688
+ }}
689
+ >
690
+ Thực hiện theo các bước sau
691
+ </MText>
692
+ <View>
693
+ <View
694
+ style={{
695
+ flexDirection: 'row',
696
+ alignItems: 'center',
697
+ gap: 8,
698
+ marginTop: 16,
699
+ }}
700
+ >
701
+ <View
702
+ style={{
703
+ width: 30,
704
+ height: 30,
705
+ borderRadius: 4,
706
+ backgroundColor: '#FFF2F2',
707
+ alignItems: 'center',
708
+ justifyContent: 'center',
709
+ }}
710
+ >
711
+ <Icon2 />
712
+ </View>
713
+ <View>
714
+ <MText
715
+ style={{ fontWeight: 'bold', fontSize: 8, color: '#EF592E' }}
716
+ >
717
+ Bước 1
718
+ </MText>
719
+ <MText style={{ fontWeight: 'bold', fontSize: 10 }}>
720
+ THÔNG TIN CÁ NHÂN
721
+ </MText>
722
+ </View>
723
+ </View>
724
+ <MText style={{ fontSize: 10, marginTop: 5 }}>
725
+ Thực hiện OCR giấy tờ CCCD/CC và chụp 1 ảnh chân dung
726
+ </MText>
727
+ </View>
728
+ <View>
729
+ <View
730
+ style={{
731
+ flexDirection: 'row',
732
+ alignItems: 'center',
733
+ gap: 8,
734
+ marginTop: 16,
735
+ }}
736
+ >
737
+ <View
738
+ style={{
739
+ width: 30,
740
+ height: 30,
741
+ borderRadius: 4,
742
+ backgroundColor: '#FFF2F2',
743
+ alignItems: 'center',
744
+ justifyContent: 'center',
745
+ }}
746
+ >
747
+ <Icon3 />
748
+ </View>
749
+ <View>
750
+ <MText
751
+ style={{ fontWeight: 'bold', fontSize: 8, color: '#EF592E' }}
752
+ >
753
+ Bước 2
754
+ </MText>
755
+ <MText style={{ fontWeight: 'bold', fontSize: 10 }}>
756
+ THÔNG TIN XE MÁY
757
+ </MText>
758
+ </View>
759
+ </View>
760
+ <MText style={{ fontSize: 10, marginTop: 5 }}>
761
+ Chụp 2 mặt hình ảnh Đăng ký xe
762
+ </MText>
763
+ </View>
764
+
765
+ <View
766
+ style={{
767
+ backgroundColor: '#FFF8F2',
768
+ padding: 12,
769
+ borderRadius: 8,
770
+ marginTop: 16,
771
+ }}
772
+ >
773
+ <MText style={{ fontSize: 12, fontWeight: 'bold' }}>
774
+ Ý nghĩa biểu tượng
775
+ </MText>
776
+ <View
777
+ style={{
778
+ flexDirection: 'row',
779
+ alignItems: 'center',
780
+ gap: 16,
781
+ marginTop: 8,
782
+ }}
783
+ >
784
+ <MText style={{ fontSize: 10, width: '35%' }}>
785
+ Đang cần thực hiện
786
+ </MText>
787
+ <View
788
+ style={{ flexDirection: 'row', alignItems: 'center', gap: 8 }}
789
+ >
790
+ <Icon2 />
791
+ <Icon3 />
792
+ <Icon4 />
793
+ <Icon5 />
794
+ </View>
795
+ </View>
796
+ <View
797
+ style={{
798
+ flexDirection: 'row',
799
+ alignItems: 'center',
800
+ gap: 16,
801
+ marginTop: 8,
802
+ }}
803
+ >
804
+ <MText style={{ fontSize: 10, width: '35%' }}>
805
+ Chưa thể thực hiện
806
+ </MText>
807
+ <View
808
+ style={{ flexDirection: 'row', alignItems: 'center', gap: 8 }}
809
+ >
810
+ <Icon7 />
811
+ <Icon8 />
812
+ <Icon9 />
813
+ <Icon10 />
814
+ </View>
815
+ </View>
816
+ <View
817
+ style={{
818
+ flexDirection: 'row',
819
+ alignItems: 'center',
820
+ gap: 16,
821
+ marginTop: 8,
822
+ }}
823
+ >
824
+ <MText style={{ fontSize: 10, width: '35%' }}>
825
+ Đã hoàn thành
826
+ </MText>
827
+ <View
828
+ style={{ flexDirection: 'row', alignItems: 'center', gap: 8 }}
829
+ >
830
+ <IconSuccess />
831
+ </View>
832
+ </View>
833
+ </View>
834
+
835
+ <TouchableOpacity
836
+ style={{ position: 'absolute', top: 16, right: 16 }}
837
+ onPress={() => setShowModal(false)}
838
+ >
839
+ <Close2Icon />
840
+ </TouchableOpacity>
841
+ </View>
842
+ </Modal>
843
+ </View>
844
+ );
845
+ }