@finspringinnovations/fixeddepositsdk 1.0.3 → 1.0.4
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/api/customerApi.js +1 -0
- package/lib/api/fdApi.d.ts +401 -1
- package/lib/api/fdApi.js +24 -2
- package/lib/config/workflowConstants.d.ts +40 -30
- package/lib/config/workflowConstants.js +35 -24
- package/lib/navigation/RootNavigator.js +62 -81
- package/lib/navigation/types.d.ts +4 -1
- package/lib/navigation/workflowNavigator.d.ts +1 -1
- package/lib/navigation/workflowNavigator.js +107 -26
- package/lib/screens/AadhaarVerification.js +1 -11
- package/lib/screens/AddBankAccount.js +1 -11
- package/lib/screens/BankDetail.js +1 -11
- package/lib/screens/Employee.js +1 -11
- package/lib/screens/FDCalculator.js +1 -11
- package/lib/screens/FDList.js +529 -416
- package/lib/screens/FindIFSC.js +1 -11
- package/lib/screens/NomineeDetail.js +12 -22
- package/lib/screens/PayNow.js +1 -11
- package/lib/screens/Payment.js +2 -11
- package/lib/screens/PaymentStatus.js +11 -21
- package/lib/screens/ReviewKYC.js +1 -11
- package/lib/types/workflowTypes.d.ts +1 -1
- package/package.json +1 -1
- package/src/api/customerApi.ts +1 -0
- package/src/api/fdApi.ts +28 -1
- package/src/config/workflowConstants.ts +51 -39
- package/src/constants/strings/bank.ts +80 -80
- package/src/navigation/RootNavigator.tsx +646 -663
- package/src/navigation/types.ts +4 -1
- package/src/navigation/workflowNavigator.ts +170 -107
- package/src/screens/AadhaarVerification.tsx +1 -15
- package/src/screens/AddBankAccount.tsx +2 -16
- package/src/screens/BankDetail.tsx +1 -15
- package/src/screens/Employee.tsx +1 -15
- package/src/screens/FDCalculator.tsx +1 -15
- package/src/screens/FDList.tsx +2311 -2171
- package/src/screens/FindIFSC.tsx +2 -16
- package/src/screens/NomineeDetail.tsx +762 -775
- package/src/screens/PayNow.tsx +2 -16
- package/src/screens/Payment.tsx +190 -203
- package/src/screens/PaymentStatus.tsx +574 -588
- package/src/screens/ReviewKYC.tsx +1 -15
- package/src/types/workflowTypes.ts +1 -10
|
@@ -36,31 +36,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const react_1 = __importStar(require("react"));
|
|
40
39
|
const stack_1 = require("@react-navigation/stack");
|
|
40
|
+
const react_1 = __importStar(require("react"));
|
|
41
41
|
const react_native_1 = require("react-native");
|
|
42
|
-
const helpers_1 = require("./helpers");
|
|
43
42
|
// Import screens
|
|
44
|
-
const FDList_1 = __importDefault(require("../screens/FDList"));
|
|
45
|
-
const FDCalculator_1 = __importDefault(require("../screens/FDCalculator"));
|
|
46
43
|
const AadhaarVerification_1 = __importDefault(require("../screens/AadhaarVerification"));
|
|
47
|
-
const ReviewKYC_1 = __importDefault(require("../screens/ReviewKYC"));
|
|
48
|
-
const Employee_1 = __importDefault(require("../screens/Employee"));
|
|
49
|
-
const NomineeDetail_1 = __importDefault(require("../screens/NomineeDetail"));
|
|
50
|
-
const BankDetail_1 = __importDefault(require("../screens/BankDetail"));
|
|
51
44
|
const AddBankAccount_1 = __importDefault(require("../screens/AddBankAccount"));
|
|
45
|
+
const BankDetail_1 = __importDefault(require("../screens/BankDetail"));
|
|
46
|
+
const Employee_1 = __importDefault(require("../screens/Employee"));
|
|
47
|
+
const FDCalculator_1 = __importDefault(require("../screens/FDCalculator"));
|
|
48
|
+
const FDList_1 = __importDefault(require("../screens/FDList"));
|
|
52
49
|
const FindIFSC_1 = __importDefault(require("../screens/FindIFSC"));
|
|
50
|
+
const NomineeDetail_1 = __importDefault(require("../screens/NomineeDetail"));
|
|
53
51
|
const PayNow_1 = __importDefault(require("../screens/PayNow"));
|
|
54
52
|
const Payment_1 = __importDefault(require("../screens/Payment"));
|
|
55
53
|
const PaymentStatus_1 = __importDefault(require("../screens/PaymentStatus"));
|
|
54
|
+
const ReviewKYC_1 = __importDefault(require("../screens/ReviewKYC"));
|
|
56
55
|
// Import full SDK navigators and initialization functions
|
|
57
|
-
const shriramfdsdk_1 = require("@finspringinnovations/shriramfdsdk");
|
|
58
56
|
const mahindrafdsdk_1 = require("@finspringinnovations/mahindrafdsdk");
|
|
57
|
+
const shriramfdsdk_1 = require("@finspringinnovations/shriramfdsdk");
|
|
59
58
|
// Import NavigationContainer and tree wrappers
|
|
60
59
|
const native_1 = require("@react-navigation/native");
|
|
61
60
|
// Import navigation helpers
|
|
62
|
-
const helpers_2 = require("./helpers");
|
|
63
61
|
const paymentSession_1 = require("../state/paymentSession");
|
|
62
|
+
const helpers_1 = require("./helpers");
|
|
64
63
|
// Import data getters from fdsdk
|
|
65
64
|
const appDataConfig_1 = require("../config/appDataConfig");
|
|
66
65
|
const MasterDataProvider_1 = require("../providers/MasterDataProvider");
|
|
@@ -70,13 +69,14 @@ const MahindraRootNavigatorAny = mahindrafdsdk_1.RootNavigator;
|
|
|
70
69
|
const ShriramSDKContent = ({ masterData, routeParams, onSDKExit, onSDKPanRequired, }) => {
|
|
71
70
|
const { setMasterData } = (0, shriramfdsdk_1.useMasterData)();
|
|
72
71
|
const shriramDispatch = (0, shriramfdsdk_1.useAppDispatch)();
|
|
72
|
+
const [initialized, setInitialized] = react_1.default.useState(false);
|
|
73
73
|
react_1.default.useEffect(() => {
|
|
74
|
+
var _a;
|
|
75
|
+
// Perform all dispatches sequentially to ensure state is ready
|
|
74
76
|
if (masterData) {
|
|
75
77
|
const dataToSet = masterData.data || masterData;
|
|
76
78
|
setMasterData(dataToSet);
|
|
77
79
|
}
|
|
78
|
-
}, [masterData, setMasterData]);
|
|
79
|
-
react_1.default.useEffect(() => {
|
|
80
80
|
if (routeParams.fdListSelectedData) {
|
|
81
81
|
try {
|
|
82
82
|
shriramDispatch((0, shriramfdsdk_1.setFDListSelected)(routeParams.fdListSelectedData));
|
|
@@ -85,9 +85,6 @@ const ShriramSDKContent = ({ masterData, routeParams, onSDKExit, onSDKPanRequire
|
|
|
85
85
|
console.log('[RootNavigator] Error setting Shriram FDListSelected:', e);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
}, [routeParams.fdListSelectedData, shriramDispatch]);
|
|
89
|
-
react_1.default.useEffect(() => {
|
|
90
|
-
var _a;
|
|
91
88
|
if (routeParams.onboardingIds) {
|
|
92
89
|
try {
|
|
93
90
|
shriramDispatch((0, shriramfdsdk_1.setOnboardingIds)(Object.assign(Object.assign({}, routeParams.onboardingIds), { providerId: routeParams.providerId || ((_a = routeParams.onboardingIds) === null || _a === void 0 ? void 0 : _a.providerId) })));
|
|
@@ -96,8 +93,6 @@ const ShriramSDKContent = ({ masterData, routeParams, onSDKExit, onSDKPanRequire
|
|
|
96
93
|
console.log('[RootNavigator] Error setting Shriram OnboardingIds:', e);
|
|
97
94
|
}
|
|
98
95
|
}
|
|
99
|
-
}, [routeParams.onboardingIds, shriramDispatch]);
|
|
100
|
-
react_1.default.useEffect(() => {
|
|
101
96
|
if (routeParams.shriramSDKGlobalData) {
|
|
102
97
|
try {
|
|
103
98
|
const completeFDData = !!routeParams.shriramSDKGlobalData;
|
|
@@ -107,7 +102,11 @@ const ShriramSDKContent = ({ masterData, routeParams, onSDKExit, onSDKPanRequire
|
|
|
107
102
|
console.log('[RootNavigator] Error setting Shriram GlobalData:', e);
|
|
108
103
|
}
|
|
109
104
|
}
|
|
110
|
-
|
|
105
|
+
setInitialized(true);
|
|
106
|
+
}, [masterData, routeParams, shriramDispatch, setMasterData]);
|
|
107
|
+
if (!initialized) {
|
|
108
|
+
return null; // Or a loading spinner if preferred
|
|
109
|
+
}
|
|
111
110
|
return (react_1.default.createElement(shriramfdsdk_1.RootNavigator, { config: {
|
|
112
111
|
initialRouteName: routeParams.initialRouteName || 'FDCalculator',
|
|
113
112
|
initialPaymentStatusParams: routeParams.initialPaymentStatusParams,
|
|
@@ -121,13 +120,14 @@ const ShriramSDKContent = ({ masterData, routeParams, onSDKExit, onSDKPanRequire
|
|
|
121
120
|
const MahindraSDKContent = ({ masterData, routeParams, onSDKExit, onSDKPanRequired, }) => {
|
|
122
121
|
const { setMasterData } = (0, mahindrafdsdk_1.useMasterData)();
|
|
123
122
|
const mahindraDispatch = (0, mahindrafdsdk_1.useAppDispatch)();
|
|
123
|
+
const [initialized, setInitialized] = react_1.default.useState(false);
|
|
124
124
|
react_1.default.useEffect(() => {
|
|
125
|
+
var _a;
|
|
126
|
+
// Perform all dispatches sequentially to ensure state is ready
|
|
125
127
|
if (masterData) {
|
|
126
128
|
const dataToSet = masterData.data || masterData;
|
|
127
129
|
setMasterData(dataToSet);
|
|
128
130
|
}
|
|
129
|
-
}, [masterData, setMasterData]);
|
|
130
|
-
react_1.default.useEffect(() => {
|
|
131
131
|
if (routeParams.fdListSelectedData) {
|
|
132
132
|
try {
|
|
133
133
|
mahindraDispatch((0, mahindrafdsdk_1.setFDListSelected)(routeParams.fdListSelectedData));
|
|
@@ -136,9 +136,6 @@ const MahindraSDKContent = ({ masterData, routeParams, onSDKExit, onSDKPanRequir
|
|
|
136
136
|
console.log('[RootNavigator] Error setting Mahindra FDListSelected:', e);
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
}, [routeParams.fdListSelectedData, mahindraDispatch]);
|
|
140
|
-
react_1.default.useEffect(() => {
|
|
141
|
-
var _a;
|
|
142
139
|
if (routeParams.onboardingIds) {
|
|
143
140
|
try {
|
|
144
141
|
mahindraDispatch((0, mahindrafdsdk_1.setOnboardingIds)(Object.assign(Object.assign({}, routeParams.onboardingIds), { providerId: routeParams.providerId || ((_a = routeParams.onboardingIds) === null || _a === void 0 ? void 0 : _a.providerId) })));
|
|
@@ -147,10 +144,21 @@ const MahindraSDKContent = ({ masterData, routeParams, onSDKExit, onSDKPanRequir
|
|
|
147
144
|
console.log('[RootNavigator] Error setting Mahindra OnboardingIds:', e);
|
|
148
145
|
}
|
|
149
146
|
}
|
|
150
|
-
|
|
147
|
+
if (routeParams.initialPaymentUrl) {
|
|
148
|
+
(0, mahindrafdsdk_1.setPaymentSession)({
|
|
149
|
+
paymentUrl: routeParams.initialPaymentUrl,
|
|
150
|
+
transactionId: routeParams.initialPaymentTransactionId,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
setInitialized(true);
|
|
154
|
+
}, [masterData, routeParams, mahindraDispatch, setMasterData]);
|
|
155
|
+
if (!initialized) {
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
151
158
|
return (react_1.default.createElement(MahindraRootNavigatorAny, { config: {
|
|
152
159
|
initialRouteName: routeParams.initialRouteName || 'FDCalculator',
|
|
153
160
|
forceFetchCustomerDetails: !!routeParams.forceFetchCustomerDetails,
|
|
161
|
+
initialPaymentStatusParams: routeParams.initialPaymentStatusParams,
|
|
154
162
|
initialFDContext: {
|
|
155
163
|
providerId: routeParams.providerId,
|
|
156
164
|
fdListSelectedData: routeParams.fdListSelectedData,
|
|
@@ -167,7 +175,7 @@ const RootNavigator = ({ config = {}, onExit, onPanRequired, }) => {
|
|
|
167
175
|
const handleShriramExit = react_1.default.useCallback((fdDetails) => {
|
|
168
176
|
setExternalSDK(null);
|
|
169
177
|
setExternalSDKFDData(null);
|
|
170
|
-
(0,
|
|
178
|
+
(0, helpers_1.navigate)('FDList');
|
|
171
179
|
if (fdDetails)
|
|
172
180
|
onExit === null || onExit === void 0 ? void 0 : onExit(fdDetails);
|
|
173
181
|
}, [onExit]);
|
|
@@ -180,7 +188,7 @@ const RootNavigator = ({ config = {}, onExit, onPanRequired, }) => {
|
|
|
180
188
|
const handleMahindraExit = react_1.default.useCallback((fdDetails) => {
|
|
181
189
|
setExternalSDK(null);
|
|
182
190
|
setExternalSDKFDData(null);
|
|
183
|
-
(0,
|
|
191
|
+
(0, helpers_1.navigate)('FDList');
|
|
184
192
|
if (fdDetails)
|
|
185
193
|
onExit === null || onExit === void 0 ? void 0 : onExit(fdDetails);
|
|
186
194
|
}, [onExit]);
|
|
@@ -197,35 +205,8 @@ const RootNavigator = ({ config = {}, onExit, onPanRequired, }) => {
|
|
|
197
205
|
(0, react_1.useEffect)(() => {
|
|
198
206
|
if (react_native_1.Platform.OS !== 'android')
|
|
199
207
|
return;
|
|
200
|
-
let lastBackPressTime = 0;
|
|
201
208
|
const onBackPress = () => {
|
|
202
|
-
|
|
203
|
-
// Check if navigation is ready
|
|
204
|
-
if (!((_a = helpers_1.navigationRef.current) === null || _a === void 0 ? void 0 : _a.isReady())) {
|
|
205
|
-
return false;
|
|
206
|
-
}
|
|
207
|
-
const now = Date.now();
|
|
208
|
-
// Ignore synthetic back events triggered during forward navigation (debounce)
|
|
209
|
-
if (now - lastBackPressTime < 300) {
|
|
210
|
-
return false;
|
|
211
|
-
}
|
|
212
|
-
lastBackPressTime = now;
|
|
213
|
-
const currentRoute = (_c = (_b = helpers_1.navigationRef.current) === null || _b === void 0 ? void 0 : _b.getCurrentRoute()) === null || _c === void 0 ? void 0 : _c.name;
|
|
214
|
-
// Block back on Payment and PaymentStatus screens
|
|
215
|
-
if (currentRoute === "Payment" || currentRoute === "PaymentStatus") {
|
|
216
|
-
return true; // block hardware back
|
|
217
|
-
}
|
|
218
|
-
// FD Calculator should always redirect to FD List
|
|
219
|
-
if (currentRoute === "FDCalculator") {
|
|
220
|
-
helpers_1.navigationRef.current.navigate('FDList');
|
|
221
|
-
return true;
|
|
222
|
-
}
|
|
223
|
-
// Skip FDList - let screen-specific handler handle it
|
|
224
|
-
if (currentRoute === "FDList") {
|
|
225
|
-
return false; // Let screen-specific handler handle it
|
|
226
|
-
}
|
|
227
|
-
// Enable back navigation everywhere else - use the same goBack() helper that header back buttons use
|
|
228
|
-
(0, helpers_2.goBack)(); // This calls the same function as the header back button
|
|
209
|
+
// Return true to consume the event and do nothing (stop back navigation)
|
|
229
210
|
return true;
|
|
230
211
|
};
|
|
231
212
|
const subscription = react_native_1.BackHandler.addEventListener("hardwareBackPress", onBackPress);
|
|
@@ -263,14 +244,14 @@ const RootNavigator = ({ config = {}, onExit, onPanRequired, }) => {
|
|
|
263
244
|
}
|
|
264
245
|
}, []);
|
|
265
246
|
// Default screen options
|
|
266
|
-
const defaultScreenOptions = Object.assign({ headerShown: false, cardStyle: { backgroundColor: '#f8f9fa' }, animationEnabled: true, gestureEnabled:
|
|
247
|
+
const defaultScreenOptions = Object.assign({ headerShown: false, cardStyle: { backgroundColor: '#f8f9fa' }, animationEnabled: true, gestureEnabled: false }, customScreenOptions);
|
|
267
248
|
return (react_1.default.createElement(Stack.Navigator, { initialRouteName: initialRouteName, screenOptions: defaultScreenOptions },
|
|
268
249
|
react_1.default.createElement(Stack.Screen, { name: "FDList", options: { title: 'Fixed Deposits' } }, (props) => (react_1.default.createElement(FDList_1.default, Object.assign({ onGoBack: () => {
|
|
269
250
|
onExit === null || onExit === void 0 ? void 0 : onExit();
|
|
270
251
|
}, onSelectFD: (fdId) => {
|
|
271
252
|
// FD selected
|
|
272
253
|
}, onNavigateToFDCalculator: (fdData) => {
|
|
273
|
-
(0,
|
|
254
|
+
(0, helpers_1.navigate)('FDCalculator', { fdData });
|
|
274
255
|
}, onNavigateToExternalSDK: (sdkType, fdData, context) => {
|
|
275
256
|
try {
|
|
276
257
|
// Get app data and environment data from fdsdk
|
|
@@ -296,7 +277,7 @@ const RootNavigator = ({ config = {}, onExit, onPanRequired, }) => {
|
|
|
296
277
|
// Navigate to external SDK
|
|
297
278
|
setExternalSDK('shriram');
|
|
298
279
|
setExternalSDKFDData(fdData);
|
|
299
|
-
(0,
|
|
280
|
+
(0, helpers_1.navigate)('ExternalSDK', {
|
|
300
281
|
sdkType: 'shriram',
|
|
301
282
|
fdData,
|
|
302
283
|
providerId: context === null || context === void 0 ? void 0 : context.providerId,
|
|
@@ -318,7 +299,7 @@ const RootNavigator = ({ config = {}, onExit, onPanRequired, }) => {
|
|
|
318
299
|
// Navigate to external SDK
|
|
319
300
|
setExternalSDK('mahindra');
|
|
320
301
|
setExternalSDKFDData(fdData);
|
|
321
|
-
(0,
|
|
302
|
+
(0, helpers_1.navigate)('ExternalSDK', {
|
|
322
303
|
sdkType: 'mahindra',
|
|
323
304
|
fdData,
|
|
324
305
|
providerId: context === null || context === void 0 ? void 0 : context.providerId,
|
|
@@ -343,7 +324,7 @@ const RootNavigator = ({ config = {}, onExit, onPanRequired, }) => {
|
|
|
343
324
|
} }, props)))),
|
|
344
325
|
react_1.default.createElement(Stack.Screen, { name: "FDCalculator", options: { title: 'FD Calculator' } }, (props) => {
|
|
345
326
|
var _a;
|
|
346
|
-
return (react_1.default.createElement(FDCalculator_1.default, Object.assign({ onGoBack: () => (0,
|
|
327
|
+
return (react_1.default.createElement(FDCalculator_1.default, Object.assign({ onGoBack: () => (0, helpers_1.goBack)(), onNavigateToReviewKYC: () => { var _a; return (0, helpers_1.navigate)('ReviewKYC', { fdData: (_a = props.route.params) === null || _a === void 0 ? void 0 : _a.fdData }); }, fdData: (_a = props.route.params) === null || _a === void 0 ? void 0 : _a.fdData }, props)));
|
|
347
328
|
}),
|
|
348
329
|
react_1.default.createElement(Stack.Screen, { name: "ExternalSDK", options: { title: 'External SDK', gestureEnabled: false } }, (props) => {
|
|
349
330
|
var _a, _b, _c, _d;
|
|
@@ -385,53 +366,53 @@ const RootNavigator = ({ config = {}, onExit, onPanRequired, }) => {
|
|
|
385
366
|
}
|
|
386
367
|
return null;
|
|
387
368
|
}),
|
|
388
|
-
react_1.default.createElement(Stack.Screen, { name: "AadhaarVerification", options: { title: 'Aadhaar Verification' } }, (props) => (react_1.default.createElement(AadhaarVerification_1.default, Object.assign({ onGoBack: () => (0,
|
|
389
|
-
(0,
|
|
369
|
+
react_1.default.createElement(Stack.Screen, { name: "AadhaarVerification", options: { title: 'Aadhaar Verification' } }, (props) => (react_1.default.createElement(AadhaarVerification_1.default, Object.assign({ onGoBack: () => (0, helpers_1.goBack)(), onVerificationComplete: () => {
|
|
370
|
+
(0, helpers_1.navigate)('Employee');
|
|
390
371
|
} }, props)))),
|
|
391
|
-
react_1.default.createElement(Stack.Screen, { name: "ReviewKYC", options: { title: 'Review KYC' } }, (props) => (react_1.default.createElement(ReviewKYC_1.default, Object.assign({ onGoBack: () => (0,
|
|
392
|
-
(0,
|
|
372
|
+
react_1.default.createElement(Stack.Screen, { name: "ReviewKYC", options: { title: 'Review KYC' } }, (props) => (react_1.default.createElement(ReviewKYC_1.default, Object.assign({ onGoBack: () => (0, helpers_1.goBack)(), onContinue: () => {
|
|
373
|
+
(0, helpers_1.navigate)('Employee');
|
|
393
374
|
} }, props)))),
|
|
394
|
-
react_1.default.createElement(Stack.Screen, { name: "Employee", options: { title: 'Occupation' } }, (props) => (react_1.default.createElement(Employee_1.default, Object.assign({ onGoBack: () => (0,
|
|
395
|
-
(0,
|
|
375
|
+
react_1.default.createElement(Stack.Screen, { name: "Employee", options: { title: 'Occupation' } }, (props) => (react_1.default.createElement(Employee_1.default, Object.assign({ onGoBack: () => (0, helpers_1.goBack)(), onContinue: () => {
|
|
376
|
+
(0, helpers_1.navigate)('NomineeDetail');
|
|
396
377
|
} }, props)))),
|
|
397
|
-
react_1.default.createElement(Stack.Screen, { name: "NomineeDetail", options: { title: 'Nominee Details' } }, (props) => (react_1.default.createElement(NomineeDetail_1.default, Object.assign({ onGoBack: () => (0,
|
|
398
|
-
(0,
|
|
378
|
+
react_1.default.createElement(Stack.Screen, { name: "NomineeDetail", options: { title: 'Nominee Details' } }, (props) => (react_1.default.createElement(NomineeDetail_1.default, Object.assign({ onGoBack: () => (0, helpers_1.goBack)(), onSave: () => {
|
|
379
|
+
(0, helpers_1.navigate)('BankDetail');
|
|
399
380
|
} }, props)))),
|
|
400
|
-
react_1.default.createElement(Stack.Screen, { name: "BankDetail", options: { title: 'Bank Details' } }, (props) => (react_1.default.createElement(BankDetail_1.default, Object.assign({ onGoBack: () => (0,
|
|
401
|
-
(0,
|
|
381
|
+
react_1.default.createElement(Stack.Screen, { name: "BankDetail", options: { title: 'Bank Details' } }, (props) => (react_1.default.createElement(BankDetail_1.default, Object.assign({ onGoBack: () => (0, helpers_1.goBack)(), onContinue: () => {
|
|
382
|
+
(0, helpers_1.navigate)('PayNow');
|
|
402
383
|
}, onAddAccount: () => {
|
|
403
|
-
(0,
|
|
384
|
+
(0, helpers_1.navigate)('AddBankAccount');
|
|
404
385
|
} }, props)))),
|
|
405
|
-
react_1.default.createElement(Stack.Screen, { name: "AddBankAccount", options: { title: 'Add Bank Account' } }, (props) => (react_1.default.createElement(AddBankAccount_1.default, Object.assign({ onGoBack: () => (0,
|
|
406
|
-
(0,
|
|
386
|
+
react_1.default.createElement(Stack.Screen, { name: "AddBankAccount", options: { title: 'Add Bank Account' } }, (props) => (react_1.default.createElement(AddBankAccount_1.default, Object.assign({ onGoBack: () => (0, helpers_1.goBack)(), onContinue: () => {
|
|
387
|
+
(0, helpers_1.goBack)();
|
|
407
388
|
}, onFindIFSC: () => {
|
|
408
|
-
(0,
|
|
389
|
+
(0, helpers_1.navigate)('FindIFSC');
|
|
409
390
|
}, selectedIFSC: (() => {
|
|
410
391
|
const params = props.route.params;
|
|
411
392
|
return params === null || params === void 0 ? void 0 : params.selectedIFSC;
|
|
412
393
|
})() }, props)))),
|
|
413
394
|
react_1.default.createElement(Stack.Screen, { name: "FindIFSC", options: { title: 'Find IFSC' } }, (props) => {
|
|
414
395
|
var _a;
|
|
415
|
-
return (react_1.default.createElement(FindIFSC_1.default, Object.assign({ onGoBack: () => (0,
|
|
416
|
-
(0,
|
|
417
|
-
(0,
|
|
396
|
+
return (react_1.default.createElement(FindIFSC_1.default, Object.assign({ onGoBack: () => (0, helpers_1.goBack)(), onSelect: (ifscData) => {
|
|
397
|
+
(0, helpers_1.pop)(1);
|
|
398
|
+
(0, helpers_1.navigate)('AddBankAccount', { selectedIFSC: ifscData });
|
|
418
399
|
}, initialSearchTerm: (_a = props.route.params) === null || _a === void 0 ? void 0 : _a.initialSearchTerm }, props)));
|
|
419
400
|
}),
|
|
420
401
|
react_1.default.createElement(Stack.Screen, { name: "PayNow", options: { title: 'Pay Now' } }, (props) => {
|
|
421
402
|
var _a;
|
|
422
|
-
return (react_1.default.createElement(PayNow_1.default, Object.assign({ onGoBack: () => (0,
|
|
403
|
+
return (react_1.default.createElement(PayNow_1.default, Object.assign({ onGoBack: () => (0, helpers_1.goBack)(), onConfirm: () => {
|
|
423
404
|
// onConfirm is handled inside PayNow after createFD; keep fallback
|
|
424
405
|
}, fdData: (_a = props.route.params) === null || _a === void 0 ? void 0 : _a.fdData }, props)));
|
|
425
406
|
}),
|
|
426
407
|
react_1.default.createElement(Stack.Screen, { name: "Payment", options: { title: 'Payment' } }, (props) => {
|
|
427
408
|
var _a, _b, _c;
|
|
428
|
-
return (react_1.default.createElement(Payment_1.default, Object.assign({ onGoBack: () => (0,
|
|
429
|
-
(0,
|
|
409
|
+
return (react_1.default.createElement(Payment_1.default, Object.assign({ onGoBack: () => (0, helpers_1.goBack)(), paymentUrl: (_c = (_b = (_a = props.route.params) === null || _a === void 0 ? void 0 : _a.paymentUrl) !== null && _b !== void 0 ? _b : (0, paymentSession_1.getPaymentSession)().paymentUrl) !== null && _c !== void 0 ? _c : '', onPaymentSuccess: (data) => {
|
|
410
|
+
(0, helpers_1.navigate)('PaymentStatus', {
|
|
430
411
|
status: 'success',
|
|
431
412
|
paymentData: data
|
|
432
413
|
});
|
|
433
414
|
}, onPaymentFailure: (error) => {
|
|
434
|
-
(0,
|
|
415
|
+
(0, helpers_1.navigate)('PaymentStatus', {
|
|
435
416
|
status: 'failed',
|
|
436
417
|
paymentData: error
|
|
437
418
|
});
|
|
@@ -440,7 +421,7 @@ const RootNavigator = ({ config = {}, onExit, onPanRequired, }) => {
|
|
|
440
421
|
react_1.default.createElement(Stack.Screen, { name: "PaymentStatus", options: { title: 'Payment Status' } }, (props) => {
|
|
441
422
|
var _a, _b, _c;
|
|
442
423
|
return (react_1.default.createElement(PaymentStatus_1.default, Object.assign({ status: ((_a = props.route.params) === null || _a === void 0 ? void 0 : _a.status) || 'pending', transactionId: (_b = props.route.params) === null || _b === void 0 ? void 0 : _b.transactionId, fdData: (_c = props.route.params) === null || _c === void 0 ? void 0 : _c.fdData, onRetry: () => {
|
|
443
|
-
(0,
|
|
424
|
+
(0, helpers_1.navigate)('Payment');
|
|
444
425
|
}, onContinue: (fdDetails) => {
|
|
445
426
|
onExit === null || onExit === void 0 ? void 0 : onExit(fdDetails);
|
|
446
427
|
} }, props)));
|
|
@@ -105,12 +105,15 @@ export type RootStackParamList = {
|
|
|
105
105
|
masterData?: any;
|
|
106
106
|
onboardingIds?: any;
|
|
107
107
|
initialRouteName?: string;
|
|
108
|
-
/** When opening Shriram with initialRouteName 'PaymentStatus', pass status/transactionId/fdData here */
|
|
108
|
+
/** When opening Shriram/Mahindra with initialRouteName 'PaymentStatus', pass status/transactionId/fdData here */
|
|
109
109
|
initialPaymentStatusParams?: {
|
|
110
110
|
status?: 'success' | 'failed' | 'pending';
|
|
111
111
|
transactionId?: string;
|
|
112
112
|
fdData?: any;
|
|
113
113
|
};
|
|
114
|
+
/** When opening Mahindra with initialRouteName 'Payment', pass the resolved payment URL and transactionId here */
|
|
115
|
+
initialPaymentUrl?: string;
|
|
116
|
+
initialPaymentTransactionId?: string;
|
|
114
117
|
shriramSDKGlobalData?: any;
|
|
115
118
|
mahindraSDKGlobalData?: any;
|
|
116
119
|
forceFetchCustomerDetails?: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AppData, CustomerData, FDData, InvestmentData } from '../types/dataTypes';
|
|
2
2
|
import type { WorkflowStateSriram } from '../types/workflowTypes';
|
|
3
3
|
/**
|
|
4
4
|
* Centralized navigation for FD workflow based on Flutter implementation
|
|
@@ -3,29 +3,87 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.handleWorkflowNavigation = handleWorkflowNavigation;
|
|
4
4
|
exports.handleFDSelection = handleFDSelection;
|
|
5
5
|
exports.navigateFDCreationFlow = navigateFDCreationFlow;
|
|
6
|
-
const helpers_1 = require("./helpers");
|
|
7
6
|
const workflowConstants_1 = require("../config/workflowConstants");
|
|
7
|
+
const helpers_1 = require("./helpers");
|
|
8
8
|
/**
|
|
9
9
|
* Centralized navigation for FD workflow based on Flutter implementation
|
|
10
10
|
*/
|
|
11
11
|
async function handleWorkflowNavigation({ workflowState, investmentData, customerData, appData, fdData, completedApplications = [], transactionId, }) {
|
|
12
|
-
|
|
12
|
+
// Normalize workflow state from caption if needed
|
|
13
|
+
let normalizedState = workflowState;
|
|
14
|
+
// Map Shriram captions to common states if necessary, or handle directly
|
|
15
|
+
const isShriramCaption = Object.values(workflowConstants_1.SHRIRAM_WORKFLOW_STATES).includes(workflowState);
|
|
16
|
+
const isMahindraCaption = Object.values(workflowConstants_1.MAHINDRA_WORKFLOW_STATES).includes(workflowState);
|
|
17
|
+
if (isShriramCaption) {
|
|
18
|
+
if (workflowState === workflowConstants_1.SHRIRAM_WORKFLOW_STATES.START || workflowState === workflowConstants_1.SHRIRAM_WORKFLOW_STATES.INITIATION)
|
|
19
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.START;
|
|
20
|
+
else if (workflowState === workflowConstants_1.SHRIRAM_WORKFLOW_STATES.KYC)
|
|
21
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.KYC;
|
|
22
|
+
else if (workflowState === workflowConstants_1.SHRIRAM_WORKFLOW_STATES.OCCUPATION)
|
|
23
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.OCCUPATION;
|
|
24
|
+
else if (workflowState === workflowConstants_1.SHRIRAM_WORKFLOW_STATES.NOMINEE)
|
|
25
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.NOMINEE;
|
|
26
|
+
else if (workflowState === workflowConstants_1.SHRIRAM_WORKFLOW_STATES.BANK_DETAILS)
|
|
27
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.BANK_DETAILS;
|
|
28
|
+
else if (workflowState === workflowConstants_1.SHRIRAM_WORKFLOW_STATES.CREATE_FD)
|
|
29
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.CREATE_FD;
|
|
30
|
+
else if (workflowState === workflowConstants_1.SHRIRAM_WORKFLOW_STATES.PAYMENT)
|
|
31
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.PAYMENT;
|
|
32
|
+
else if (workflowState === workflowConstants_1.SHRIRAM_WORKFLOW_STATES.END)
|
|
33
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.END;
|
|
34
|
+
}
|
|
35
|
+
else if (isMahindraCaption) {
|
|
36
|
+
if (workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.START || workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.INITIATION)
|
|
37
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.START;
|
|
38
|
+
else if (workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.KYC || workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.AADHAAR_VERIFICATION) {
|
|
39
|
+
(0, helpers_1.navigate)('AadhaarVerification');
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
else if (workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.DEMOGRAPHIC_INFO)
|
|
43
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.KYC; // Map demographic to KYC
|
|
44
|
+
else if (workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.OCCUPATION)
|
|
45
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.OCCUPATION;
|
|
46
|
+
else if (workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.NOMINEE)
|
|
47
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.NOMINEE;
|
|
48
|
+
else if (workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.BANK_DETAILS)
|
|
49
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.BANK_DETAILS;
|
|
50
|
+
else if (workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.CREATE_FD)
|
|
51
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.CREATE_FD;
|
|
52
|
+
else if (workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.PAYMENT)
|
|
53
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.PAYMENT;
|
|
54
|
+
else if (workflowState === workflowConstants_1.MAHINDRA_WORKFLOW_STATES.END)
|
|
55
|
+
normalizedState = workflowConstants_1.WORKFLOW_STATES.END;
|
|
56
|
+
}
|
|
57
|
+
switch (normalizedState) {
|
|
13
58
|
case workflowConstants_1.WORKFLOW_STATES.START:
|
|
14
59
|
case workflowConstants_1.WORKFLOW_STATES.INITIATION:
|
|
15
60
|
// No navigation required
|
|
16
61
|
break;
|
|
17
62
|
case workflowConstants_1.WORKFLOW_STATES.CREATE_FD:
|
|
18
|
-
//
|
|
19
|
-
(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
63
|
+
// For Shriram, CREATE_FD means we should show payment if possible
|
|
64
|
+
if (isShriramCaption) {
|
|
65
|
+
(0, helpers_1.navigate)('PayNow', {
|
|
66
|
+
fdData: fdData ? {
|
|
67
|
+
companyName: fdData.name,
|
|
68
|
+
amount: fdData.amount,
|
|
69
|
+
fdRate: fdData.roi,
|
|
70
|
+
tenure: fdData.tenure,
|
|
71
|
+
interestPayout: ''
|
|
72
|
+
} : undefined
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// Default behavior for other providers
|
|
77
|
+
(0, helpers_1.navigate)('PayNow', {
|
|
78
|
+
fdData: fdData ? {
|
|
79
|
+
companyName: fdData.name,
|
|
80
|
+
amount: fdData.amount,
|
|
81
|
+
fdRate: fdData.roi,
|
|
82
|
+
tenure: fdData.tenure,
|
|
83
|
+
interestPayout: 'Yearly'
|
|
84
|
+
} : undefined
|
|
85
|
+
});
|
|
86
|
+
}
|
|
29
87
|
break;
|
|
30
88
|
case workflowConstants_1.WORKFLOW_STATES.OCCUPATION:
|
|
31
89
|
(0, helpers_1.navigate)('Employee');
|
|
@@ -34,7 +92,15 @@ async function handleWorkflowNavigation({ workflowState, investmentData, custome
|
|
|
34
92
|
(0, helpers_1.navigate)('NomineeDetail');
|
|
35
93
|
break;
|
|
36
94
|
case workflowConstants_1.WORKFLOW_STATES.BANK_DETAILS:
|
|
37
|
-
|
|
95
|
+
if (isShriramCaption) {
|
|
96
|
+
(0, helpers_1.navigate)('ExternalSDK', { sdkType: 'shriram', initialRouteName: 'BankDetail' });
|
|
97
|
+
}
|
|
98
|
+
else if (isMahindraCaption) {
|
|
99
|
+
(0, helpers_1.navigate)('ExternalSDK', { sdkType: 'mahindra', initialRouteName: 'BankDetail' });
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
(0, helpers_1.navigate)('BankDetail');
|
|
103
|
+
}
|
|
38
104
|
break;
|
|
39
105
|
case workflowConstants_1.WORKFLOW_STATES.KYC:
|
|
40
106
|
(0, helpers_1.navigate)('ReviewKYC');
|
|
@@ -42,7 +108,6 @@ async function handleWorkflowNavigation({ workflowState, investmentData, custome
|
|
|
42
108
|
case workflowConstants_1.WORKFLOW_STATES.PAYMENT:
|
|
43
109
|
// Handle payment status check and navigation
|
|
44
110
|
if (transactionId) {
|
|
45
|
-
// Navigate to payment screen with transaction ID
|
|
46
111
|
(0, helpers_1.navigate)('Payment');
|
|
47
112
|
}
|
|
48
113
|
else {
|
|
@@ -52,24 +117,40 @@ async function handleWorkflowNavigation({ workflowState, investmentData, custome
|
|
|
52
117
|
amount: fdData.amount,
|
|
53
118
|
fdRate: fdData.roi,
|
|
54
119
|
tenure: fdData.tenure,
|
|
55
|
-
interestPayout: ''
|
|
120
|
+
interestPayout: ''
|
|
56
121
|
} : undefined
|
|
57
122
|
});
|
|
58
123
|
}
|
|
59
124
|
break;
|
|
60
125
|
case workflowConstants_1.WORKFLOW_STATES.END:
|
|
61
|
-
(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
126
|
+
if (isShriramCaption) {
|
|
127
|
+
(0, helpers_1.navigate)('ExternalSDK', {
|
|
128
|
+
sdkType: 'shriram',
|
|
129
|
+
initialRouteName: 'PayNow',
|
|
130
|
+
fdData: fdData ? {
|
|
131
|
+
companyName: fdData.name,
|
|
132
|
+
amount: fdData.amount,
|
|
133
|
+
fdRate: fdData.roi,
|
|
134
|
+
tenure: fdData.tenure,
|
|
135
|
+
interestPayout: ''
|
|
136
|
+
} : undefined
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
(0, helpers_1.navigate)('PaymentStatus', {
|
|
141
|
+
transactionId,
|
|
142
|
+
fdData: fdData ? {
|
|
143
|
+
companyName: fdData.name,
|
|
144
|
+
amount: fdData.amount,
|
|
145
|
+
fdRate: fdData.roi,
|
|
146
|
+
tenure: fdData.tenure,
|
|
147
|
+
interestPayout: ''
|
|
148
|
+
} : undefined
|
|
149
|
+
});
|
|
150
|
+
}
|
|
71
151
|
break;
|
|
72
152
|
default:
|
|
153
|
+
break;
|
|
73
154
|
}
|
|
74
155
|
}
|
|
75
156
|
/**
|
|
@@ -560,17 +560,7 @@ const AadhaarVerification = ({ onGoBack, onVerificationComplete, }) => {
|
|
|
560
560
|
(0, helpers_1.navigate)('ReviewKYC');
|
|
561
561
|
}
|
|
562
562
|
};
|
|
563
|
-
//
|
|
564
|
-
(0, react_1.useEffect)(() => {
|
|
565
|
-
if (react_native_1.Platform.OS !== 'android')
|
|
566
|
-
return;
|
|
567
|
-
const onHardwareBackPress = () => {
|
|
568
|
-
handleBackPress();
|
|
569
|
-
return true; // Prevent default behavior
|
|
570
|
-
};
|
|
571
|
-
const backHandler = react_native_1.BackHandler.addEventListener('hardwareBackPress', onHardwareBackPress);
|
|
572
|
-
return () => backHandler.remove();
|
|
573
|
-
}, [defultProviderId, workflowInstanceId, applicationId, entityId]);
|
|
563
|
+
// Removed screen-level hardware back handler to allow only header back button navigation
|
|
574
564
|
return (react_1.default.createElement(SafeAreaWrapper_1.default, { includeTop: false, bottomPadding: 25, statusBarColor: "#000000", statusBarStyle: "light-content" },
|
|
575
565
|
react_1.default.createElement(components_1.Header, { title: kyc_1.KYC_STRINGS.AADHAAR_VERIFICATION_TITLE, onBackPress: handleBackPress }),
|
|
576
566
|
react_1.default.createElement(react_native_1.KeyboardAvoidingView, { style: { flex: 1 }, behavior: react_native_1.Platform.OS === 'ios' ? 'padding' : 'height', keyboardVerticalOffset: react_native_1.Platform.OS === 'ios' ? 0 : 20 },
|
|
@@ -245,17 +245,7 @@ const AddBankAccount = ({ onGoBack, onContinue, onFindIFSC, initialData, selecte
|
|
|
245
245
|
const handleBackPress = () => {
|
|
246
246
|
(0, helpers_1.navigate)('BankDetail');
|
|
247
247
|
};
|
|
248
|
-
//
|
|
249
|
-
(0, react_1.useEffect)(() => {
|
|
250
|
-
if (react_native_1.Platform.OS !== 'android')
|
|
251
|
-
return;
|
|
252
|
-
const onHardwareBackPress = () => {
|
|
253
|
-
handleBackPress();
|
|
254
|
-
return true; // Prevent default behavior
|
|
255
|
-
};
|
|
256
|
-
const backHandler = react_native_1.BackHandler.addEventListener('hardwareBackPress', onHardwareBackPress);
|
|
257
|
-
return () => backHandler.remove();
|
|
258
|
-
}, []);
|
|
248
|
+
// Removed screen-level hardware back handler to allow only header back button navigation
|
|
259
249
|
return (react_1.default.createElement(SafeAreaWrapper_1.default, { includeTop: false, bottomPadding: 25, statusBarColor: "#000000", statusBarStyle: "light-content" },
|
|
260
250
|
react_1.default.createElement(components_1.Header, { title: bank_1.BANK_STRINGS.ADD_BANK_ACCOUNT_TITLE, onBackPress: handleBackPress, backgroundColor: colors.primary }),
|
|
261
251
|
react_1.default.createElement(react_native_1.KeyboardAvoidingView, { style: { flex: 1 }, behavior: react_native_1.Platform.OS === 'ios' ? 'padding' : undefined, keyboardVerticalOffset: react_native_1.Platform.OS === 'ios' ? 0 : 0 },
|
|
@@ -495,17 +495,7 @@ const BankDetail = ({ onGoBack, onContinue, onAddAccount, initialData }) => {
|
|
|
495
495
|
(0, helpers_1.navigate)('NomineeDetail');
|
|
496
496
|
}
|
|
497
497
|
};
|
|
498
|
-
//
|
|
499
|
-
(0, react_1.useEffect)(() => {
|
|
500
|
-
if (react_native_1.Platform.OS !== 'android')
|
|
501
|
-
return;
|
|
502
|
-
const onHardwareBackPress = () => {
|
|
503
|
-
handleBackPress();
|
|
504
|
-
return true; // Prevent default behavior
|
|
505
|
-
};
|
|
506
|
-
const backHandler = react_native_1.BackHandler.addEventListener('hardwareBackPress', onHardwareBackPress);
|
|
507
|
-
return () => backHandler.remove();
|
|
508
|
-
}, [defaultProviderId, workflowInstanceId, applicationId, entityId, appData === null || appData === void 0 ? void 0 : appData.userReferenceId]);
|
|
498
|
+
// Removed screen-level hardware back handler to allow only header back button navigation
|
|
509
499
|
return (react_1.default.createElement(SafeAreaWrapper_1.default, { includeTop: false, bottomPadding: 25, statusBarColor: "#000000", statusBarStyle: "light-content" },
|
|
510
500
|
react_1.default.createElement(components_1.Header, { title: bank_1.BANK_STRINGS.BANK_DETAILS_TITLE, onBackPress: handleBackPress, backgroundColor: colors.primary }),
|
|
511
501
|
react_1.default.createElement(react_native_1.KeyboardAvoidingView, { behavior: react_native_1.Platform.OS === 'ios' ? 'padding' : undefined, style: styles.keyboardAvoidingView, keyboardVerticalOffset: react_native_1.Platform.OS === 'ios' ? 0 : 0 },
|
package/lib/screens/Employee.js
CHANGED
|
@@ -458,17 +458,7 @@ const Employee = ({ onGoBack, onContinue, initialData }) => {
|
|
|
458
458
|
(0, helpers_1.navigate)('ReviewKYC');
|
|
459
459
|
}
|
|
460
460
|
};
|
|
461
|
-
//
|
|
462
|
-
(0, react_1.useEffect)(() => {
|
|
463
|
-
if (react_native_1.Platform.OS !== 'android')
|
|
464
|
-
return;
|
|
465
|
-
const onHardwareBackPress = () => {
|
|
466
|
-
handleBackPress();
|
|
467
|
-
return true; // Prevent default behavior
|
|
468
|
-
};
|
|
469
|
-
const backHandler = react_native_1.BackHandler.addEventListener('hardwareBackPress', onHardwareBackPress);
|
|
470
|
-
return () => backHandler.remove();
|
|
471
|
-
}, [defaultProviderId, workflowInstanceId, applicationId]);
|
|
461
|
+
// Removed screen-level hardware back handler to allow only header back button navigation
|
|
472
462
|
return (react_1.default.createElement(SafeAreaWrapper_1.default, { includeTop: false, bottomPadding: 25, statusBarColor: "#000000", statusBarStyle: "light-content" },
|
|
473
463
|
react_1.default.createElement(components_1.Header, { title: employee_1.EMPLOYEE_STRINGS.OCCUPATION_DETAILS_TITLE, onBackPress: handleBackPress, backgroundColor: colors.primary }),
|
|
474
464
|
react_1.default.createElement(react_native_1.KeyboardAvoidingView, { behavior: react_native_1.Platform.OS === 'ios' ? 'padding' : undefined, style: styles.keyboardAvoidingView, keyboardVerticalOffset: react_native_1.Platform.OS === 'ios' ? 0 : 0 },
|
|
@@ -535,17 +535,7 @@ const FDCalculator = ({ onGoBack, onNavigateToReviewKYC, fdData }) => {
|
|
|
535
535
|
}
|
|
536
536
|
return fallback;
|
|
537
537
|
}, [effectiveMasterData]);
|
|
538
|
-
//
|
|
539
|
-
(0, react_1.useEffect)(() => {
|
|
540
|
-
if (react_native_1.Platform.OS !== 'android')
|
|
541
|
-
return;
|
|
542
|
-
const onHardwareBackPress = () => {
|
|
543
|
-
(0, helpers_1.navigate)('FDList'); // Same as header back button
|
|
544
|
-
return true; // Prevent default behavior
|
|
545
|
-
};
|
|
546
|
-
const backHandler = react_native_1.BackHandler.addEventListener('hardwareBackPress', onHardwareBackPress);
|
|
547
|
-
return () => backHandler.remove();
|
|
548
|
-
}, []);
|
|
538
|
+
// Removed screen-level hardware back handler to allow only header back button navigation
|
|
549
539
|
return (react_1.default.createElement(SafeAreaWrapper_1.default, { includeTop: false, bottomPadding: 25, statusBarColor: "#000000", statusBarStyle: "light-content" },
|
|
550
540
|
react_1.default.createElement(react_native_1.View, { style: styles.header },
|
|
551
541
|
react_1.default.createElement(react_native_1.TouchableOpacity, { onPress: () => (0, helpers_1.navigate)('FDList'), style: styles.backButton },
|