react-native-timacare 3.3.20 → 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 (109) 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/select/index.js +1 -1
  11. package/lib/commonjs/components/select/index.js.flow +4 -2
  12. package/lib/commonjs/components/select/index.js.map +1 -1
  13. package/lib/commonjs/navigation/primary-navigator.js +1 -1
  14. package/lib/commonjs/navigation/primary-navigator.js.flow +15 -0
  15. package/lib/commonjs/navigation/primary-navigator.js.map +1 -1
  16. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js +2 -0
  17. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.flow +845 -0
  18. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.map +1 -0
  19. package/lib/commonjs/screens/home/index.js +1 -1
  20. package/lib/commonjs/screens/home/index.js.flow +8 -1
  21. package/lib/commonjs/screens/home/index.js.map +1 -1
  22. package/lib/commonjs/screens/motobike/InfoLoanMotobike.js +2 -0
  23. package/lib/commonjs/screens/motobike/InfoLoanMotobike.js.flow +674 -0
  24. package/lib/commonjs/screens/motobike/InfoLoanMotobike.js.map +1 -0
  25. package/lib/commonjs/screens/motobike/PolicyF88.js +2 -0
  26. package/lib/commonjs/screens/motobike/PolicyF88.js.flow +131 -0
  27. package/lib/commonjs/screens/motobike/PolicyF88.js.map +1 -0
  28. package/lib/commonjs/screens/motobike/ReviewLoanMotobike.js +2 -0
  29. package/lib/commonjs/screens/motobike/ReviewLoanMotobike.js.flow +453 -0
  30. package/lib/commonjs/screens/motobike/ReviewLoanMotobike.js.map +1 -0
  31. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js +1 -1
  32. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js.flow +4 -0
  33. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js.map +1 -1
  34. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationBack.js +1 -1
  35. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationBack.js.flow +28 -12
  36. package/lib/commonjs/screens/toan-trinh-so/VehicleRegistrationBack.js.map +1 -1
  37. package/lib/commonjs/services/api/api.js +1 -1
  38. package/lib/commonjs/services/api/api.js.flow +80 -0
  39. package/lib/commonjs/services/api/api.js.map +1 -1
  40. package/lib/module/assets/tts/f88.png +0 -0
  41. package/lib/module/assets/v3/11.svg +13 -0
  42. package/lib/module/assets/v3/12.svg +21 -0
  43. package/lib/module/assets/v3/index.js +1 -1
  44. package/lib/module/assets/v3/index.js.map +1 -1
  45. package/lib/module/components/MSelect.js +1 -1
  46. package/lib/module/components/MSelect.js.map +1 -1
  47. package/lib/module/components/select/index.js +1 -1
  48. package/lib/module/components/select/index.js.map +1 -1
  49. package/lib/module/navigation/primary-navigator.js +1 -1
  50. package/lib/module/navigation/primary-navigator.js.map +1 -1
  51. package/lib/module/screens/home/ItemMotoBikeLoan.js +2 -0
  52. package/lib/module/screens/home/ItemMotoBikeLoan.js.map +1 -0
  53. package/lib/module/screens/home/index.js +1 -1
  54. package/lib/module/screens/home/index.js.map +1 -1
  55. package/lib/module/screens/motobike/InfoLoanMotobike.js +2 -0
  56. package/lib/module/screens/motobike/InfoLoanMotobike.js.map +1 -0
  57. package/lib/module/screens/motobike/PolicyF88.js +2 -0
  58. package/lib/module/screens/motobike/PolicyF88.js.map +1 -0
  59. package/lib/module/screens/motobike/ReviewLoanMotobike.js +2 -0
  60. package/lib/module/screens/motobike/ReviewLoanMotobike.js.map +1 -0
  61. package/lib/module/screens/toan-trinh-so/TTSSelfie.js +1 -1
  62. package/lib/module/screens/toan-trinh-so/TTSSelfie.js.map +1 -1
  63. package/lib/module/screens/toan-trinh-so/VehicleRegistrationBack.js +1 -1
  64. package/lib/module/screens/toan-trinh-so/VehicleRegistrationBack.js.map +1 -1
  65. package/lib/module/services/api/api.js +1 -1
  66. package/lib/module/services/api/api.js.map +1 -1
  67. package/lib/typescript/assets/v3/index.d.ts +3 -1
  68. package/lib/typescript/assets/v3/index.d.ts.map +1 -1
  69. package/lib/typescript/components/MSelect.d.ts.map +1 -1
  70. package/lib/typescript/components/select/index.d.ts.map +1 -1
  71. package/lib/typescript/navigation/primary-navigator.d.ts +3 -0
  72. package/lib/typescript/navigation/primary-navigator.d.ts.map +1 -1
  73. package/lib/typescript/screens/home/ItemMotoBikeLoan.d.ts +8 -0
  74. package/lib/typescript/screens/home/ItemMotoBikeLoan.d.ts.map +1 -0
  75. package/lib/typescript/screens/home/index.d.ts.map +1 -1
  76. package/lib/typescript/screens/motobike/InfoLoanMotobike.d.ts +2 -0
  77. package/lib/typescript/screens/motobike/InfoLoanMotobike.d.ts.map +1 -0
  78. package/lib/typescript/screens/motobike/PolicyF88.d.ts +2 -0
  79. package/lib/typescript/screens/motobike/PolicyF88.d.ts.map +1 -0
  80. package/lib/typescript/screens/motobike/ReviewLoanMotobike.d.ts +2 -0
  81. package/lib/typescript/screens/motobike/ReviewLoanMotobike.d.ts.map +1 -0
  82. package/lib/typescript/screens/toan-trinh-so/TTSSelfie.d.ts.map +1 -1
  83. package/lib/typescript/screens/toan-trinh-so/VehicleRegistrationBack.d.ts.map +1 -1
  84. package/lib/typescript/services/api/api.d.ts +80 -0
  85. package/lib/typescript/services/api/api.d.ts.map +1 -1
  86. package/package.json +1 -1
  87. package/src/assets/tts/f88.png +0 -0
  88. package/src/assets/v3/11.svg +13 -0
  89. package/src/assets/v3/12.svg +21 -0
  90. package/src/assets/v3/index.tsx +4 -0
  91. package/src/components/MSelect.tsx +4 -2
  92. package/src/components/select/index.tsx +4 -2
  93. package/src/navigation/primary-navigator.tsx +15 -0
  94. package/src/screens/home/ItemMotoBikeLoan.tsx +845 -0
  95. package/src/screens/home/index.tsx +8 -1
  96. package/src/screens/motobike/InfoLoanMotobike.tsx +674 -0
  97. package/src/screens/motobike/PolicyF88.tsx +131 -0
  98. package/src/screens/motobike/ReviewLoanMotobike.tsx +453 -0
  99. package/src/screens/toan-trinh-so/TTSSelfie.tsx +4 -0
  100. package/src/screens/toan-trinh-so/VehicleRegistrationBack.tsx +28 -12
  101. package/src/services/api/api.ts +80 -0
  102. package/lib/commonjs/components/CommonSelect.js +0 -2
  103. package/lib/commonjs/components/CommonSelect.js.flow +0 -12
  104. package/lib/commonjs/components/CommonSelect.js.map +0 -1
  105. package/lib/module/components/CommonSelect.js +0 -2
  106. package/lib/module/components/CommonSelect.js.map +0 -1
  107. package/lib/typescript/components/CommonSelect.d.ts +0 -8
  108. package/lib/typescript/components/CommonSelect.d.ts.map +0 -1
  109. package/src/components/CommonSelect.tsx +0 -12
@@ -0,0 +1,131 @@
1
+ //@ts-nocheck
2
+ import React from 'react';
3
+ import { Dimensions, TouchableOpacity, View } from 'react-native';
4
+ import Pdf from 'react-native-pdf';
5
+ import { commonStyles } from '../CommonStyles';
6
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
7
+ import { CheckBox, CheckBoxActive, IconBack } from '../../assets/icons';
8
+ import { useNavigation } from '@react-navigation/native';
9
+ import { MText } from '../../components/MText';
10
+ import { Api } from '../../services/api';
11
+ import LinearGradient from 'react-native-linear-gradient';
12
+ export default function PolicyF88(props) {
13
+ const navigation = useNavigation();
14
+ const insets = useSafeAreaInsets();
15
+ const [check, setCheck] = React.useState(false);
16
+ const [isLoading, setIsLoading] = React.useState(false);
17
+ const { item } = props.route.params;
18
+ const confirm = async () => {
19
+ try {
20
+ setIsLoading(true);
21
+ const response = await Api.getInstance().confirmF88({
22
+ loanBriefId: item?.id,
23
+ });
24
+ if (response.kind === 'ok' && response.data?.meta?.errorCode === 200) {
25
+ navigation.goBack();
26
+ } else {
27
+ Alert.alert(
28
+ 'Thông báo',
29
+ response?.data?.meta?.errorMessage ||
30
+ 'Có lỗi xảy ra, vui lòng thử lại sau!'
31
+ );
32
+ }
33
+ } catch (error) {
34
+ Alert.alert('Thông báo', 'Có lỗi xảy ra, vui lòng thử lại sau');
35
+ } finally {
36
+ setIsLoading(false);
37
+ }
38
+ };
39
+ return (
40
+ <View style={{ flex: 1, backgroundColor: 'white' }}>
41
+ <View
42
+ style={{
43
+ marginTop: insets.top,
44
+ paddingVertical: 16,
45
+ alignItems: 'center',
46
+ justifyContent: 'center',
47
+ flexDirection: 'row',
48
+ }}
49
+ >
50
+ <TouchableOpacity
51
+ onPress={() => navigation.goBack()}
52
+ style={{
53
+ position: 'absolute',
54
+ left: 16,
55
+ }}
56
+ >
57
+ <IconBack />
58
+ </TouchableOpacity>
59
+ <MText
60
+ style={{
61
+ fontWeight: 'bold',
62
+ }}
63
+ >
64
+ ĐIỀU KIỆN VÀ ĐIỀU KHOẢN
65
+ </MText>
66
+ </View>
67
+ <View style={{ flex: 1 }}>
68
+ <Pdf
69
+ trustAllCerts={false}
70
+ source={{
71
+ uri: 'https://cdn.tima.vn/file-pdf/policy_f88.pdf',
72
+ }}
73
+ style={{
74
+ flex: 1,
75
+ width: Dimensions.get('window').width,
76
+ height: Dimensions.get('window').height,
77
+ }}
78
+ />
79
+ </View>
80
+ <View style={{ padding: 16 }}>
81
+ <View
82
+ style={{
83
+ flexDirection: 'row',
84
+ alignItems: 'center',
85
+ marginTop: 24,
86
+ gap: 8,
87
+ }}
88
+ >
89
+ <TouchableOpacity
90
+ onPress={() => {
91
+ setCheck(!check);
92
+ }}
93
+ >
94
+ {check ? <CheckBoxActive /> : <CheckBox />}
95
+ </TouchableOpacity>
96
+ <MText>
97
+ Tôi đồng ý với{' '}
98
+ <MText style={{ color: '#2F80ED' }}>điều kiện và điều khoản</MText>
99
+ </MText>
100
+ </View>
101
+ <TouchableOpacity
102
+ disabled={check || isLoading ? false : true}
103
+ onPress={() => {
104
+ confirm();
105
+ }}
106
+ >
107
+ <LinearGradient
108
+ colors={check ? ['#FF8E4F', '#EF592E'] : ['#E0E0E0', '#E0E0E0']}
109
+ style={{
110
+ height: 40,
111
+ alignItems: 'center',
112
+ justifyContent: 'center',
113
+ borderRadius: 24,
114
+ paddingHorizontal: 10,
115
+ marginTop: 24,
116
+ }}
117
+ >
118
+ <MText
119
+ style={{
120
+ color: 'white',
121
+ fontWeight: 'bold',
122
+ }}
123
+ >
124
+ Đồng ý & Tiếp tục
125
+ </MText>
126
+ </LinearGradient>
127
+ </TouchableOpacity>
128
+ </View>
129
+ </View>
130
+ );
131
+ }
@@ -0,0 +1,453 @@
1
+ //@ts-nocheck
2
+ import React, { useEffect, useRef, useState } from 'react';
3
+ import {
4
+ Alert,
5
+ ScrollView,
6
+ TextInput,
7
+ TextStyle,
8
+ TouchableOpacity,
9
+ View,
10
+ ViewStyle,
11
+ } from 'react-native';
12
+ import MHeader from '../../components/MHeader';
13
+ import { commonStyles } from '../CommonStyles';
14
+ import {
15
+ CheckBox,
16
+ CheckBoxActive,
17
+ DropDown2,
18
+ IconBack,
19
+ Tick2,
20
+ } from '../../assets/icons';
21
+ import { MText } from '../../components/MText';
22
+ import { CommonActions, useNavigation } from '@react-navigation/native';
23
+ import { ScreenNames } from '../../navigation';
24
+ import { Api } from '../../services/api';
25
+ import ttsStore from '../toan-trinh-so/store';
26
+ import appStore from '../../AppStore';
27
+ import { Formik } from 'formik';
28
+ import * as yup from 'yup';
29
+ import { formatMoney } from '../../utils';
30
+ import { color } from '../../theme';
31
+ import MButton from '../../components/MButton';
32
+ import KeyboardSpacer from '../../components/keyboardspace';
33
+ import LinearGradient from 'react-native-linear-gradient';
34
+ import Loading from '../../components/Loading';
35
+
36
+ export default function ReviewLoanMotobike(props) {
37
+ const navigation = useNavigation();
38
+ const loan = props?.route?.params?.loan;
39
+ const formRef = useRef(null);
40
+ const [isLoading, setIsLoading] = useState(false);
41
+
42
+ const onSubmit = async (values) => {
43
+ try {
44
+ setIsLoading(true);
45
+ const body = {
46
+ loanBriefId: loan?.id,
47
+ loanAmount: Number(values.loanAmount),
48
+ rateTypeId: values.rateTypeId,
49
+ loanTime: values.loanTime,
50
+ };
51
+
52
+ const response = await Api.getInstance().updateInfoMotobikeLoan2(body);
53
+ setIsLoading(false);
54
+ if (response.kind === 'ok') {
55
+ if (response.data?.meta?.errorCode === 200) {
56
+ navigation.dispatch(
57
+ CommonActions.reset({
58
+ index: 1,
59
+ routes: [{ name: ScreenNames.Main }],
60
+ })
61
+ );
62
+ } else {
63
+ Alert.alert('Thông báo', response.data?.meta?.errorMessage);
64
+ }
65
+ } else {
66
+ Alert.alert('Thông báo', 'Có lỗi xảy ra. Vui lòng thử lại sau');
67
+ }
68
+ } catch (error) {
69
+ setIsLoading(false);
70
+ console.log(error);
71
+ }
72
+ };
73
+
74
+ const getData = async () => {
75
+ try {
76
+ setIsLoading(true);
77
+ const response = await Api.getInstance().getInfoMotobikeLoan2(loan?.id);
78
+ setIsLoading(false);
79
+
80
+ if (response.kind === 'ok') {
81
+ if (response.data?.meta.errorCode === 200) {
82
+ formRef.current.setFieldValue(
83
+ 'loanAmount',
84
+ response?.data?.data?.loanAmount ?? 0
85
+ );
86
+ formRef.current.setFieldValue(
87
+ 'rateTypeId',
88
+ response?.data?.data?.rateTypeId ?? null
89
+ );
90
+
91
+ if (response?.data?.data?.rateTypeId) {
92
+ appStore.getLoanTimeByType(
93
+ response?.data?.data?.rateTypeId,
94
+ props.route?.params?.loan?.typeLoan ?? 0
95
+ );
96
+ }
97
+ formRef.current.setFieldValue(
98
+ 'loanTime',
99
+ response?.data?.data?.loanTime ?? null
100
+ );
101
+ } else {
102
+ }
103
+ }
104
+ } catch (error) {
105
+ setIsLoading(false);
106
+ console.log(error);
107
+ }
108
+ };
109
+
110
+ useEffect(() => {
111
+ getData();
112
+ appStore.getRateTypeAll();
113
+ }, []);
114
+
115
+ return (
116
+ <View style={{ flex: 1 }}>
117
+ <MHeader title="Vay Online 24/7" />
118
+ <View style={commonStyles.fill}>
119
+ <View style={$h} />
120
+ <View style={$bg}>
121
+ <View
122
+ style={{
123
+ paddingVertical: 10,
124
+ flexDirection: 'row',
125
+ alignItems: 'center',
126
+ paddingHorizontal: 16,
127
+ }}
128
+ >
129
+ <TouchableOpacity
130
+ style={{
131
+ zIndex: 1000,
132
+ }}
133
+ onPress={() => {
134
+ navigation.dispatch(
135
+ CommonActions.reset({
136
+ index: 1,
137
+ routes: [{ name: ScreenNames.Main }],
138
+ })
139
+ );
140
+ }}
141
+ >
142
+ <IconBack />
143
+ </TouchableOpacity>
144
+ <MText style={$title}>Thông tin chi tiết</MText>
145
+ </View>
146
+ <Formik
147
+ validateOnBlur={false}
148
+ validateOnChange={false}
149
+ innerRef={formRef}
150
+ onSubmit={onSubmit}
151
+ initialValues={{
152
+ loanAmount: '',
153
+ rateTypeId: null,
154
+ loanTime: null,
155
+ isCheck: true,
156
+ }}
157
+ validationSchema={yup.object().shape({
158
+ loanAmount: yup.string().required('Số tiền là bắt buộc'),
159
+ rateTypeId: yup.number().required('HTTT là bắt buộc').nullable(),
160
+ loanTime: yup
161
+ .number()
162
+ .required('Thời gian vay là bắt buộc')
163
+ .nullable(),
164
+ })}
165
+ >
166
+ {({
167
+ values,
168
+ setFieldValue,
169
+ errors,
170
+ handleSubmit,
171
+ handleChange,
172
+ }) => (
173
+ <ScrollView
174
+ style={[commonStyles.fill, { paddingHorizontal: 16 }]}
175
+ >
176
+ <MText style={$title2}>Thông tin đề nghị khoản vay</MText>
177
+ <View style={$row}>
178
+ <View style={{ flex: 1 }}>
179
+ <MText style={$label}>Số tiền đề nghị vay</MText>
180
+ <TextInput
181
+ numberOfLines={1}
182
+ style={[
183
+ $textInput,
184
+ {
185
+ color: '#EF592E',
186
+ fontSize: 16,
187
+ fontWeight: '500',
188
+ },
189
+ ]}
190
+ value={formatMoney(values.loanAmount)}
191
+ onChangeText={(text) => {
192
+ setFieldValue('loanAmount', text.replaceAll(',', ''));
193
+ }}
194
+ />
195
+ {errors && errors.loanAmount && (
196
+ <MText style={$error}>{errors.loanAmount}</MText>
197
+ )}
198
+ </View>
199
+ <View style={{ flex: 1 }}>
200
+ <MText style={$label}>Hình thức thanh toán</MText>
201
+ <TouchableOpacity
202
+ style={$select}
203
+ onPress={() => {
204
+ navigation.push(ScreenNames.MSelect, {
205
+ title: 'Chọn hình thức thanh toán',
206
+ data: appStore.listRateType,
207
+ callback: (value) => {
208
+ setFieldValue('rateTypeId', value?.id);
209
+ appStore.getLoanTimeByType(
210
+ value?.id,
211
+ props?.route?.params?.loan?.typeLoan ?? 0
212
+ );
213
+ setFieldValue('loanTime', null);
214
+ },
215
+ });
216
+ }}
217
+ >
218
+ <MText
219
+ numberOfLines={1}
220
+ style={{
221
+ color: '#333333',
222
+ fontSize: 16,
223
+ fontWeight: '500',
224
+ flex: 1,
225
+ fontFamily: 'BeVietnamPro-Medium',
226
+ }}
227
+ >
228
+ {
229
+ appStore.listRateType?.find(
230
+ (x) => x?.id === values.rateTypeId
231
+ )?.name
232
+ }
233
+ </MText>
234
+ <DropDown2 />
235
+ </TouchableOpacity>
236
+ {errors && errors.rateTypeId && (
237
+ <MText style={$error}>{errors.rateTypeId}</MText>
238
+ )}
239
+ </View>
240
+ </View>
241
+
242
+ <MText style={$label}>Thời gian vay</MText>
243
+ <TouchableOpacity
244
+ style={$select}
245
+ onPress={() => {
246
+ navigation.push(ScreenNames.MSelect, {
247
+ title: 'Chọn thời gian vay',
248
+ data: appStore.listLoanTimeByType,
249
+ callback: (value) => {
250
+ setFieldValue('loanTime', value?.id);
251
+ },
252
+ });
253
+ }}
254
+ >
255
+ <MText
256
+ numberOfLines={1}
257
+ style={{
258
+ color: '#333333',
259
+ fontSize: 16,
260
+ fontWeight: '500',
261
+ flex: 1,
262
+ fontFamily: 'BeVietnamPro-Medium',
263
+ }}
264
+ >
265
+ {values?.loanTime ? `${values?.loanTime} tháng` : ''}
266
+ </MText>
267
+ <DropDown2 />
268
+ </TouchableOpacity>
269
+ {errors && errors.loanTime && (
270
+ <MText style={$error}>{errors.loanTime}</MText>
271
+ )}
272
+ <View
273
+ style={{
274
+ backgroundColor: '#FFF8F2',
275
+ borderLeftWidth: 1,
276
+ borderRadius: 8,
277
+ padding: 16,
278
+ borderColor: color.primary,
279
+ marginTop: 10,
280
+ }}
281
+ >
282
+ <MText
283
+ style={{
284
+ color: color.primary,
285
+ fontWeight: 'bold',
286
+ }}
287
+ >
288
+ Bảo hiểm
289
+ </MText>
290
+ <View
291
+ style={{
292
+ flexDirection: 'row',
293
+ alignItems: 'center',
294
+ gap: 10,
295
+ marginTop: 10,
296
+ }}
297
+ >
298
+ <TouchableOpacity
299
+ onPress={() => {
300
+ setFieldValue('isCheck', !values.isCheck);
301
+ }}
302
+ >
303
+ {values.isCheck === true ? (
304
+ <CheckBoxActive />
305
+ ) : (
306
+ <CheckBox />
307
+ )}
308
+ </TouchableOpacity>
309
+ <View style={{ flex: 1 }}>
310
+ <MText
311
+ style={{
312
+ color: '#333333',
313
+ fontSize: 12,
314
+ fontWeight: 'bold',
315
+ }}
316
+ >
317
+ Bảo hiểm kèm khoản vay
318
+ </MText>
319
+ </View>
320
+ </View>
321
+ <View
322
+ style={{
323
+ height: 1,
324
+ backgroundColor: '#BDBDBD',
325
+ marginVertical: 8,
326
+ }}
327
+ />
328
+ <View style={{ flexDirection: 'row', gap: 5 }}>
329
+ <Tick2 />
330
+ <MText
331
+ style={{
332
+ fontSize: 10,
333
+ color: '#828282',
334
+ flex: 1,
335
+ }}
336
+ >
337
+ Gói vay kèm bảo hiểm giúp bạn an tâm và giảm áp lực tài
338
+ chính khi có rủi ro.
339
+ </MText>
340
+ </View>
341
+ </View>
342
+ </ScrollView>
343
+ )}
344
+ </Formik>
345
+ <MButton
346
+ onPress={() => {
347
+ formRef.current?.handleSubmit();
348
+ }}
349
+ style={{
350
+ marginVertical: 24,
351
+ marginHorizontal: 16,
352
+ }}
353
+ >
354
+ <LinearGradient
355
+ start={{ x: 1, y: 0 }}
356
+ end={{ x: 0, y: 1 }}
357
+ style={{
358
+ height: 40,
359
+ marginVertical: 16,
360
+ borderRadius: 30,
361
+ alignItems: 'center',
362
+ justifyContent: 'center',
363
+ }}
364
+ colors={['#FF7A00', '#EF4123']}
365
+ >
366
+ <MText
367
+ style={{
368
+ color: 'white',
369
+ fontSize: 16,
370
+ }}
371
+ >
372
+ Tiếp tục
373
+ </MText>
374
+ </LinearGradient>
375
+ </MButton>
376
+ <KeyboardSpacer />
377
+ </View>
378
+ </View>
379
+ <Loading isLoading={isLoading} />
380
+ </View>
381
+ );
382
+ }
383
+ const $row: ViewStyle = {
384
+ flexDirection: 'row',
385
+ // alignItems: 'center',
386
+ marginBottom: 16,
387
+ gap: 16,
388
+ };
389
+
390
+ const $textInput: ViewStyle = {
391
+ borderWidth: 1,
392
+ borderRadius: 4,
393
+ borderColor: '#E0E0E0',
394
+ height: 40,
395
+ paddingHorizontal: 8,
396
+ fontFamily: 'BeVietnamPro-Medium',
397
+ };
398
+
399
+ const $label: TextStyle = {
400
+ fontSize: 14,
401
+ color: '#333333',
402
+ paddingBottom: 5,
403
+ };
404
+
405
+ const $title2: TextStyle = {
406
+ fontSize: 16,
407
+ fontWeight: 'bold',
408
+ color: '#333333',
409
+ paddingBottom: 10,
410
+ marginTop: 6,
411
+ };
412
+
413
+ const $title: TextStyle = {
414
+ fontSize: 16,
415
+ fontWeight: 'bold',
416
+ color: '#333333',
417
+ position: 'absolute',
418
+ left: 0,
419
+ right: 0,
420
+ textAlign: 'center',
421
+ };
422
+ const $h: ViewStyle = {
423
+ backgroundColor: '#EF592E',
424
+ position: 'absolute',
425
+ height: 30,
426
+ width: '100%',
427
+ };
428
+
429
+ const $bg: ViewStyle = {
430
+ borderTopLeftRadius: 30,
431
+ borderTopRightRadius: 30,
432
+ backgroundColor: 'white',
433
+ flex: 1,
434
+ };
435
+
436
+ const $select: ViewStyle = {
437
+ flexDirection: 'row',
438
+ height: 40,
439
+ alignItems: 'center',
440
+ paddingHorizontal: 8,
441
+ borderWidth: 1,
442
+ borderRadius: 4,
443
+ borderColor: '#E0E0E0',
444
+ };
445
+
446
+ const $error: TextStyle = {
447
+ color: '#EB5757',
448
+ fontSize: 14,
449
+ fontStyle: 'italic',
450
+ fontFamily: 'BeVietnamPro-Thin',
451
+ fontWeight: '300',
452
+ marginTop: 5,
453
+ };
@@ -183,6 +183,10 @@ export default function TTSSelfie(props: any) {
183
183
  navigation.push(ScreenNames.TopupLoanInfo, {
184
184
  loan: props?.route?.params?.loan,
185
185
  });
186
+ } else if (props?.route?.params?.loan?.typeLoan === 8) {
187
+ navigation.push(ScreenNames.InfoLoanMotobike, {
188
+ loan: props?.route?.params?.loan,
189
+ });
186
190
  } else {
187
191
  navigation.push(ScreenNames.ReviewInformation, {
188
192
  loan: props?.route?.params?.loan,
@@ -78,19 +78,35 @@ export default function VehicleRegistrationBack(props: any) {
78
78
  // loan: props?.route?.params?.loan,
79
79
  // front: true,
80
80
  // });
81
- navigation.dispatch(
82
- CommonActions.reset({
83
- index: 1,
84
- routes: [
85
- {
86
- name: ScreenNames.AssetInformation,
87
- params: {
88
- loan: props?.route?.params?.loan,
81
+ if (props?.route?.params?.loan?.typeLoan === 8) {
82
+ navigation.dispatch(
83
+ CommonActions.reset({
84
+ index: 1,
85
+ routes: [
86
+ {
87
+ name: ScreenNames.ReviewLoanMotobike,
88
+ params: {
89
+ loan: props?.route?.params?.loan,
90
+ },
89
91
  },
90
- },
91
- ],
92
- })
93
- );
92
+ ],
93
+ })
94
+ );
95
+ } else {
96
+ navigation.dispatch(
97
+ CommonActions.reset({
98
+ index: 1,
99
+ routes: [
100
+ {
101
+ name: ScreenNames.AssetInformation,
102
+ params: {
103
+ loan: props?.route?.params?.loan,
104
+ },
105
+ },
106
+ ],
107
+ })
108
+ );
109
+ }
94
110
  } else {
95
111
  Alert.alert('Thông báo', response.data?.meta?.errorMessage);
96
112
  }