react-native-timacare 3.3.45 → 3.3.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/assets/svgs/question.svg +1 -7
- package/lib/commonjs/components/ItemTimaOneV3.js +1 -1
- package/lib/commonjs/components/ItemTimaOneV3.js.flow +29 -29
- package/lib/commonjs/components/ItemTimaOneV3.js.map +1 -1
- package/lib/commonjs/components/SkeletonLoanCard.js +1 -1
- package/lib/commonjs/components/SkeletonLoanCard.js.flow +58 -0
- package/lib/commonjs/components/SkeletonLoanCard.js.map +1 -1
- package/lib/commonjs/navigation/navigationRef.js +1 -1
- package/lib/commonjs/navigation/navigationRef.js.flow +65 -33
- package/lib/commonjs/navigation/navigationRef.js.map +1 -1
- package/lib/commonjs/navigation/primary-navigator.js +1 -1
- package/lib/commonjs/navigation/primary-navigator.js.flow +46 -7
- package/lib/commonjs/navigation/primary-navigator.js.map +1 -1
- package/lib/commonjs/screens/detail-loan-tima/InforLoan.js +2 -0
- package/lib/commonjs/screens/detail-loan-tima/InforLoan.js.flow +199 -0
- package/lib/commonjs/screens/detail-loan-tima/InforLoan.js.map +1 -0
- package/lib/commonjs/screens/detail-loan-tima/PaymentSchedule.js +2 -0
- package/lib/commonjs/screens/{detail-loan/DetailLoanTima.js.flow → detail-loan-tima/PaymentSchedule.js.flow} +107 -118
- package/lib/commonjs/screens/detail-loan-tima/PaymentSchedule.js.map +1 -0
- package/lib/commonjs/screens/detail-loan-tima/index.js +2 -0
- package/lib/commonjs/screens/detail-loan-tima/index.js.flow +109 -0
- package/lib/commonjs/screens/detail-loan-tima/index.js.map +1 -0
- package/lib/commonjs/screens/home/DigitalTopupItem.js +1 -1
- package/lib/commonjs/screens/home/DigitalTopupItem.js.flow +2 -2
- package/lib/commonjs/screens/home/DigitalTopupItem.js.map +1 -1
- package/lib/commonjs/screens/home/ItemMotoBikeLoan.js +1 -1
- package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.flow +2 -2
- package/lib/commonjs/services/api/api.js +1 -1
- package/lib/commonjs/services/api/api.js.flow +33 -7
- package/lib/commonjs/services/api/api.js.map +1 -1
- package/lib/module/assets/svgs/question.svg +1 -7
- package/lib/module/components/ItemTimaOneV3.js +1 -1
- package/lib/module/components/ItemTimaOneV3.js.map +1 -1
- package/lib/module/components/SkeletonLoanCard.js +1 -1
- package/lib/module/components/SkeletonLoanCard.js.map +1 -1
- package/lib/module/navigation/navigationRef.js +1 -1
- package/lib/module/navigation/navigationRef.js.map +1 -1
- package/lib/module/navigation/primary-navigator.js +1 -1
- package/lib/module/navigation/primary-navigator.js.map +1 -1
- package/lib/module/screens/detail-loan-tima/InforLoan.js +2 -0
- package/lib/module/screens/detail-loan-tima/InforLoan.js.map +1 -0
- package/lib/module/screens/detail-loan-tima/PaymentSchedule.js +2 -0
- package/lib/module/screens/detail-loan-tima/PaymentSchedule.js.map +1 -0
- package/lib/module/screens/detail-loan-tima/index.js +2 -0
- package/lib/module/screens/detail-loan-tima/index.js.map +1 -0
- package/lib/module/screens/home/DigitalTopupItem.js +1 -1
- package/lib/module/screens/home/DigitalTopupItem.js.map +1 -1
- package/lib/module/screens/home/ItemMotoBikeLoan.js +1 -1
- package/lib/module/services/api/api.js +1 -1
- package/lib/module/services/api/api.js.map +1 -1
- package/lib/typescript/components/SkeletonLoanCard.d.ts +3 -0
- package/lib/typescript/components/SkeletonLoanCard.d.ts.map +1 -1
- package/lib/typescript/navigation/navigationRef.d.ts +47 -8
- package/lib/typescript/navigation/navigationRef.d.ts.map +1 -1
- package/lib/typescript/navigation/primary-navigator.d.ts +9 -2
- package/lib/typescript/navigation/primary-navigator.d.ts.map +1 -1
- package/lib/typescript/screens/detail-loan-tima/InforLoan.d.ts +4 -0
- package/lib/typescript/screens/detail-loan-tima/InforLoan.d.ts.map +1 -0
- package/lib/typescript/screens/detail-loan-tima/PaymentSchedule.d.ts +2 -0
- package/lib/typescript/screens/detail-loan-tima/PaymentSchedule.d.ts.map +1 -0
- package/lib/typescript/screens/detail-loan-tima/index.d.ts +2 -0
- package/lib/typescript/screens/detail-loan-tima/index.d.ts.map +1 -0
- package/lib/typescript/services/api/api.d.ts +16 -0
- package/lib/typescript/services/api/api.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/assets/svgs/question.svg +1 -7
- package/src/components/ItemTimaOneV3.tsx +29 -29
- package/src/components/SkeletonLoanCard.tsx +58 -0
- package/src/navigation/navigationRef.ts +65 -33
- package/src/navigation/primary-navigator.tsx +46 -7
- package/src/screens/detail-loan-tima/InforLoan.tsx +199 -0
- package/src/screens/{detail-loan/DetailLoanTima.tsx → detail-loan-tima/PaymentSchedule.tsx} +107 -118
- package/src/screens/detail-loan-tima/index.tsx +109 -0
- package/src/screens/home/DigitalTopupItem.tsx +2 -2
- package/src/screens/home/ItemMotoBikeLoan.tsx +2 -2
- package/src/services/api/api.ts +33 -7
- package/lib/commonjs/screens/detail-loan/DetailLoanTima.js +0 -2
- package/lib/commonjs/screens/detail-loan/DetailLoanTima.js.map +0 -1
- package/lib/module/screens/detail-loan/DetailLoanTima.js +0 -2
- package/lib/module/screens/detail-loan/DetailLoanTima.js.map +0 -1
- package/lib/typescript/screens/detail-loan/DetailLoanTima.d.ts +0 -2
- package/lib/typescript/screens/detail-loan/DetailLoanTima.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkeletonLoanCard.d.ts","sourceRoot":"","sources":["../../../src/components/SkeletonLoanCard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SkeletonLoanCard.d.ts","sourceRoot":"","sources":["../../../src/components/SkeletonLoanCard.tsx"],"names":[],"mappings":"AA6QA,wBAAgB,2BAA2B,CAAC,EAC1C,KAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,eAQA;AAGD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,KAAS,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,eAQzE;AAGD,wBAAgB,qBAAqB,CAAC,EAAE,KAAS,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,eAQtE"}
|
|
@@ -1,14 +1,53 @@
|
|
|
1
|
-
export declare const setNavigationRef: (ref: any) => void;
|
|
2
|
-
export declare const setSdkNavigation: (nav: any) => void;
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
2
|
+
* Navigation bridge for the Timacare SDK.
|
|
3
|
+
*
|
|
4
|
+
* SDK screens (DetailLoan, DetailLoanTima, ...) live ONLY inside the SDK's
|
|
5
|
+
* PrimaryNavigator. There are two situations the SDK has to drive navigation in:
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* 1. The SDK navigator is currently mounted (the user is somewhere inside the
|
|
8
|
+
* SDK). We then navigate using the navigator's OWN navigation object — see
|
|
9
|
+
* `sdkNavigation`, captured from inside PrimaryNavigator. React Navigation's
|
|
10
|
+
* `navigate()` only bubbles UP to parents, never DOWN into descendants, so
|
|
11
|
+
* the host's root container ref cannot reach a nested SDK screen — but the
|
|
12
|
+
* SDK navigator's own object can.
|
|
10
13
|
*
|
|
11
|
-
*
|
|
14
|
+
* 2. The SDK navigator is NOT mounted (e.g. the host shows its own home with a
|
|
15
|
+
* loan list and only mounts <RNTimacare/> under a dedicated route). Here we
|
|
16
|
+
* need the host's NavigationContainer ref AND the name of the host route that
|
|
17
|
+
* mounts the SDK, so we can mount it and deep-link in one nested navigate.
|
|
18
|
+
*
|
|
19
|
+
* The host registers both via `setNavigationRef(ref, hostRoute)`.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Register the host's NavigationContainer ref, and optionally the host route
|
|
23
|
+
* name under which <RNTimacare/> is mounted.
|
|
24
|
+
*
|
|
25
|
+
* Accepts either ref form:
|
|
26
|
+
* - the object from `createNavigationContainerRef()` / `useNavigationContainerRef()`
|
|
27
|
+
* (methods live directly on it), or
|
|
28
|
+
* - a plain `useRef()` passed to <NavigationContainer ref={ref}> (methods on `.current`).
|
|
29
|
+
*/
|
|
30
|
+
export declare const setNavigationRef: (ref: any, route?: null) => void;
|
|
31
|
+
/** Set/override the host route that mounts the SDK navigator. */
|
|
32
|
+
export declare const setHostRoute: (route: any) => void;
|
|
33
|
+
export declare const getHostRoute: () => any;
|
|
34
|
+
/**
|
|
35
|
+
* Registered from inside PrimaryNavigator while it is mounted (and cleared on
|
|
36
|
+
* unmount, so we never hand out a stale/detached handle).
|
|
37
|
+
*/
|
|
38
|
+
export declare const setSdkNavigation: (nav: any) => void;
|
|
39
|
+
/** The SDK navigator's own navigation object, if currently mounted. */
|
|
40
|
+
export declare const getSdkNavigation: () => any;
|
|
41
|
+
/**
|
|
42
|
+
* Resolves the host ref down to the actual NavigationContainerRef, regardless of
|
|
43
|
+
* which ref form the host provided. Returns null when nothing is registered yet
|
|
44
|
+
* or the container isn't ready.
|
|
45
|
+
*/
|
|
46
|
+
export declare const getHostNavigation: () => any;
|
|
47
|
+
/**
|
|
48
|
+
* Backwards-compatible resolver: prefers the SDK navigator's own object, falling
|
|
49
|
+
* back to the host ref (which only reaches SDK screens when the host mounts
|
|
50
|
+
* PrimaryNavigator as its root). Prefer `goDetail()` for deep-linking.
|
|
12
51
|
*/
|
|
13
52
|
export declare const getNavigation: () => any;
|
|
14
53
|
//# sourceMappingURL=navigationRef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigationRef.d.ts","sourceRoot":"","sources":["../../../src/navigation/navigationRef.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"navigationRef.d.ts","sourceRoot":"","sources":["../../../src/navigation/navigationRef.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAYH;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,kCAK5B,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,YAAY,sBAExB,CAAC;AAEF,eAAO,MAAM,YAAY,WAAkB,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,gBAAgB,oBAE5B,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,WAK5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,WAY7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,WAEzB,CAAC"}
|
|
@@ -77,12 +77,19 @@ export declare const canExit: (routeName: string) => boolean;
|
|
|
77
77
|
* Imperatively navigate into a loan detail screen from outside React.
|
|
78
78
|
*
|
|
79
79
|
* Intended for the host app to deep-link the user straight into a loan detail
|
|
80
|
-
* (e.g. from a push notification or a list rendered outside the SDK).
|
|
81
|
-
* the host to register its NavigationContainer ref once via `setNavigationRef()`.
|
|
80
|
+
* (e.g. from a push notification or a list rendered outside the SDK).
|
|
82
81
|
*
|
|
83
82
|
* Accepts either a loan id or a partial loan object. The detail screen only
|
|
84
83
|
* needs `id` to fetch its data; `disbursementPartner` (when provided) selects
|
|
85
84
|
* the matching screen — 'CIMB' -> DetailLoan, otherwise -> DetailLoanTima.
|
|
85
|
+
*
|
|
86
|
+
* Resolution order:
|
|
87
|
+
* 1. SDK navigator already mounted -> navigate within it directly.
|
|
88
|
+
* 2. SDK not mounted, but the host registered its ref + the route that mounts
|
|
89
|
+
* <RNTimacare/> (via `setNavigationRef(ref, hostRoute)`) -> mount the SDK and
|
|
90
|
+
* deep-link in one nested navigate.
|
|
91
|
+
* 3. Fallback: dispatch on the host ref directly (only reaches SDK screens when
|
|
92
|
+
* the host mounts PrimaryNavigator as its root navigator).
|
|
86
93
|
*/
|
|
87
94
|
export declare function goDetail(loan: number | {
|
|
88
95
|
id: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primary-navigator.d.ts","sourceRoot":"","sources":["../../../src/navigation/primary-navigator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"primary-navigator.d.ts","sourceRoot":"","sources":["../../../src/navigation/primary-navigator.tsx"],"names":[],"mappings":"AAsFA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEvB,CAAC;AAIF,wBAAgB,gBAAgB,CAAC,KAAK,KAAA,eA6KrC;AAGD,eAAO,MAAM,OAAO,cAAe,MAAM,YAAmC,CAAC;AAE7E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAE,QAmC5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InforLoan.d.ts","sourceRoot":"","sources":["../../../../src/screens/detail-loan-tima/InforLoan.tsx"],"names":[],"mappings":"AA4CA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,eA0JvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaymentSchedule.d.ts","sourceRoot":"","sources":["../../../../src/screens/detail-loan-tima/PaymentSchedule.tsx"],"names":[],"mappings":"AAqBA,eAAO,MAAM,eAAe,KAwO1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screens/detail-loan-tima/index.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,cAAc,KAsFzB,CAAC"}
|
|
@@ -3063,5 +3063,21 @@ export declare class Api {
|
|
|
3063
3063
|
kind: string;
|
|
3064
3064
|
data?: undefined;
|
|
3065
3065
|
}>;
|
|
3066
|
+
get_detail_loan_tima(id: any): Promise<{
|
|
3067
|
+
kind: "timeout";
|
|
3068
|
+
temporary: true;
|
|
3069
|
+
} | {
|
|
3070
|
+
kind: "cannot-connect";
|
|
3071
|
+
temporary: true;
|
|
3072
|
+
} | {
|
|
3073
|
+
kind: "unknown";
|
|
3074
|
+
temporary: true;
|
|
3075
|
+
} | {
|
|
3076
|
+
kind: string;
|
|
3077
|
+
data: any;
|
|
3078
|
+
} | {
|
|
3079
|
+
kind: string;
|
|
3080
|
+
data?: undefined;
|
|
3081
|
+
}>;
|
|
3066
3082
|
}
|
|
3067
3083
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/services/api/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,UAAU,CAAC;AAOjE,OAAO,EAAgB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAuC1D;;GAEG;AACH,qBAAa,GAAG;IACd,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAM;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAkB;IAEtC;;;;OAIG;IACH,OAAO,CAAC,WAAW,CAAiB;IAEpC,wEAAwE;IACxE,OAAO,CAAC,kBAAkB,CAAC,CAAa;IAExC;;OAEG;IAEH;;;;OAIG;gBACS,MAAM,GAAE,SAA0B;WAKhC,WAAW,IAAI,GAAG;IAiBhC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/services/api/api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
1
|
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6ZM6.5 9C6.5 9.27614 6.27614 9.5 6 9.5C5.72386 9.5 5.5 9.27614 5.5 9C5.5 8.72386 5.72386 8.5 6 8.5C6.27614 8.5 6.5 8.72386 6.5 9ZM5.05676 4.66662C5.19428 4.27755 5.56536 4 5.99999 4C6.55227 4 6.99999 4.44772 6.99999 5C6.99999 5.55228 6.55227 6 5.99999 6C5.72385 6 5.49999 6.22386 5.49999 6.5V7.25C5.49999 7.52614 5.72385 7.75 5.99999 7.75C6.27613 7.75 6.49999 7.52614 6.49999 7.25V6.93699C7.3626 6.71497 7.99999 5.93192 7.99999 5C7.99999 3.89543 7.10456 3 5.99999 3C5.12839 3 4.38824 3.55726 4.11392 4.33338C4.0219 4.59373 4.15836 4.8794 4.41872 4.97142C4.67908 5.06344 4.96474 4.92698 5.05676 4.66662Z" fill="
|
|
3
|
-
<defs>
|
|
4
|
-
<linearGradient id="paint0_linear_11801_37899" x1="11" y1="11" x2="-0.362587" y2="9.08504" gradientUnits="userSpaceOnUse">
|
|
5
|
-
<stop stop-color="#FF8E4F"/>
|
|
6
|
-
<stop offset="1" stop-color="#EF592E"/>
|
|
7
|
-
</linearGradient>
|
|
8
|
-
</defs>
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6ZM6.5 9C6.5 9.27614 6.27614 9.5 6 9.5C5.72386 9.5 5.5 9.27614 5.5 9C5.5 8.72386 5.72386 8.5 6 8.5C6.27614 8.5 6.5 8.72386 6.5 9ZM5.05676 4.66662C5.19428 4.27755 5.56536 4 5.99999 4C6.55227 4 6.99999 4.44772 6.99999 5C6.99999 5.55228 6.55227 6 5.99999 6C5.72385 6 5.49999 6.22386 5.49999 6.5V7.25C5.49999 7.52614 5.72385 7.75 5.99999 7.75C6.27613 7.75 6.49999 7.52614 6.49999 7.25V6.93699C7.3626 6.71497 7.99999 5.93192 7.99999 5C7.99999 3.89543 7.10456 3 5.99999 3C5.12839 3 4.38824 3.55726 4.11392 4.33338C4.0219 4.59373 4.15836 4.8794 4.41872 4.97142C4.67908 5.06344 4.96474 4.92698 5.05676 4.66662Z" fill="#2F80ED"/>
|
|
9
3
|
</svg>
|
|
@@ -111,11 +111,11 @@ export default function ItemTimaOneV3({ item, navigation }: IProps) {
|
|
|
111
111
|
>
|
|
112
112
|
{item?.listLoanAllAutoDE && item?.listLoanAllAutoDE.length > 0
|
|
113
113
|
? formatMoney(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
item?.listLoanAllAutoDE.reduce(
|
|
115
|
+
(sum, item) => sum + item.totalMoney,
|
|
116
|
+
0
|
|
117
|
+
)
|
|
117
118
|
)
|
|
118
|
-
)
|
|
119
119
|
: formatMoney(item?.loanAmount)}
|
|
120
120
|
đ
|
|
121
121
|
</MText>
|
|
@@ -268,8 +268,8 @@ export default function ItemTimaOneV3({ item, navigation }: IProps) {
|
|
|
268
268
|
item?.step < 3
|
|
269
269
|
? '#999999'
|
|
270
270
|
: item?.step === 3
|
|
271
|
-
|
|
272
|
-
|
|
271
|
+
? '#EF592E'
|
|
272
|
+
: '#333333',
|
|
273
273
|
}}
|
|
274
274
|
>
|
|
275
275
|
Thông tin{'\n'}khoản vay
|
|
@@ -321,8 +321,8 @@ export default function ItemTimaOneV3({ item, navigation }: IProps) {
|
|
|
321
321
|
item?.step < 4
|
|
322
322
|
? '#999999'
|
|
323
323
|
: item?.step === 4 || item?.step === 5 || item?.step === 6
|
|
324
|
-
|
|
325
|
-
|
|
324
|
+
? '#EF592E'
|
|
325
|
+
: '#333333',
|
|
326
326
|
}}
|
|
327
327
|
>
|
|
328
328
|
Thông tin{'\n'}cá nhân
|
|
@@ -353,8 +353,8 @@ export default function ItemTimaOneV3({ item, navigation }: IProps) {
|
|
|
353
353
|
item?.step < 9 || item?.step === 100
|
|
354
354
|
? '#999999'
|
|
355
355
|
: item?.step === 9
|
|
356
|
-
|
|
357
|
-
|
|
356
|
+
? '#EF592E'
|
|
357
|
+
: '#333333',
|
|
358
358
|
}}
|
|
359
359
|
>
|
|
360
360
|
EKYC
|
|
@@ -385,8 +385,8 @@ export default function ItemTimaOneV3({ item, navigation }: IProps) {
|
|
|
385
385
|
item?.step < 10 || item?.step === 100
|
|
386
386
|
? '#999999'
|
|
387
387
|
: item?.step === 10
|
|
388
|
-
|
|
389
|
-
|
|
388
|
+
? '#EF592E'
|
|
389
|
+
: '#333333',
|
|
390
390
|
}}
|
|
391
391
|
>
|
|
392
392
|
Ký hợp{'\n'}đồng
|
|
@@ -397,7 +397,7 @@ export default function ItemTimaOneV3({ item, navigation }: IProps) {
|
|
|
397
397
|
{item?.step !== 11 ? (
|
|
398
398
|
<View
|
|
399
399
|
style={{
|
|
400
|
-
backgroundColor: '#
|
|
400
|
+
backgroundColor: '#EEF7FF',
|
|
401
401
|
flexDirection: 'row',
|
|
402
402
|
alignItems: 'center',
|
|
403
403
|
gap: 4,
|
|
@@ -407,7 +407,7 @@ export default function ItemTimaOneV3({ item, navigation }: IProps) {
|
|
|
407
407
|
marginTop: 16,
|
|
408
408
|
}}
|
|
409
409
|
>
|
|
410
|
-
<IconQuestion/>
|
|
410
|
+
<IconQuestion />
|
|
411
411
|
<MText
|
|
412
412
|
style={{
|
|
413
413
|
fontSize: 10,
|
|
@@ -420,7 +420,7 @@ export default function ItemTimaOneV3({ item, navigation }: IProps) {
|
|
|
420
420
|
<MText
|
|
421
421
|
style={{
|
|
422
422
|
fontSize: 10,
|
|
423
|
-
color:
|
|
423
|
+
color: '#2F80ED',
|
|
424
424
|
textDecorationLine: 'underline',
|
|
425
425
|
}}
|
|
426
426
|
>
|
|
@@ -469,14 +469,14 @@ export default function ItemTimaOneV3({ item, navigation }: IProps) {
|
|
|
469
469
|
{item?.step <= 1
|
|
470
470
|
? 'Chờ cập nhật thông tin tài sản'
|
|
471
471
|
: item?.step === 3
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
472
|
+
? `Chờ cập nhật thông tin khoản vay`
|
|
473
|
+
: item?.step === 4 || item?.step === 5 || item?.step === 6
|
|
474
|
+
? `Chờ cập nhật thông tin cá nhân`
|
|
475
|
+
: item?.step === 9
|
|
476
|
+
? `Chờ cập nhật eKYC`
|
|
477
|
+
: item?.step === 11
|
|
478
|
+
? `Hợp đồng đã ký thành công. Vui lòng chờ chuyên viên tư vấn liên hệ`
|
|
479
|
+
: 'Đơn vay đang trong quá trình xử lý'}
|
|
480
480
|
</MText>
|
|
481
481
|
</View>
|
|
482
482
|
{item?.step <= 1 ? (
|
|
@@ -778,12 +778,12 @@ export default function ItemTimaOneV3({ item, navigation }: IProps) {
|
|
|
778
778
|
{item?.step <= 1
|
|
779
779
|
? 'Vui lòng cập nhật thông tin tài sản để được giải ngân sớm nhất!'
|
|
780
780
|
: item?.step === 3
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
781
|
+
? `Vui lòng cập nhật thông tin khoản vay để được giải ngân sớm nhất!`
|
|
782
|
+
: item?.step === 4 || item?.step === 5 || item?.step === 6
|
|
783
|
+
? `Vui lòng cập nhật thông tin cá nhân để được giải ngân sớm nhất!`
|
|
784
|
+
: item?.step === 9
|
|
785
|
+
? `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é!`
|
|
786
|
+
: 'Đơn vay đang trong quá trình xử lý'}
|
|
787
787
|
</MText>
|
|
788
788
|
</View>
|
|
789
789
|
) : (
|
|
@@ -223,6 +223,64 @@ const SkeletonDisbursedCard = () => {
|
|
|
223
223
|
);
|
|
224
224
|
};
|
|
225
225
|
|
|
226
|
+
// Placeholder mô phỏng 1 dòng trong bảng lịch thanh toán khi đang tải
|
|
227
|
+
const SkeletonPaymentRow = () => {
|
|
228
|
+
const opacity = usePulse();
|
|
229
|
+
|
|
230
|
+
return (
|
|
231
|
+
<View
|
|
232
|
+
style={{
|
|
233
|
+
flexDirection: 'row',
|
|
234
|
+
alignItems: 'center',
|
|
235
|
+
paddingVertical: 16,
|
|
236
|
+
borderBottomWidth: 1,
|
|
237
|
+
borderColor: '#E0E0E0',
|
|
238
|
+
}}
|
|
239
|
+
>
|
|
240
|
+
{/* Ngày thanh toán */}
|
|
241
|
+
<View style={{ width: '35%' }}>
|
|
242
|
+
<SkeletonBlock width="80%" height={14} opacity={opacity} />
|
|
243
|
+
</View>
|
|
244
|
+
|
|
245
|
+
{/* Số tiền thanh toán + trạng thái */}
|
|
246
|
+
<View style={{ width: '40%', alignItems: 'center' }}>
|
|
247
|
+
<SkeletonBlock width="70%" height={14} opacity={opacity} />
|
|
248
|
+
<SkeletonBlock
|
|
249
|
+
width="50%"
|
|
250
|
+
height={10}
|
|
251
|
+
opacity={opacity}
|
|
252
|
+
style={{ marginTop: 6 }}
|
|
253
|
+
/>
|
|
254
|
+
</View>
|
|
255
|
+
|
|
256
|
+
{/* Nút thanh toán */}
|
|
257
|
+
<View style={{ flex: 1, alignItems: 'flex-end' }}>
|
|
258
|
+
<SkeletonBlock
|
|
259
|
+
width={72}
|
|
260
|
+
height={30}
|
|
261
|
+
borderRadius={24}
|
|
262
|
+
opacity={opacity}
|
|
263
|
+
/>
|
|
264
|
+
</View>
|
|
265
|
+
</View>
|
|
266
|
+
);
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
// Danh sách skeleton bảng lịch thanh toán hiển thị khi đang tải
|
|
270
|
+
export function SkeletonPaymentScheduleList({
|
|
271
|
+
count = 6,
|
|
272
|
+
}: {
|
|
273
|
+
count?: number;
|
|
274
|
+
}) {
|
|
275
|
+
return (
|
|
276
|
+
<View style={{ paddingHorizontal: 16, marginTop: 16 }}>
|
|
277
|
+
{Array.from({ length: count }).map((_, index) => (
|
|
278
|
+
<SkeletonPaymentRow key={index} />
|
|
279
|
+
))}
|
|
280
|
+
</View>
|
|
281
|
+
);
|
|
282
|
+
}
|
|
283
|
+
|
|
226
284
|
// Danh sách skeleton đơn mới hiển thị khi đang tải lần đầu (chưa có dữ liệu)
|
|
227
285
|
export default function SkeletonLoanList({ count = 2 }: { count?: number }) {
|
|
228
286
|
return (
|
|
@@ -2,56 +2,79 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Navigation bridge for the Timacare SDK.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* right after the container mounts). The SDK then uses it to drive navigation
|
|
8
|
-
* imperatively from outside React — e.g. deep-linking into a loan detail via
|
|
9
|
-
* `goDetail()`.
|
|
5
|
+
* SDK screens (DetailLoan, DetailLoanTima, ...) live ONLY inside the SDK's
|
|
6
|
+
* PrimaryNavigator. There are two situations the SDK has to drive navigation in:
|
|
10
7
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
8
|
+
* 1. The SDK navigator is currently mounted (the user is somewhere inside the
|
|
9
|
+
* SDK). We then navigate using the navigator's OWN navigation object — see
|
|
10
|
+
* `sdkNavigation`, captured from inside PrimaryNavigator. React Navigation's
|
|
11
|
+
* `navigate()` only bubbles UP to parents, never DOWN into descendants, so
|
|
12
|
+
* the host's root container ref cannot reach a nested SDK screen — but the
|
|
13
|
+
* SDK navigator's own object can.
|
|
14
|
+
*
|
|
15
|
+
* 2. The SDK navigator is NOT mounted (e.g. the host shows its own home with a
|
|
16
|
+
* loan list and only mounts <RNTimacare/> under a dedicated route). Here we
|
|
17
|
+
* need the host's NavigationContainer ref AND the name of the host route that
|
|
18
|
+
* mounts the SDK, so we can mount it and deep-link in one nested navigate.
|
|
19
|
+
*
|
|
20
|
+
* The host registers both via `setNavigationRef(ref, hostRoute)`.
|
|
16
21
|
*/
|
|
22
|
+
|
|
23
|
+
// Host's NavigationContainer ref (or a plain useRef passed to the container).
|
|
17
24
|
let externalNavigationRef = null;
|
|
18
25
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
// Name of the host route whose screen renders <RNTimacare/> (PrimaryNavigator).
|
|
27
|
+
// Required to deep-link into the SDK when the SDK navigator isn't mounted yet.
|
|
28
|
+
let hostRoute = null;
|
|
29
|
+
|
|
30
|
+
// Navigation object scoped to the SDK navigator, captured from inside its tree.
|
|
31
|
+
let sdkNavigation = null;
|
|
22
32
|
|
|
23
33
|
/**
|
|
24
|
-
*
|
|
34
|
+
* Register the host's NavigationContainer ref, and optionally the host route
|
|
35
|
+
* name under which <RNTimacare/> is mounted.
|
|
25
36
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* own root. Registering the SDK navigator's own navigation object (captured from
|
|
31
|
-
* inside its tree) lets `getNavigation()` dispatch directly on the navigator that
|
|
32
|
-
* actually owns those screens.
|
|
37
|
+
* Accepts either ref form:
|
|
38
|
+
* - the object from `createNavigationContainerRef()` / `useNavigationContainerRef()`
|
|
39
|
+
* (methods live directly on it), or
|
|
40
|
+
* - a plain `useRef()` passed to <NavigationContainer ref={ref}> (methods on `.current`).
|
|
33
41
|
*/
|
|
34
|
-
|
|
42
|
+
export const setNavigationRef = (ref, route = null) => {
|
|
43
|
+
externalNavigationRef = ref;
|
|
44
|
+
if (route != null) {
|
|
45
|
+
hostRoute = route;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
35
48
|
|
|
36
|
-
|
|
37
|
-
|
|
49
|
+
/** Set/override the host route that mounts the SDK navigator. */
|
|
50
|
+
export const setHostRoute = (route) => {
|
|
51
|
+
hostRoute = route;
|
|
38
52
|
};
|
|
39
53
|
|
|
54
|
+
export const getHostRoute = () => hostRoute;
|
|
55
|
+
|
|
40
56
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* Prefers the SDK navigator's own navigation object (so SDK-internal screens
|
|
44
|
-
* always resolve, even when the SDK is nested in the host's navigation tree).
|
|
45
|
-
* Falls back to the host-registered NavigationContainer ref — which only reaches
|
|
46
|
-
* SDK screens when the host mounts PrimaryNavigator as its root navigator.
|
|
47
|
-
*
|
|
48
|
-
* Returns null when nothing is registered yet or the container isn't ready.
|
|
57
|
+
* Registered from inside PrimaryNavigator while it is mounted (and cleared on
|
|
58
|
+
* unmount, so we never hand out a stale/detached handle).
|
|
49
59
|
*/
|
|
50
|
-
export const
|
|
60
|
+
export const setSdkNavigation = (nav) => {
|
|
61
|
+
sdkNavigation = nav;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
/** The SDK navigator's own navigation object, if currently mounted. */
|
|
65
|
+
export const getSdkNavigation = () => {
|
|
51
66
|
if (sdkNavigation && typeof sdkNavigation.navigate === 'function') {
|
|
52
67
|
return sdkNavigation;
|
|
53
68
|
}
|
|
69
|
+
return null;
|
|
70
|
+
};
|
|
54
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Resolves the host ref down to the actual NavigationContainerRef, regardless of
|
|
74
|
+
* which ref form the host provided. Returns null when nothing is registered yet
|
|
75
|
+
* or the container isn't ready.
|
|
76
|
+
*/
|
|
77
|
+
export const getHostNavigation = () => {
|
|
55
78
|
const ref = externalNavigationRef;
|
|
56
79
|
if (!ref) {
|
|
57
80
|
return null;
|
|
@@ -64,3 +87,12 @@ export const getNavigation = () => {
|
|
|
64
87
|
|
|
65
88
|
return nav;
|
|
66
89
|
};
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Backwards-compatible resolver: prefers the SDK navigator's own object, falling
|
|
93
|
+
* back to the host ref (which only reaches SDK screens when the host mounts
|
|
94
|
+
* PrimaryNavigator as its root). Prefer `goDetail()` for deep-linking.
|
|
95
|
+
*/
|
|
96
|
+
export const getNavigation = () => {
|
|
97
|
+
return getSdkNavigation() || getHostNavigation();
|
|
98
|
+
};
|
|
@@ -8,7 +8,12 @@
|
|
|
8
8
|
import React, { useEffect } from 'react';
|
|
9
9
|
|
|
10
10
|
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
getSdkNavigation,
|
|
13
|
+
getHostNavigation,
|
|
14
|
+
getHostRoute,
|
|
15
|
+
setSdkNavigation,
|
|
16
|
+
} from './navigationRef';
|
|
12
17
|
import { OTP } from '../screens/otp';
|
|
13
18
|
import { NationalID } from '../screens/nationalID';
|
|
14
19
|
import { Selfie } from '../screens/selfie';
|
|
@@ -42,7 +47,7 @@ import { DetailLoan } from '../screens/detail-loan';
|
|
|
42
47
|
import Guideline from '../screens/payment-evidence/Guideline';
|
|
43
48
|
import { AcceptPolicy } from '../screens/full-submit/accept_policy';
|
|
44
49
|
import { DigitalLending } from '../screens/digital-lending';
|
|
45
|
-
import { DetailLoanTima } from '../screens/detail-loan/
|
|
50
|
+
import { DetailLoanTima } from '../screens/detail-loan-tima/index';
|
|
46
51
|
import MRZScanner from '../screens/mrz-scanner';
|
|
47
52
|
import { LivenessV2 } from '../screens/liveness-v2';
|
|
48
53
|
import PreviewContract from '../screens/eSign/PreviewContract';
|
|
@@ -157,6 +162,13 @@ export const ScreenNames = {
|
|
|
157
162
|
const Stack = createNativeStackNavigator();
|
|
158
163
|
|
|
159
164
|
export function PrimaryNavigator(props) {
|
|
165
|
+
// When this navigator unmounts, drop the captured navigation so getNavigation()
|
|
166
|
+
// doesn't hand goDetail() a stale (detached) handle — it should cleanly fall
|
|
167
|
+
// back to the host ref / return null instead.
|
|
168
|
+
useEffect(() => {
|
|
169
|
+
return () => setSdkNavigation(null);
|
|
170
|
+
}, []);
|
|
171
|
+
|
|
160
172
|
return (
|
|
161
173
|
<Stack.Navigator
|
|
162
174
|
initialRouteName={ScreenNames.Main}
|
|
@@ -331,20 +343,26 @@ export const canExit = (routeName: string) => exitRoutes.includes(routeName);
|
|
|
331
343
|
* Imperatively navigate into a loan detail screen from outside React.
|
|
332
344
|
*
|
|
333
345
|
* Intended for the host app to deep-link the user straight into a loan detail
|
|
334
|
-
* (e.g. from a push notification or a list rendered outside the SDK).
|
|
335
|
-
* the host to register its NavigationContainer ref once via `setNavigationRef()`.
|
|
346
|
+
* (e.g. from a push notification or a list rendered outside the SDK).
|
|
336
347
|
*
|
|
337
348
|
* Accepts either a loan id or a partial loan object. The detail screen only
|
|
338
349
|
* needs `id` to fetch its data; `disbursementPartner` (when provided) selects
|
|
339
350
|
* the matching screen — 'CIMB' -> DetailLoan, otherwise -> DetailLoanTima.
|
|
351
|
+
*
|
|
352
|
+
* Resolution order:
|
|
353
|
+
* 1. SDK navigator already mounted -> navigate within it directly.
|
|
354
|
+
* 2. SDK not mounted, but the host registered its ref + the route that mounts
|
|
355
|
+
* <RNTimacare/> (via `setNavigationRef(ref, hostRoute)`) -> mount the SDK and
|
|
356
|
+
* deep-link in one nested navigate.
|
|
357
|
+
* 3. Fallback: dispatch on the host ref directly (only reaches SDK screens when
|
|
358
|
+
* the host mounts PrimaryNavigator as its root navigator).
|
|
340
359
|
*/
|
|
341
360
|
export function goDetail(
|
|
342
361
|
loan: number | { id: number; disbursementPartner?: string }
|
|
343
362
|
) {
|
|
344
363
|
const loanObj = typeof loan === 'number' ? { id: loan } : loan;
|
|
345
|
-
const navigation = getNavigation();
|
|
346
364
|
|
|
347
|
-
if (!loanObj?.id
|
|
365
|
+
if (!loanObj?.id) {
|
|
348
366
|
return;
|
|
349
367
|
}
|
|
350
368
|
|
|
@@ -353,5 +371,26 @@ export function goDetail(
|
|
|
353
371
|
? ScreenNames.DetailLoan
|
|
354
372
|
: ScreenNames.DetailLoanTima;
|
|
355
373
|
|
|
356
|
-
|
|
374
|
+
// 1) SDK navigator is mounted: navigate within the navigator that owns the screen.
|
|
375
|
+
const sdkNavigation = getSdkNavigation();
|
|
376
|
+
if (sdkNavigation) {
|
|
377
|
+
sdkNavigation.navigate(screen, { loan: loanObj });
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
// 2) SDK not mounted: mount it via the host route and deep-link in one go.
|
|
382
|
+
const hostNavigation = getHostNavigation();
|
|
383
|
+
const hostRoute = getHostRoute();
|
|
384
|
+
if (hostNavigation && hostRoute) {
|
|
385
|
+
hostNavigation.navigate(hostRoute, {
|
|
386
|
+
screen,
|
|
387
|
+
params: { loan: loanObj },
|
|
388
|
+
});
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
// 3) Last resort: host ref dispatch (works only if the SDK is the host root).
|
|
393
|
+
if (hostNavigation) {
|
|
394
|
+
hostNavigation.navigate(screen, { loan: loanObj });
|
|
395
|
+
}
|
|
357
396
|
}
|