react-native-timacare 3.3.20 → 3.3.22

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 (116) 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/ModalOptionLoanDigital.js +1 -1
  11. package/lib/commonjs/components/ModalOptionLoanDigital.js.flow +7 -15
  12. package/lib/commonjs/components/ModalOptionLoanDigital.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/home/ItemMotoBikeLoan.js +2 -0
  20. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.flow +845 -0
  21. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.map +1 -0
  22. package/lib/commonjs/screens/home/index.js +1 -1
  23. package/lib/commonjs/screens/home/index.js.flow +8 -3
  24. package/lib/commonjs/screens/home/index.js.map +1 -1
  25. package/lib/commonjs/screens/motobike/InfoLoanMotobike.js +2 -0
  26. package/lib/commonjs/screens/motobike/InfoLoanMotobike.js.flow +674 -0
  27. package/lib/commonjs/screens/motobike/InfoLoanMotobike.js.map +1 -0
  28. package/lib/commonjs/screens/motobike/PolicyF88.js +2 -0
  29. package/lib/commonjs/screens/motobike/PolicyF88.js.flow +131 -0
  30. package/lib/commonjs/screens/motobike/PolicyF88.js.map +1 -0
  31. package/lib/commonjs/screens/motobike/ReviewLoanMotobike.js +2 -0
  32. package/lib/commonjs/screens/motobike/ReviewLoanMotobike.js.flow +453 -0
  33. package/lib/commonjs/screens/motobike/ReviewLoanMotobike.js.map +1 -0
  34. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js +1 -1
  35. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js.flow +4 -0
  36. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js.map +1 -1
  37. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationBack.js +1 -1
  38. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationBack.js.flow +28 -12
  39. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationBack.js.map +1 -1
  40. package/lib/commonjs/services/api/api.js +1 -1
  41. package/lib/commonjs/services/api/api.js.flow +80 -0
  42. package/lib/commonjs/services/api/api.js.map +1 -1
  43. package/lib/module/assets/tts/f88.png +0 -0
  44. package/lib/module/assets/v3/11.svg +13 -0
  45. package/lib/module/assets/v3/12.svg +21 -0
  46. package/lib/module/assets/v3/index.js +1 -1
  47. package/lib/module/assets/v3/index.js.map +1 -1
  48. package/lib/module/components/MSelect.js +1 -1
  49. package/lib/module/components/MSelect.js.map +1 -1
  50. package/lib/module/components/ModalOptionLoanDigital.js +1 -1
  51. package/lib/module/components/ModalOptionLoanDigital.js.map +1 -1
  52. package/lib/module/components/select/index.js +1 -1
  53. package/lib/module/components/select/index.js.map +1 -1
  54. package/lib/module/navigation/primary-navigator.js +1 -1
  55. package/lib/module/navigation/primary-navigator.js.map +1 -1
  56. package/lib/module/screens/home/ItemMotoBikeLoan.js +2 -0
  57. package/lib/module/screens/home/ItemMotoBikeLoan.js.map +1 -0
  58. package/lib/module/screens/home/index.js +1 -1
  59. package/lib/module/screens/home/index.js.map +1 -1
  60. package/lib/module/screens/motobike/InfoLoanMotobike.js +2 -0
  61. package/lib/module/screens/motobike/InfoLoanMotobike.js.map +1 -0
  62. package/lib/module/screens/motobike/PolicyF88.js +2 -0
  63. package/lib/module/screens/motobike/PolicyF88.js.map +1 -0
  64. package/lib/module/screens/motobike/ReviewLoanMotobike.js +2 -0
  65. package/lib/module/screens/motobike/ReviewLoanMotobike.js.map +1 -0
  66. package/lib/module/screens/toan-trinh-so/TTSSelfie.js +1 -1
  67. package/lib/module/screens/toan-trinh-so/TTSSelfie.js.map +1 -1
  68. package/lib/module/screens/toan-trinh-so/VehicleRegistrationBack.js +1 -1
  69. package/lib/module/screens/toan-trinh-so/VehicleRegistrationBack.js.map +1 -1
  70. package/lib/module/services/api/api.js +1 -1
  71. package/lib/module/services/api/api.js.map +1 -1
  72. package/lib/typescript/assets/v3/index.d.ts +3 -1
  73. package/lib/typescript/assets/v3/index.d.ts.map +1 -1
  74. package/lib/typescript/components/MSelect.d.ts.map +1 -1
  75. package/lib/typescript/components/ModalOptionLoanDigital.d.ts.map +1 -1
  76. package/lib/typescript/components/select/index.d.ts.map +1 -1
  77. package/lib/typescript/navigation/primary-navigator.d.ts +3 -0
  78. package/lib/typescript/navigation/primary-navigator.d.ts.map +1 -1
  79. package/lib/typescript/screens/home/ItemMotoBikeLoan.d.ts +8 -0
  80. package/lib/typescript/screens/home/ItemMotoBikeLoan.d.ts.map +1 -0
  81. package/lib/typescript/screens/home/index.d.ts.map +1 -1
  82. package/lib/typescript/screens/motobike/InfoLoanMotobike.d.ts +2 -0
  83. package/lib/typescript/screens/motobike/InfoLoanMotobike.d.ts.map +1 -0
  84. package/lib/typescript/screens/motobike/PolicyF88.d.ts +2 -0
  85. package/lib/typescript/screens/motobike/PolicyF88.d.ts.map +1 -0
  86. package/lib/typescript/screens/motobike/ReviewLoanMotobike.d.ts +2 -0
  87. package/lib/typescript/screens/motobike/ReviewLoanMotobike.d.ts.map +1 -0
  88. package/lib/typescript/screens/toan-trinh-so/TTSSelfie.d.ts.map +1 -1
  89. package/lib/typescript/screens/toan-trinh-so/VehicleRegistrationBack.d.ts.map +1 -1
  90. package/lib/typescript/services/api/api.d.ts +80 -0
  91. package/lib/typescript/services/api/api.d.ts.map +1 -1
  92. package/package.json +1 -1
  93. package/src/assets/tts/f88.png +0 -0
  94. package/src/assets/v3/11.svg +13 -0
  95. package/src/assets/v3/12.svg +21 -0
  96. package/src/assets/v3/index.tsx +4 -0
  97. package/src/components/MSelect.tsx +4 -2
  98. package/src/components/ModalOptionLoanDigital.tsx +7 -15
  99. package/src/components/select/index.tsx +4 -2
  100. package/src/navigation/primary-navigator.tsx +15 -0
  101. package/src/screens/home/ItemMotoBikeLoan.tsx +845 -0
  102. package/src/screens/home/index.tsx +8 -3
  103. package/src/screens/motobike/InfoLoanMotobike.tsx +674 -0
  104. package/src/screens/motobike/PolicyF88.tsx +131 -0
  105. package/src/screens/motobike/ReviewLoanMotobike.tsx +453 -0
  106. package/src/screens/toan-trinh-so/TTSSelfie.tsx +4 -0
  107. package/src/screens/toan-trinh-so/VehicleRegistrationBack.tsx +28 -12
  108. package/src/services/api/api.ts +80 -0
  109. package/lib/commonjs/components/CommonSelect.js +0 -2
  110. package/lib/commonjs/components/CommonSelect.js.flow +0 -12
  111. package/lib/commonjs/components/CommonSelect.js.map +0 -1
  112. package/lib/module/components/CommonSelect.js +0 -2
  113. package/lib/module/components/CommonSelect.js.map +0 -1
  114. package/lib/typescript/components/CommonSelect.d.ts +0 -8
  115. package/lib/typescript/components/CommonSelect.d.ts.map +0 -1
  116. 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
+ }