@trustchex/react-native-sdk 1.175.1 → 1.175.5
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/module/Shared/Components/NavigationManager.js +24 -8
- package/lib/module/Translation/Resources/en.js +1 -0
- package/lib/module/Translation/Resources/tr.js +1 -0
- package/lib/module/Trustchex.js +2 -1
- package/lib/typescript/src/Shared/Components/NavigationManager.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/eidService.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/en.d.ts +1 -0
- package/lib/typescript/src/Translation/Resources/en.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/tr.d.ts +1 -0
- package/lib/typescript/src/Translation/Resources/tr.d.ts.map +1 -1
- package/lib/typescript/src/Trustchex.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Shared/Components/NavigationManager.tsx +29 -18
- package/src/Shared/EIDReader/data/country.ts +1 -1
- package/src/Shared/EIDReader/eidService.ts +4 -2
- package/src/Translation/Resources/en.ts +2 -0
- package/src/Translation/Resources/tr.ts +2 -0
- package/src/Trustchex.tsx +4 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { forwardRef, useCallback, useContext, useImperativeHandle } from 'react';
|
|
4
4
|
import AppContext from "../Contexts/AppContext.js";
|
|
5
|
-
import { CommonActions, useNavigation } from '@react-navigation/native';
|
|
5
|
+
import { CommonActions, useNavigation, usePreventRemove } from '@react-navigation/native';
|
|
6
6
|
import { View, StyleSheet, Alert } from 'react-native';
|
|
7
7
|
import { useTranslation } from 'react-i18next';
|
|
8
8
|
import i18n from "../../Translation/index.js";
|
|
@@ -31,19 +31,12 @@ const NavigationManager = /*#__PURE__*/forwardRef(({
|
|
|
31
31
|
RESULT: 'ResultScreen'
|
|
32
32
|
};
|
|
33
33
|
React.useEffect(() => {
|
|
34
|
-
const handleRemove = event => {
|
|
35
|
-
if (event.data.action.type !== 'RESET') {
|
|
36
|
-
event.preventDefault();
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
34
|
const handleFocus = () => {
|
|
40
35
|
// Reset navigation state when screen comes into focus
|
|
41
36
|
isNavigating = false;
|
|
42
37
|
};
|
|
43
|
-
navigation.addListener('beforeRemove', handleRemove);
|
|
44
38
|
navigation.addListener('focus', handleFocus);
|
|
45
39
|
return () => {
|
|
46
|
-
navigation.removeListener('beforeRemove', handleRemove);
|
|
47
40
|
navigation.removeListener('focus', handleFocus);
|
|
48
41
|
// Reset state on cleanup
|
|
49
42
|
isNavigating = false;
|
|
@@ -155,6 +148,29 @@ const NavigationManager = /*#__PURE__*/forwardRef(({
|
|
|
155
148
|
isNavigating = false;
|
|
156
149
|
}, 1000);
|
|
157
150
|
}, [appContext, navigation, routes.VERIFICATION_SESSION_CHECK]);
|
|
151
|
+
|
|
152
|
+
// Use usePreventRemove instead of beforeRemove listener to prevent the warning
|
|
153
|
+
// This prevents users from natively going back multiple screens
|
|
154
|
+
usePreventRemove(true, ({
|
|
155
|
+
data
|
|
156
|
+
}) => {
|
|
157
|
+
// Only allow RESET actions to proceed
|
|
158
|
+
if (data.action.type === 'RESET') {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Show confirmation dialog for other navigation attempts
|
|
163
|
+
Alert.alert(t('general.warning'), t('navigationManager.preventBackWarning'), [{
|
|
164
|
+
text: t('general.cancel'),
|
|
165
|
+
style: 'cancel'
|
|
166
|
+
}, {
|
|
167
|
+
text: t('general.yes'),
|
|
168
|
+
onPress: () => {
|
|
169
|
+
// Allow the navigation by calling reset
|
|
170
|
+
reset();
|
|
171
|
+
}
|
|
172
|
+
}]);
|
|
173
|
+
});
|
|
158
174
|
useImperativeHandle(ref, () => ({
|
|
159
175
|
navigateToNextStep: goToNextRoute,
|
|
160
176
|
reset: reset,
|
|
@@ -105,5 +105,6 @@ export default {
|
|
|
105
105
|
'identityDocumentCamera.scanCompleted': 'Scan completed successfully.',
|
|
106
106
|
'navigationManager.skipStepWarning': 'It is recommended to complete this step. Are you sure you want to skip it?',
|
|
107
107
|
'navigationManager.skipStepLabel': 'Skip this step',
|
|
108
|
+
'navigationManager.preventBackWarning': 'Are you sure you want to leave? Your progress may be lost.',
|
|
108
109
|
'qrCodeScanningScreen.title': 'Scan QR Code'
|
|
109
110
|
};
|
|
@@ -108,5 +108,6 @@ export default {
|
|
|
108
108
|
'identityDocumentCamera.scanCompleted': 'Tarama başarıyla tamamlandı.',
|
|
109
109
|
'navigationManager.skipStepWarning': 'Bu adımı tamamlamanız tavsiye edilir. Adımı atlamak istediğinize emin misiniz?',
|
|
110
110
|
'navigationManager.skipStepLabel': 'Bu adımı atla',
|
|
111
|
+
'navigationManager.preventBackWarning': 'Ayrılmak istediğinize emin misiniz? İlerlemeniz kaybolabilir.',
|
|
111
112
|
'qrCodeScanningScreen.title': 'QR Kodu Tara'
|
|
112
113
|
};
|
package/lib/module/Trustchex.js
CHANGED
|
@@ -102,7 +102,8 @@ const Trustchex = ({
|
|
|
102
102
|
id: undefined,
|
|
103
103
|
initialRouteName: "VerificationSessionCheckScreen",
|
|
104
104
|
screenOptions: {
|
|
105
|
-
headerShown: false
|
|
105
|
+
headerShown: false,
|
|
106
|
+
headerBackButtonMenuEnabled: false
|
|
106
107
|
},
|
|
107
108
|
children: [/*#__PURE__*/_jsx(Stack.Screen, {
|
|
108
109
|
name: "VerificationSessionCheckScreen",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationManager.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/NavigationManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NavigationManager.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/NavigationManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAiBf,MAAM,MAAM,oBAAoB,GAAG;IACjC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,QAAA,MAAM,iBAAiB,wFAmPtB,CAAC;AAWF,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eidService.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/eidService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"eidService.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/eidService.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,6 +103,7 @@ declare const _default: {
|
|
|
103
103
|
'identityDocumentCamera.scanCompleted': string;
|
|
104
104
|
'navigationManager.skipStepWarning': string;
|
|
105
105
|
'navigationManager.skipStepLabel': string;
|
|
106
|
+
'navigationManager.preventBackWarning': string;
|
|
106
107
|
'qrCodeScanningScreen.title': string;
|
|
107
108
|
};
|
|
108
109
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/en.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/en.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAwJE"}
|
|
@@ -106,6 +106,7 @@ declare const _default: {
|
|
|
106
106
|
'identityDocumentCamera.scanCompleted': string;
|
|
107
107
|
'navigationManager.skipStepWarning': string;
|
|
108
108
|
'navigationManager.skipStepLabel': string;
|
|
109
|
+
'navigationManager.preventBackWarning': string;
|
|
109
110
|
'qrCodeScanningScreen.title': string;
|
|
110
111
|
};
|
|
111
112
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/tr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/tr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAyJE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Trustchex.d.ts","sourceRoot":"","sources":["../../../src/Trustchex.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAK5D,OAAO,gCAAgC,CAAC;AAexC,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AASD,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"Trustchex.d.ts","sourceRoot":"","sources":["../../../src/Trustchex.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAK5D,OAAO,gCAAgC,CAAC;AAexC,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AASD,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA+HvC,CAAC;AAWF,eAAe,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -8,9 +8,8 @@ import AppContext from '../Contexts/AppContext';
|
|
|
8
8
|
import type { WorkflowStep } from '../Types/identificationInfo';
|
|
9
9
|
import {
|
|
10
10
|
CommonActions,
|
|
11
|
-
type EventArg,
|
|
12
|
-
type NavigationAction,
|
|
13
11
|
useNavigation,
|
|
12
|
+
usePreventRemove,
|
|
14
13
|
} from '@react-navigation/native';
|
|
15
14
|
import { View, StyleSheet, Alert } from 'react-native';
|
|
16
15
|
import { useTranslation } from 'react-i18next';
|
|
@@ -48,30 +47,14 @@ const NavigationManager = forwardRef(
|
|
|
48
47
|
};
|
|
49
48
|
|
|
50
49
|
React.useEffect(() => {
|
|
51
|
-
const handleRemove = (
|
|
52
|
-
event: EventArg<
|
|
53
|
-
'beforeRemove',
|
|
54
|
-
true,
|
|
55
|
-
{
|
|
56
|
-
action: NavigationAction;
|
|
57
|
-
}
|
|
58
|
-
>
|
|
59
|
-
) => {
|
|
60
|
-
if (event.data.action.type !== 'RESET') {
|
|
61
|
-
event.preventDefault();
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
|
|
65
50
|
const handleFocus = () => {
|
|
66
51
|
// Reset navigation state when screen comes into focus
|
|
67
52
|
isNavigating = false;
|
|
68
53
|
};
|
|
69
54
|
|
|
70
|
-
navigation.addListener('beforeRemove', handleRemove);
|
|
71
55
|
navigation.addListener('focus', handleFocus);
|
|
72
56
|
|
|
73
57
|
return () => {
|
|
74
|
-
navigation.removeListener('beforeRemove', handleRemove);
|
|
75
58
|
navigation.removeListener('focus', handleFocus);
|
|
76
59
|
// Reset state on cleanup
|
|
77
60
|
isNavigating = false;
|
|
@@ -244,6 +227,34 @@ const NavigationManager = forwardRef(
|
|
|
244
227
|
}, 1000);
|
|
245
228
|
}, [appContext, navigation, routes.VERIFICATION_SESSION_CHECK]);
|
|
246
229
|
|
|
230
|
+
// Use usePreventRemove instead of beforeRemove listener to prevent the warning
|
|
231
|
+
// This prevents users from natively going back multiple screens
|
|
232
|
+
usePreventRemove(true, ({ data }) => {
|
|
233
|
+
// Only allow RESET actions to proceed
|
|
234
|
+
if (data.action.type === 'RESET') {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Show confirmation dialog for other navigation attempts
|
|
239
|
+
Alert.alert(
|
|
240
|
+
t('general.warning'),
|
|
241
|
+
t('navigationManager.preventBackWarning'),
|
|
242
|
+
[
|
|
243
|
+
{
|
|
244
|
+
text: t('general.cancel'),
|
|
245
|
+
style: 'cancel',
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
text: t('general.yes'),
|
|
249
|
+
onPress: () => {
|
|
250
|
+
// Allow the navigation by calling reset
|
|
251
|
+
reset();
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
]
|
|
255
|
+
);
|
|
256
|
+
});
|
|
257
|
+
|
|
247
258
|
useImperativeHandle(ref, () => ({
|
|
248
259
|
navigateToNextStep: goToNextRoute,
|
|
249
260
|
reset: reset,
|
|
@@ -10,7 +10,7 @@ export abstract class Country implements ICountry {
|
|
|
10
10
|
public static getInstance(code: number | string): Country {
|
|
11
11
|
// Note: This will be dynamically resolved at runtime
|
|
12
12
|
const { CountryRegistry } = require('./countryRegistry');
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
if (typeof code === 'number') {
|
|
15
15
|
return CountryRegistry.fromNumericCode(code);
|
|
16
16
|
} else if (typeof code === 'string') {
|
|
@@ -170,10 +170,12 @@ export class EIDService extends AbstractMRTDCardService {
|
|
|
170
170
|
EID_CONSTANTS.DEFAULT_MAX_BLOCKSIZE;
|
|
171
171
|
|
|
172
172
|
/** The normal maximal transceive length of APDUs. */
|
|
173
|
-
public static NORMAL_MAX_TRANSCEIVE_LENGTH: number =
|
|
173
|
+
public static NORMAL_MAX_TRANSCEIVE_LENGTH: number =
|
|
174
|
+
EID_CONSTANTS.NORMAL_MAX_TRANSCEIVE_LENGTH;
|
|
174
175
|
|
|
175
176
|
/** The extended maximal transceive length of APDUs. */
|
|
176
|
-
public static EXTENDED_MAX_TRANSCEIVE_LENGTH: number =
|
|
177
|
+
public static EXTENDED_MAX_TRANSCEIVE_LENGTH: number =
|
|
178
|
+
EID_CONSTANTS.EXTENDED_MAX_TRANSCEIVE_LENGTH;
|
|
177
179
|
|
|
178
180
|
/** The applet we select when we start a session. */
|
|
179
181
|
public static APPLET_AID: Uint8Array = EID_CONSTANTS.APPLET_AID;
|
|
@@ -147,5 +147,7 @@ export default {
|
|
|
147
147
|
'navigationManager.skipStepWarning':
|
|
148
148
|
'It is recommended to complete this step. Are you sure you want to skip it?',
|
|
149
149
|
'navigationManager.skipStepLabel': 'Skip this step',
|
|
150
|
+
'navigationManager.preventBackWarning':
|
|
151
|
+
'Are you sure you want to leave? Your progress may be lost.',
|
|
150
152
|
'qrCodeScanningScreen.title': 'Scan QR Code',
|
|
151
153
|
};
|
|
@@ -148,5 +148,7 @@ export default {
|
|
|
148
148
|
'navigationManager.skipStepWarning':
|
|
149
149
|
'Bu adımı tamamlamanız tavsiye edilir. Adımı atlamak istediğinize emin misiniz?',
|
|
150
150
|
'navigationManager.skipStepLabel': 'Bu adımı atla',
|
|
151
|
+
'navigationManager.preventBackWarning':
|
|
152
|
+
'Ayrılmak istediğinize emin misiniz? İlerlemeniz kaybolabilir.',
|
|
151
153
|
'qrCodeScanningScreen.title': 'QR Kodu Tara',
|
|
152
154
|
};
|
package/src/Trustchex.tsx
CHANGED
|
@@ -133,7 +133,10 @@ const Trustchex: React.FC<TrustchexProps> = ({
|
|
|
133
133
|
<Stack.Navigator
|
|
134
134
|
id={undefined}
|
|
135
135
|
initialRouteName="VerificationSessionCheckScreen"
|
|
136
|
-
screenOptions={{
|
|
136
|
+
screenOptions={{
|
|
137
|
+
headerShown: false,
|
|
138
|
+
headerBackButtonMenuEnabled: false,
|
|
139
|
+
}}
|
|
137
140
|
>
|
|
138
141
|
<Stack.Screen
|
|
139
142
|
name="VerificationSessionCheckScreen"
|