react-native-timacare 3.3.12 → 3.3.13

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 (210) hide show
  1. package/lib/commonjs/RNTimacare.js +1 -1
  2. package/lib/commonjs/RNTimacare.js.flow +0 -9
  3. package/lib/commonjs/RNTimacare.js.map +1 -1
  4. package/lib/commonjs/assets/digital_topup/index.js +2 -0
  5. package/lib/commonjs/assets/digital_topup/index.js.flow +28 -0
  6. package/lib/commonjs/assets/digital_topup/index.js.map +1 -0
  7. package/lib/commonjs/assets/digital_topup/step1.svg +31 -0
  8. package/lib/commonjs/assets/digital_topup/step1_disable.svg +31 -0
  9. package/lib/commonjs/assets/digital_topup/step1_success.svg +21 -0
  10. package/lib/commonjs/assets/digital_topup/step2.svg +39 -0
  11. package/lib/commonjs/assets/digital_topup/step2_disable.svg +16 -0
  12. package/lib/commonjs/assets/digital_topup/step2_success.svg +21 -0
  13. package/lib/commonjs/assets/digital_topup/step3.svg +23 -0
  14. package/lib/commonjs/assets/digital_topup/step3_disable.svg +10 -0
  15. package/lib/commonjs/assets/digital_topup/step3_success.svg +21 -0
  16. package/lib/commonjs/assets/digital_topup/step4_disable.svg +16 -0
  17. package/lib/commonjs/assets/digital_topup/step4_success.svg +21 -0
  18. package/lib/commonjs/components/AlertLoan.js +1 -1
  19. package/lib/commonjs/components/AlertLoan.js.flow +1 -1
  20. package/lib/commonjs/components/AlertLoan.js.map +1 -1
  21. package/lib/commonjs/components/ItemTimaOneV3.js +1 -1
  22. package/lib/commonjs/components/ItemTimaOneV3.js.flow +1 -5
  23. package/lib/commonjs/components/ItemTimaOneV3.js.map +1 -1
  24. package/lib/commonjs/components/MHeader.js +1 -1
  25. package/lib/commonjs/components/MHeader.js.flow +3 -2
  26. package/lib/commonjs/components/MHeader.js.map +1 -1
  27. package/lib/commonjs/components/ModalOptionLoan.js +1 -1
  28. package/lib/commonjs/components/ModalOptionLoan.js.flow +4 -2
  29. package/lib/commonjs/components/ModalOptionLoan.js.map +1 -1
  30. package/lib/commonjs/components/ModalOptionLoanDigital.js +2 -0
  31. package/lib/commonjs/components/ModalOptionLoanDigital.js.flow +297 -0
  32. package/lib/commonjs/components/ModalOptionLoanDigital.js.map +1 -0
  33. package/lib/commonjs/navigation/primary-navigator.js +1 -1
  34. package/lib/commonjs/navigation/primary-navigator.js.flow +0 -3
  35. package/lib/commonjs/navigation/primary-navigator.js.map +1 -1
  36. package/lib/commonjs/screens/camera/CCCDCameraScreen.js +1 -1
  37. package/lib/commonjs/screens/camera/CCCDCameraScreen.js.flow +93 -56
  38. package/lib/commonjs/screens/camera/CCCDCameraScreen.js.map +1 -1
  39. package/lib/commonjs/screens/detail-loan/QrPayment.js +1 -1
  40. package/lib/commonjs/screens/detail-loan/QrPayment.js.flow +1 -0
  41. package/lib/commonjs/screens/detail-loan/QrPayment.js.map +1 -1
  42. package/lib/commonjs/screens/detail-loan/ShowQrCode.js +1 -1
  43. package/lib/commonjs/screens/detail-loan/ShowQrCode.js.flow +1 -1
  44. package/lib/commonjs/screens/detail-loan/ShowQrCode.js.map +1 -1
  45. package/lib/commonjs/screens/home/DigitalTopupItem.js +2 -0
  46. package/lib/commonjs/screens/home/DigitalTopupItem.js.flow +562 -0
  47. package/lib/commonjs/screens/home/DigitalTopupItem.js.map +1 -0
  48. package/lib/commonjs/screens/home/index.js +1 -1
  49. package/lib/commonjs/screens/home/index.js.flow +49 -4
  50. package/lib/commonjs/screens/home/index.js.map +1 -1
  51. package/lib/commonjs/screens/liveness-v2/index.js +1 -1
  52. package/lib/commonjs/screens/liveness-v2/index.js.flow +12 -9
  53. package/lib/commonjs/screens/liveness-v2/index.js.map +1 -1
  54. package/lib/commonjs/screens/toan-trinh-so/OCR.js +1 -1
  55. package/lib/commonjs/screens/toan-trinh-so/OCR.js.flow +3 -1
  56. package/lib/commonjs/screens/toan-trinh-so/OCR.js.map +1 -1
  57. package/lib/commonjs/screens/toan-trinh-so/ReviewLoan.js +1 -1
  58. package/lib/commonjs/screens/toan-trinh-so/ReviewLoan.js.flow +1 -375
  59. package/lib/commonjs/screens/toan-trinh-so/ReviewLoan.js.map +1 -1
  60. package/lib/commonjs/screens/toan-trinh-so/TTSNationalIDFront.js +1 -1
  61. package/lib/commonjs/screens/toan-trinh-so/TTSNationalIDFront.js.flow +12 -9
  62. package/lib/commonjs/screens/toan-trinh-so/TTSNationalIDFront.js.map +1 -1
  63. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js +1 -1
  64. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js.flow +16 -10
  65. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js.map +1 -1
  66. package/lib/commonjs/screens/toan-trinh-so/TTSSignLoan.js +1 -1
  67. package/lib/commonjs/screens/toan-trinh-so/TTSSignLoan.js.flow +18 -15
  68. package/lib/commonjs/screens/toan-trinh-so/TTSSignLoan.js.map +1 -1
  69. package/lib/commonjs/screens/toan-trinh-so/TopupLoanInfo.js +1 -1
  70. package/lib/commonjs/screens/toan-trinh-so/TopupLoanInfo.js.flow +1 -1
  71. package/lib/commonjs/screens/toan-trinh-so/TopupLoanInfo.js.map +1 -1
  72. package/lib/commonjs/screens/toan-trinh-so/VehicleCamera.js +1 -1
  73. package/lib/commonjs/screens/toan-trinh-so/VehicleCamera.js.flow +8 -1
  74. package/lib/commonjs/screens/toan-trinh-so/VehicleCamera.js.map +1 -1
  75. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistration.js +1 -1
  76. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistration.js.flow +20 -17
  77. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistration.js.map +1 -1
  78. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationFront.js +1 -1
  79. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationFront.js.flow +14 -9
  80. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationFront.js.map +1 -1
  81. package/lib/commonjs/sdkConfig.js +1 -1
  82. package/lib/commonjs/sdkConfig.js.flow +6 -0
  83. package/lib/commonjs/sdkConfig.js.map +1 -1
  84. package/lib/commonjs/services/api/api.js +1 -1
  85. package/lib/commonjs/services/api/api.js.flow +32 -0
  86. package/lib/commonjs/services/api/api.js.map +1 -1
  87. package/lib/module/RNTimacare.js +1 -1
  88. package/lib/module/RNTimacare.js.map +1 -1
  89. package/lib/module/assets/digital_topup/index.js +2 -0
  90. package/lib/module/assets/digital_topup/index.js.map +1 -0
  91. package/lib/module/assets/digital_topup/step1.svg +31 -0
  92. package/lib/module/assets/digital_topup/step1_disable.svg +31 -0
  93. package/lib/module/assets/digital_topup/step1_success.svg +21 -0
  94. package/lib/module/assets/digital_topup/step2.svg +39 -0
  95. package/lib/module/assets/digital_topup/step2_disable.svg +16 -0
  96. package/lib/module/assets/digital_topup/step2_success.svg +21 -0
  97. package/lib/module/assets/digital_topup/step3.svg +23 -0
  98. package/lib/module/assets/digital_topup/step3_disable.svg +10 -0
  99. package/lib/module/assets/digital_topup/step3_success.svg +21 -0
  100. package/lib/module/assets/digital_topup/step4_disable.svg +16 -0
  101. package/lib/module/assets/digital_topup/step4_success.svg +21 -0
  102. package/lib/module/components/AlertLoan.js +1 -1
  103. package/lib/module/components/AlertLoan.js.map +1 -1
  104. package/lib/module/components/ItemTimaOneV3.js +1 -1
  105. package/lib/module/components/ItemTimaOneV3.js.map +1 -1
  106. package/lib/module/components/MHeader.js +1 -1
  107. package/lib/module/components/MHeader.js.map +1 -1
  108. package/lib/module/components/ModalOptionLoan.js +1 -1
  109. package/lib/module/components/ModalOptionLoan.js.map +1 -1
  110. package/lib/module/components/ModalOptionLoanDigital.js +2 -0
  111. package/lib/module/components/ModalOptionLoanDigital.js.map +1 -0
  112. package/lib/module/navigation/primary-navigator.js +1 -1
  113. package/lib/module/navigation/primary-navigator.js.map +1 -1
  114. package/lib/module/screens/camera/CCCDCameraScreen.js +1 -1
  115. package/lib/module/screens/camera/CCCDCameraScreen.js.map +1 -1
  116. package/lib/module/screens/detail-loan/QrPayment.js +1 -1
  117. package/lib/module/screens/detail-loan/QrPayment.js.map +1 -1
  118. package/lib/module/screens/detail-loan/ShowQrCode.js +1 -1
  119. package/lib/module/screens/detail-loan/ShowQrCode.js.map +1 -1
  120. package/lib/module/screens/home/DigitalTopupItem.js +2 -0
  121. package/lib/module/screens/home/DigitalTopupItem.js.map +1 -0
  122. package/lib/module/screens/home/index.js +1 -1
  123. package/lib/module/screens/home/index.js.map +1 -1
  124. package/lib/module/screens/liveness-v2/index.js +1 -1
  125. package/lib/module/screens/liveness-v2/index.js.map +1 -1
  126. package/lib/module/screens/toan-trinh-so/OCR.js +1 -1
  127. package/lib/module/screens/toan-trinh-so/OCR.js.map +1 -1
  128. package/lib/module/screens/toan-trinh-so/ReviewLoan.js +1 -1
  129. package/lib/module/screens/toan-trinh-so/ReviewLoan.js.map +1 -1
  130. package/lib/module/screens/toan-trinh-so/TTSNationalIDFront.js +1 -1
  131. package/lib/module/screens/toan-trinh-so/TTSNationalIDFront.js.map +1 -1
  132. package/lib/module/screens/toan-trinh-so/TTSSelfie.js +1 -1
  133. package/lib/module/screens/toan-trinh-so/TTSSelfie.js.map +1 -1
  134. package/lib/module/screens/toan-trinh-so/TTSSignLoan.js +1 -1
  135. package/lib/module/screens/toan-trinh-so/TTSSignLoan.js.map +1 -1
  136. package/lib/module/screens/toan-trinh-so/TopupLoanInfo.js +1 -1
  137. package/lib/module/screens/toan-trinh-so/TopupLoanInfo.js.map +1 -1
  138. package/lib/module/screens/toan-trinh-so/VehicleCamera.js +1 -1
  139. package/lib/module/screens/toan-trinh-so/VehicleCamera.js.map +1 -1
  140. package/lib/module/screens/toan-trinh-so/VehicleRegistration.js +1 -1
  141. package/lib/module/screens/toan-trinh-so/VehicleRegistration.js.map +1 -1
  142. package/lib/module/screens/toan-trinh-so/VehicleRegistrationFront.js +1 -1
  143. package/lib/module/screens/toan-trinh-so/VehicleRegistrationFront.js.map +1 -1
  144. package/lib/module/sdkConfig.js +1 -1
  145. package/lib/module/sdkConfig.js.map +1 -1
  146. package/lib/module/services/api/api.js +1 -1
  147. package/lib/module/services/api/api.js.map +1 -1
  148. package/lib/typescript/RNTimacare.d.ts.map +1 -1
  149. package/lib/typescript/assets/digital_topup/index.d.ts +14 -0
  150. package/lib/typescript/assets/digital_topup/index.d.ts.map +1 -0
  151. package/lib/typescript/components/ItemTimaOneV3.d.ts.map +1 -1
  152. package/lib/typescript/components/MHeader.d.ts.map +1 -1
  153. package/lib/typescript/components/ModalOptionLoan.d.ts.map +1 -1
  154. package/lib/typescript/components/ModalOptionLoanDigital.d.ts +9 -0
  155. package/lib/typescript/components/ModalOptionLoanDigital.d.ts.map +1 -0
  156. package/lib/typescript/navigation/primary-navigator.d.ts.map +1 -1
  157. package/lib/typescript/screens/camera/CCCDCameraScreen.d.ts.map +1 -1
  158. package/lib/typescript/screens/detail-loan/QrPayment.d.ts.map +1 -1
  159. package/lib/typescript/screens/home/DigitalTopupItem.d.ts +7 -0
  160. package/lib/typescript/screens/home/DigitalTopupItem.d.ts.map +1 -0
  161. package/lib/typescript/screens/home/index.d.ts.map +1 -1
  162. package/lib/typescript/screens/liveness-v2/index.d.ts.map +1 -1
  163. package/lib/typescript/screens/toan-trinh-so/OCR.d.ts.map +1 -1
  164. package/lib/typescript/screens/toan-trinh-so/ReviewLoan.d.ts.map +1 -1
  165. package/lib/typescript/screens/toan-trinh-so/TTSNationalIDFront.d.ts.map +1 -1
  166. package/lib/typescript/screens/toan-trinh-so/TTSSelfie.d.ts.map +1 -1
  167. package/lib/typescript/screens/toan-trinh-so/TTSSignLoan.d.ts.map +1 -1
  168. package/lib/typescript/screens/toan-trinh-so/VehicleCamera.d.ts.map +1 -1
  169. package/lib/typescript/screens/toan-trinh-so/VehicleRegistration.d.ts.map +1 -1
  170. package/lib/typescript/screens/toan-trinh-so/VehicleRegistrationFront.d.ts.map +1 -1
  171. package/lib/typescript/sdkConfig.d.ts.map +1 -1
  172. package/lib/typescript/services/api/api.d.ts +32 -0
  173. package/lib/typescript/services/api/api.d.ts.map +1 -1
  174. package/package.json +1 -1
  175. package/src/RNTimacare.tsx +0 -9
  176. package/src/assets/digital_topup/index.tsx +28 -0
  177. package/src/assets/digital_topup/step1.svg +31 -0
  178. package/src/assets/digital_topup/step1_disable.svg +31 -0
  179. package/src/assets/digital_topup/step1_success.svg +21 -0
  180. package/src/assets/digital_topup/step2.svg +39 -0
  181. package/src/assets/digital_topup/step2_disable.svg +16 -0
  182. package/src/assets/digital_topup/step2_success.svg +21 -0
  183. package/src/assets/digital_topup/step3.svg +23 -0
  184. package/src/assets/digital_topup/step3_disable.svg +10 -0
  185. package/src/assets/digital_topup/step3_success.svg +21 -0
  186. package/src/assets/digital_topup/step4_disable.svg +16 -0
  187. package/src/assets/digital_topup/step4_success.svg +21 -0
  188. package/src/components/AlertLoan.tsx +1 -1
  189. package/src/components/ItemTimaOneV3.tsx +1 -5
  190. package/src/components/MHeader.tsx +3 -2
  191. package/src/components/ModalOptionLoan.tsx +4 -2
  192. package/src/components/ModalOptionLoanDigital.tsx +297 -0
  193. package/src/navigation/primary-navigator.tsx +0 -3
  194. package/src/screens/camera/CCCDCameraScreen.tsx +93 -56
  195. package/src/screens/detail-loan/QrPayment.tsx +1 -0
  196. package/src/screens/detail-loan/ShowQrCode.tsx +1 -1
  197. package/src/screens/home/DigitalTopupItem.tsx +562 -0
  198. package/src/screens/home/index.tsx +49 -4
  199. package/src/screens/liveness-v2/index.tsx +12 -9
  200. package/src/screens/toan-trinh-so/OCR.tsx +3 -1
  201. package/src/screens/toan-trinh-so/ReviewLoan.tsx +1 -375
  202. package/src/screens/toan-trinh-so/TTSNationalIDFront.tsx +12 -9
  203. package/src/screens/toan-trinh-so/TTSSelfie.tsx +16 -10
  204. package/src/screens/toan-trinh-so/TTSSignLoan.tsx +18 -15
  205. package/src/screens/toan-trinh-so/TopupLoanInfo.tsx +1 -1
  206. package/src/screens/toan-trinh-so/VehicleCamera.tsx +8 -1
  207. package/src/screens/toan-trinh-so/VehicleRegistration.tsx +20 -17
  208. package/src/screens/toan-trinh-so/VehicleRegistrationFront.tsx +14 -9
  209. package/src/sdkConfig.ts +6 -0
  210. package/src/services/api/api.ts +32 -0
@@ -0,0 +1,562 @@
1
+ //@ts-nocheck
2
+ import React from 'react';
3
+ import { TouchableOpacity, View, ViewStyle } from 'react-native';
4
+ import LinearGradient from 'react-native-linear-gradient';
5
+ import { IconMoney2, IconTick, IconTima16 } from '../../assets/svgs';
6
+ import { formatMoney } from '../../utils';
7
+ import { MText } from '../../components/MText';
8
+ import {
9
+ IconStep1,
10
+ IconStep1Disable,
11
+ IconStep2Disable,
12
+ IconStep1Success,
13
+ IconStep3Disable,
14
+ IconStep4Disable,
15
+ IconStep2,
16
+ IconStep2Success,
17
+ IconStep3,
18
+ IconStep4,
19
+ IconStep4Success,
20
+ IconStep3Success,
21
+ } from '../../assets/digital_topup';
22
+ import { color } from '../../theme';
23
+ import { ScreenNames } from '../../navigation';
24
+ import { Info } from '../../assets/icons';
25
+
26
+ interface IProps {
27
+ item?: any;
28
+ navigation: any;
29
+ }
30
+ export default function DigitalTopupItem({ item, navigation }: IProps) {
31
+ const [showModal, setShowModal] = React.useState(false);
32
+ return (
33
+ <View
34
+ style={{
35
+ backgroundColor: '#FFFFFF',
36
+ paddingHorizontal: 16,
37
+ marginBottom: 16,
38
+ borderRadius: 8,
39
+ borderWidth: 0.5,
40
+ borderColor: '#E0E0E0',
41
+ }}
42
+ >
43
+ <LinearGradient
44
+ colors={['#FF8E4F', '#EF592E']}
45
+ style={{
46
+ borderTopLeftRadius: 8,
47
+ borderTopRightRadius: 8,
48
+ marginHorizontal: -16,
49
+ }}
50
+ >
51
+ <View
52
+ style={{
53
+ flexDirection: 'row',
54
+ justifyContent: 'space-between',
55
+ alignItems: 'center',
56
+ paddingHorizontal: 16,
57
+ paddingVertical: 8,
58
+ }}
59
+ >
60
+ <View
61
+ style={{
62
+ flexDirection: 'row',
63
+ alignItems: 'center',
64
+ gap: 8,
65
+ }}
66
+ >
67
+ <IconMoney2 />
68
+ <MText
69
+ style={{
70
+ fontSize: 12,
71
+ color: 'white',
72
+ }}
73
+ >
74
+ HD-{item?.id}
75
+ </MText>
76
+ </View>
77
+ <MText
78
+ style={{
79
+ fontSize: 12,
80
+ color: 'white',
81
+ fontWeight: 'bold',
82
+ }}
83
+ >
84
+ {formatMoney(item?.loanAmount)}đ
85
+ </MText>
86
+ </View>
87
+ </LinearGradient>
88
+
89
+ <View
90
+ style={{
91
+ flexDirection: 'row',
92
+ justifyContent: 'space-between',
93
+ marginTop: 16,
94
+ }}
95
+ >
96
+ <TouchableOpacity
97
+ disabled={item?.step === 3 ? false : true}
98
+ style={$action}
99
+ onPress={() => {
100
+ navigation.push(ScreenNames.ReviewLoan, {
101
+ loan: item,
102
+ });
103
+ }}
104
+ >
105
+ {item?.step < 3 ? (
106
+ <IconStep1Disable />
107
+ ) : item?.step === 3 ? (
108
+ <IconStep1 />
109
+ ) : (
110
+ <IconStep1Success />
111
+ )}
112
+ <MText
113
+ style={{
114
+ textAlign: 'center',
115
+ fontSize: 10,
116
+ marginTop: 5,
117
+ color:
118
+ item?.step < 3
119
+ ? '#999999'
120
+ : item?.step === 3
121
+ ? '#EF592E'
122
+ : '#333333',
123
+ }}
124
+ >
125
+ Thông tin{'\n'}khoản vay
126
+ </MText>
127
+ </TouchableOpacity>
128
+ <TouchableOpacity
129
+ style={$action}
130
+ disabled={
131
+ item?.step === 4 || item?.step === 5 || item?.step === 6
132
+ ? false
133
+ : true
134
+ }
135
+ onPress={() => {
136
+ if (item?.step === 4) {
137
+ navigation.push(ScreenNames.OCR, {
138
+ loan: item,
139
+ front: true,
140
+ });
141
+ } else if (item?.step === 5) {
142
+ if (item?.typeLoan === 5) {
143
+ navigation.push(ScreenNames.ReviewInformation, {
144
+ loan: item,
145
+ });
146
+ } else {
147
+ navigation.push(ScreenNames.TopupLoanInfo, {
148
+ loan: item,
149
+ });
150
+ }
151
+ } else if (item?.step === 6) {
152
+ navigation.push(ScreenNames.ReviewInformationOther, {
153
+ loan: item,
154
+ });
155
+ }
156
+ }}
157
+ >
158
+ {item?.step < 4 ? (
159
+ <IconStep2Disable />
160
+ ) : item?.step === 4 || item?.step === 5 || item?.step === 6 ? (
161
+ <IconStep2 />
162
+ ) : (
163
+ <IconStep2Success />
164
+ )}
165
+ <MText
166
+ style={{
167
+ textAlign: 'center',
168
+ fontSize: 10,
169
+ marginTop: 5,
170
+ color:
171
+ item?.step < 4
172
+ ? '#999999'
173
+ : item?.step === 4 || item?.step === 5 || item?.step === 6
174
+ ? '#EF592E'
175
+ : '#333333',
176
+ }}
177
+ >
178
+ Thông tin{'\n'}cá nhân
179
+ </MText>
180
+ </TouchableOpacity>
181
+ <TouchableOpacity
182
+ disabled={item?.step === 9 ? false : true}
183
+ style={$action}
184
+ onPress={() => {
185
+ navigation.push(ScreenNames.LivenessV2, {
186
+ loan: item,
187
+ });
188
+ }}
189
+ >
190
+ {item?.step < 9 || item?.step === 100 ? (
191
+ <IconStep3Disable />
192
+ ) : item?.step === 9 ? (
193
+ <IconStep3 />
194
+ ) : (
195
+ <IconStep3Success />
196
+ )}
197
+ <MText
198
+ style={{
199
+ textAlign: 'center',
200
+ fontSize: 10,
201
+ marginTop: 5,
202
+ color:
203
+ item?.step < 9 || item?.step === 100
204
+ ? '#999999'
205
+ : item?.step === 9
206
+ ? '#EF592E'
207
+ : '#333333',
208
+ }}
209
+ >
210
+ EKYC
211
+ </MText>
212
+ </TouchableOpacity>
213
+ <TouchableOpacity
214
+ disabled={item?.step === 10 ? false : true}
215
+ style={$action}
216
+ onPress={() => {
217
+ navigation.push(ScreenNames.TTSSignLoan, {
218
+ loan: item,
219
+ });
220
+ }}
221
+ >
222
+ {item?.step < 10 || item?.step === 100 ? (
223
+ <IconStep4Disable />
224
+ ) : item?.step === 10 ? (
225
+ <IconStep4 />
226
+ ) : (
227
+ <IconStep4Success />
228
+ )}
229
+ <MText
230
+ style={{
231
+ textAlign: 'center',
232
+ fontSize: 10,
233
+ marginTop: 5,
234
+ color:
235
+ item?.step < 10 || item?.step === 100
236
+ ? '#999999'
237
+ : item?.step === 10
238
+ ? '#EF592E'
239
+ : '#333333',
240
+ }}
241
+ >
242
+ Ký hợp{'\n'}đồng
243
+ </MText>
244
+ </TouchableOpacity>
245
+ </View>
246
+
247
+ {item?.step !== 11 ? (
248
+ <View
249
+ style={{
250
+ backgroundColor: '#FFF3E9',
251
+ flexDirection: 'row',
252
+ alignItems: 'center',
253
+ gap: 8,
254
+ borderRadius: 4,
255
+ paddingHorizontal: 8,
256
+ paddingVertical: 10,
257
+ marginTop: 16,
258
+ }}
259
+ >
260
+ <MText
261
+ style={{
262
+ fontSize: 10,
263
+ flex: 1,
264
+ }}
265
+ >
266
+ Hướng dẫn các bước hoàn thiện đơn vay
267
+ </MText>
268
+ <TouchableOpacity onPress={() => setShowModal(true)}>
269
+ <MText
270
+ style={{
271
+ fontSize: 10,
272
+ color: color.primary,
273
+ textDecorationLine: 'underline',
274
+ }}
275
+ >
276
+ Xem thêm
277
+ </MText>
278
+ </TouchableOpacity>
279
+ </View>
280
+ ) : (
281
+ <View
282
+ style={{
283
+ backgroundColor: '#E8FFE9',
284
+ flexDirection: 'row',
285
+ alignItems: 'center',
286
+ gap: 8,
287
+ borderRadius: 4,
288
+ paddingHorizontal: 8,
289
+ paddingVertical: 10,
290
+ marginTop: 16,
291
+ }}
292
+ >
293
+ <IconTick />
294
+ <MText style={{ color: '#28A745', fontSize: 10, flex: 1 }}>
295
+ Hợp đồng đã ký thành công. Quý khách vui lòng chờ Chuyên viên tư vấn
296
+ liên hệ để hoàn tất bước giải ngân.
297
+ </MText>
298
+ </View>
299
+ )}
300
+
301
+ {item?.step !== 11 ? (
302
+ <View style={$row}>
303
+ <View style={{ flex: 1, paddingRight: 24 }}>
304
+ <MText
305
+ style={{
306
+ color: '#999999',
307
+ fontSize: 12,
308
+ }}
309
+ >
310
+ Trạng thái
311
+ </MText>
312
+ <MText
313
+ style={{
314
+ fontSize: 12,
315
+ fontWeight: 'bold',
316
+ }}
317
+ >
318
+ {item?.step <= 1
319
+ ? 'Chờ cập nhật thông tin tài sản'
320
+ : item?.step === 3
321
+ ? `Chờ cập nhật thông tin khoản vay`
322
+ : item?.step === 4 || item?.step === 5 || item?.step === 6
323
+ ? `Chờ cập nhật thông tin cá nhân`
324
+ : item?.step === 9
325
+ ? `Chờ cập nhật eKYC`
326
+ : item?.step === 11
327
+ ? `Hợp đồng đã ký thành công. Vui lòng chờ chuyên viên tư vấn liên hệ`
328
+ : 'Đơn vay đang trong quá trình xử lý'}
329
+ </MText>
330
+ </View>
331
+ {item?.step <= 1 ? (
332
+ <TouchableOpacity
333
+ onPress={() => {
334
+ if (item?.typeLoan === 7) {
335
+ navigation.push(ScreenNames.LoanBuyCar, {
336
+ loan: item,
337
+ });
338
+ } else {
339
+ if (item?.step === 0) {
340
+ navigation.push(ScreenNames.VehicleCamera, {
341
+ loan: item,
342
+ front: true,
343
+ });
344
+ } else {
345
+ navigation.push(ScreenNames.AssetInformation, {
346
+ loan: item,
347
+ });
348
+ }
349
+ }
350
+ }}
351
+ >
352
+ <LinearGradient
353
+ colors={['#FF8E4F', '#EF592E']}
354
+ style={{
355
+ height: 30,
356
+ alignItems: 'center',
357
+ justifyContent: 'center',
358
+ borderRadius: 24,
359
+ paddingHorizontal: 10,
360
+ }}
361
+ >
362
+ <MText
363
+ style={{
364
+ color: 'white',
365
+ fontSize: 12,
366
+ }}
367
+ >
368
+ Cập nhật
369
+ </MText>
370
+ </LinearGradient>
371
+ </TouchableOpacity>
372
+ ) : item?.step === 3 ? (
373
+ <TouchableOpacity
374
+ onPress={() => {
375
+ if (item?.step === 3) {
376
+ navigation.push(ScreenNames.ReviewLoan, {
377
+ loan: item,
378
+ });
379
+ }
380
+ }}
381
+ >
382
+ <LinearGradient
383
+ colors={['#FF8E4F', '#EF592E']}
384
+ style={{
385
+ height: 30,
386
+ alignItems: 'center',
387
+ justifyContent: 'center',
388
+ borderRadius: 24,
389
+ paddingHorizontal: 10,
390
+ }}
391
+ >
392
+ <MText
393
+ style={{
394
+ color: 'white',
395
+ fontSize: 12,
396
+ }}
397
+ >
398
+ Cập nhật
399
+ </MText>
400
+ </LinearGradient>
401
+ </TouchableOpacity>
402
+ ) : item?.step === 4 || item?.step === 5 || item?.step === 6 ? (
403
+ <TouchableOpacity
404
+ onPress={() => {
405
+ if (item?.step === 4) {
406
+ navigation.push(ScreenNames.OCR, {
407
+ loan: item,
408
+ front: true,
409
+ });
410
+ } else if (item?.step === 5) {
411
+ if (item?.typeLoan === 5) {
412
+ navigation.push(ScreenNames.ReviewInformation, {
413
+ loan: item,
414
+ });
415
+ } else {
416
+ navigation.push(ScreenNames.TopupLoanInfo, {
417
+ loan: item,
418
+ });
419
+ }
420
+ } else if (item?.step === 6) {
421
+ navigation.push(ScreenNames.ReviewInformationOther, {
422
+ loan: item,
423
+ });
424
+ }
425
+ }}
426
+ >
427
+ <LinearGradient
428
+ colors={['#FF8E4F', '#EF592E']}
429
+ style={{
430
+ height: 30,
431
+ alignItems: 'center',
432
+ justifyContent: 'center',
433
+ borderRadius: 24,
434
+ paddingHorizontal: 10,
435
+ }}
436
+ >
437
+ <MText
438
+ style={{
439
+ color: 'white',
440
+ fontSize: 12,
441
+ }}
442
+ >
443
+ Cập nhật
444
+ </MText>
445
+ </LinearGradient>
446
+ </TouchableOpacity>
447
+ ) : item?.step === 9 ? (
448
+ <TouchableOpacity
449
+ onPress={() => {
450
+ navigation.push(ScreenNames.LivenessV2, {
451
+ loan: item,
452
+ });
453
+ }}
454
+ >
455
+ <LinearGradient
456
+ colors={['#FF8E4F', '#EF592E']}
457
+ style={{
458
+ height: 30,
459
+ alignItems: 'center',
460
+ justifyContent: 'center',
461
+ borderRadius: 24,
462
+ paddingHorizontal: 10,
463
+ }}
464
+ >
465
+ <MText
466
+ style={{
467
+ color: 'white',
468
+ fontSize: 12,
469
+ }}
470
+ >
471
+ Cập nhật
472
+ </MText>
473
+ </LinearGradient>
474
+ </TouchableOpacity>
475
+ ) : item?.step === 10 ? (
476
+ <TouchableOpacity
477
+ onPress={() => {
478
+ navigation.push(ScreenNames.TTSSignLoan, {
479
+ loan: item,
480
+ });
481
+ }}
482
+ >
483
+ <LinearGradient
484
+ colors={['#FF8E4F', '#EF592E']}
485
+ style={{
486
+ height: 30,
487
+ alignItems: 'center',
488
+ justifyContent: 'center',
489
+ borderRadius: 24,
490
+ paddingHorizontal: 10,
491
+ }}
492
+ >
493
+ <MText
494
+ style={{
495
+ color: 'white',
496
+ fontSize: 12,
497
+ }}
498
+ >
499
+ Ký hợp đồng
500
+ </MText>
501
+ </LinearGradient>
502
+ </TouchableOpacity>
503
+ ) : (
504
+ <></>
505
+ )}
506
+ </View>
507
+ ) : (
508
+ <></>
509
+ )}
510
+ {item?.step !== 11 ? (
511
+ <View
512
+ style={{
513
+ flexDirection: 'row',
514
+ alignItems: 'center',
515
+ gap: 8,
516
+ backgroundColor: '#FFF2F2',
517
+ marginHorizontal: -16,
518
+ paddingVertical: 10,
519
+ borderBottomRightRadius: 8,
520
+ borderBottomLeftRadius: 8,
521
+ paddingHorizontal: 10,
522
+ }}
523
+ >
524
+ <Info />
525
+ <MText
526
+ style={[
527
+ {
528
+ fontSize: 10,
529
+ color: '#E40010',
530
+ flex: 1,
531
+ },
532
+ ]}
533
+ >
534
+ {item?.step <= 1
535
+ ? 'Vui lòng cập nhật thông tin tài sản để được giải ngân sớm nhất!'
536
+ : item?.step === 3
537
+ ? `Vui lòng cập nhật thông tin khoản vay để được giải ngân sớm nhất!`
538
+ : item?.step === 4 || item?.step === 5 || item?.step === 6
539
+ ? `Vui lòng cập nhật thông tin cá nhân để được giải ngân sớm nhất!`
540
+ : item?.step === 9
541
+ ? `Bước cuối cùng rồi, vui lòng ký hợp đồng để được giải ngân sớm nhất nhé!`
542
+ : 'Đơn vay đang trong quá trình xử lý'}
543
+ </MText>
544
+ </View>
545
+ ) : (
546
+ <></>
547
+ )}
548
+ </View>
549
+ );
550
+ }
551
+ const $action: ViewStyle = {
552
+ flexDirection: 'column',
553
+ alignItems: 'center',
554
+ gap: 5,
555
+ };
556
+ const $row: ViewStyle = {
557
+ flexDirection: 'row',
558
+ // borderBottomWidth: 1,
559
+ // borderColor: '#E0E0E0',
560
+ paddingBottom: 16,
561
+ marginTop: 16,
562
+ };
@@ -100,6 +100,9 @@ import { o } from 'ramda';
100
100
  import ItemTimaOneV3 from '../../components/ItemTimaOneV3';
101
101
  import ModalOptionLoan from '../../components/ModalOptionLoan';
102
102
  import AlertLoan from '../../components/AlertLoan';
103
+ import DigitalTopupItem from './DigitalTopupItem';
104
+ import ModalOptionLoanDigital from '../../components/ModalOptionLoanDigital';
105
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
103
106
 
104
107
  const listBanners = [
105
108
  require('../../assets/img/banner1.png'),
@@ -120,12 +123,14 @@ export const Home = observer(function Home() {
120
123
  const [showModal3, setShowModal3] = useState(false);
121
124
  const [showModal4, setShowModal4] = useState(false);
122
125
  const [showModal5, setShowModal5] = useState(false);
126
+ const [showModal6, setShowModal6] = useState(false);
123
127
  const [listLoan, setListLoan] = useState<any[]>([]);
124
128
  const [checkEKYC, setCheckEKYC] = useState<any>({});
125
129
  const [isLoading, setIsLoading] = useState(false);
126
130
  const [loanCimb, setLoanCimb] = useState(null);
127
131
  const [loan, setLoan] = useState(null);
128
132
  const [dataSuggest, setDataSuggest] = useState<any>();
133
+ const insets = useSafeAreaInsets();
129
134
 
130
135
  const onRefresh = async () => {
131
136
  setIsLoading(true);
@@ -190,6 +195,30 @@ export const Home = observer(function Home() {
190
195
  }, 300);
191
196
  }
192
197
  }
198
+
199
+ // check suggest đơn digital topup luồng timaone
200
+ if (
201
+ item?.typeLoan === 4 &&
202
+ !item?.isPipelineCIMB &&
203
+ item?.step === 2
204
+ ) {
205
+ setLoan(item);
206
+ const res = await Api.getInstance().getSuggestDigitalTopup(
207
+ item?.id
208
+ );
209
+
210
+ if (res.kind === 'ok' && res.data?.meta?.errorCode === 200) {
211
+ setDataSuggest({
212
+ ...res.data?.data,
213
+ typeLoan: item?.typeLoan,
214
+ });
215
+ setTimeout(() => {
216
+ setShowModal6(true);
217
+ }, 300);
218
+ }
219
+ }
220
+
221
+ //
193
222
  if (
194
223
  (item?.typeLoan === 5 || item?.typeLoan === 6) &&
195
224
  (item?.step === 7 || item?.step === 100)
@@ -404,14 +433,13 @@ export const Home = observer(function Home() {
404
433
  style={[commonStyles.fill, { zIndex: 1, backgroundColor: '#FFFFFF' }]}
405
434
  >
406
435
  <LinearGradient colors={['#FF8E4F', '#EF592E']}>
407
- <SafeAreaView style={{}}>
436
+ <View style={{ marginTop: insets.top + 16 }}>
408
437
  <View
409
438
  style={{
410
439
  flexDirection: 'row',
411
440
  paddingHorizontal: 16,
412
441
  alignItems: 'center',
413
442
  justifyContent: 'space-between',
414
- paddingTop: 8,
415
443
  paddingBottom: 8,
416
444
  }}
417
445
  >
@@ -422,7 +450,7 @@ export const Home = observer(function Home() {
422
450
  fontSize: 14,
423
451
  }}
424
452
  >
425
- Vay trực tuyến 24/7
453
+ Vay Online 24/7
426
454
  </MText>
427
455
  <View
428
456
  style={{
@@ -459,7 +487,7 @@ export const Home = observer(function Home() {
459
487
  </TouchableOpacity>
460
488
  </View>
461
489
  </View>
462
- </SafeAreaView>
490
+ </View>
463
491
  </LinearGradient>
464
492
  <ScrollView
465
493
  refreshControl={
@@ -500,6 +528,8 @@ export const Home = observer(function Home() {
500
528
  <View>
501
529
  <ItemTimaOneV3 item={item} navigation={navigation} />
502
530
  </View>
531
+ ) : item?.typeLoan === 4 && !item?.isPipelineCIMB ? (
532
+ <DigitalTopupItem item={item} navigation={navigation} />
503
533
  ) : (
504
534
  <View>
505
535
  {/* // luồng CIMB */}
@@ -2674,6 +2704,21 @@ export const Home = observer(function Home() {
2674
2704
  setShowModal4(false);
2675
2705
  }}
2676
2706
  />
2707
+ <ModalOptionLoanDigital
2708
+ open={showModal6}
2709
+ loan={dataSuggest}
2710
+ callback={() => {
2711
+ setShowModal6(false);
2712
+ setTimeout(() => {
2713
+ navigation.push(ScreenNames.ReviewLoan, {
2714
+ loan: loan,
2715
+ });
2716
+ }, 300);
2717
+ }}
2718
+ onClose={() => {
2719
+ setShowModal6(false);
2720
+ }}
2721
+ />
2677
2722
 
2678
2723
  <AlertLoan
2679
2724
  open={showModal5}
@@ -390,15 +390,18 @@ export const LivenessV2 = observer(function LivenessV2(props: any) {
390
390
  }
391
391
  };
392
392
 
393
- useEffect(async () => {
394
- await logEvent('ekyc_started', {
395
- event: 'ekyc_started',
396
- createdAt: new Date(),
397
- deviceId: appStore.deviceId,
398
- loanId: String(loan?.id),
399
- utmSource: loan?.utmSource,
400
- });
401
- logEventFb('ekyc_started');
393
+ useEffect(() => {
394
+ const trackingEvent = async () => {
395
+ await logEvent('ekyc_started', {
396
+ event: 'ekyc_started',
397
+ createdAt: new Date(),
398
+ deviceId: appStore.deviceId,
399
+ loanId: String(loan?.id),
400
+ utmSource: loan?.utmSource,
401
+ });
402
+ logEventFb('ekyc_started');
403
+ };
404
+ trackingEvent();
402
405
  }, []);
403
406
 
404
407
  return (