@trustchex/react-native-sdk 1.409.0 → 1.472.0
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/android/src/main/java/com/trustchex/reactnativesdk/TrustchexSDKModule.kt +2 -8
- package/android/src/main/java/com/trustchex/reactnativesdk/camera/TrustchexCameraView.kt +102 -4
- package/ios/Camera/TrustchexCameraView.swift +151 -18
- package/ios/Permission/PermissionModule.m +22 -0
- package/ios/Permission/PermissionModule.swift +67 -0
- package/lib/module/Screens/Debug/NFCScanTestScreen.js +635 -0
- package/lib/module/Screens/Dynamic/ContractAcceptanceScreen.js +1 -4
- package/lib/module/Screens/Dynamic/IdentityDocumentEIDScanningScreen.js +17 -4
- package/lib/module/Screens/Dynamic/LivenessDetectionScreen.js +125 -25
- package/lib/module/Screens/Dynamic/VerbalConsentScreen.js +1079 -0
- package/lib/module/Screens/Dynamic/VideoCallScreen.js +10 -13
- package/lib/module/Screens/Static/ResultScreen.js +131 -22
- package/lib/module/Screens/Static/VerificationSessionCheckScreen.js +8 -0
- package/lib/module/Shared/Animations/recording.json +1 -0
- package/lib/module/Shared/Components/DebugNavigationPanel.js +69 -71
- package/lib/module/Shared/Components/EIDScanner.js +222 -115
- package/lib/module/Shared/Components/FaceCamera.js +14 -8
- package/lib/module/Shared/Components/IdentityDocumentCamera.flows.js +5 -3
- package/lib/module/Shared/Components/IdentityDocumentCamera.js +60 -42
- package/lib/module/Shared/Components/IdentityDocumentCamera.utils.js +13 -4
- package/lib/module/Shared/Components/NavigationManager.js +24 -16
- package/lib/module/Shared/EIDReader/aesSecureMessagingWrapper.js +51 -0
- package/lib/module/Shared/EIDReader/apduLevelPACECapable.js +3 -0
- package/lib/module/Shared/EIDReader/bacKey.js +16 -2
- package/lib/module/Shared/EIDReader/eidReader.js +354 -13
- package/lib/module/Shared/EIDReader/eidService.js +25 -1
- package/lib/module/Shared/EIDReader/nfcManagerCardService.js +4 -7
- package/lib/module/Shared/EIDReader/paceInfo.js +85 -0
- package/lib/module/Shared/EIDReader/paceKeySpec.js +51 -0
- package/lib/module/Shared/EIDReader/protocol/paceAPDUSender.js +100 -0
- package/lib/module/Shared/EIDReader/protocol/paceProtocol.js +655 -0
- package/lib/module/Shared/EIDReader/protocol/paceResult.js +37 -0
- package/lib/module/Shared/EIDReader/secureMessagingWrapper.js +27 -4
- package/lib/module/Shared/EIDReader/smartcards/commandAPDU.js +2 -1
- package/lib/module/Shared/EIDReader/tlv/tlv.helpers.js +1 -1
- package/lib/module/Shared/EIDReader/tlv/tlv.utils.js +6 -3
- package/lib/module/Shared/EIDReader/utils/aesCrypto.utils.js +189 -0
- package/lib/module/Shared/Libs/PERMISSIONS_MANAGER.md +268 -0
- package/lib/module/Shared/Libs/analytics.utils.js +4 -0
- package/lib/module/Shared/Libs/contains.js +1 -40
- package/lib/module/Shared/Libs/country-display.utils.js +34 -0
- package/lib/module/Shared/Libs/demo.utils.js +8 -0
- package/lib/module/Shared/Libs/index.js +20 -0
- package/lib/module/Shared/Libs/mrz.utils.js +3 -2
- package/lib/module/Shared/Libs/permissions.utils.js +199 -0
- package/lib/module/Shared/Libs/status-bar.utils.js +4 -2
- package/lib/module/Shared/Types/analytics.types.js +2 -0
- package/lib/module/Translation/Resources/en.js +42 -2
- package/lib/module/Translation/Resources/tr.js +42 -2
- package/lib/module/Trustchex.js +54 -20
- package/lib/module/version.js +1 -1
- package/lib/typescript/src/Screens/Debug/NFCScanTestScreen.d.ts +3 -0
- package/lib/typescript/src/Screens/Debug/NFCScanTestScreen.d.ts.map +1 -0
- package/lib/typescript/src/Screens/Dynamic/ContractAcceptanceScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Dynamic/LivenessDetectionScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Dynamic/VerbalConsentScreen.d.ts +3 -0
- package/lib/typescript/src/Screens/Dynamic/VerbalConsentScreen.d.ts.map +1 -0
- package/lib/typescript/src/Screens/Dynamic/VideoCallScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Static/ResultScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Static/VerificationSessionCheckScreen.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/DebugNavigationPanel.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/EIDScanner.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/FaceCamera.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts +5 -0
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/NavigationManager.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/aesSecureMessagingWrapper.d.ts +18 -0
- package/lib/typescript/src/Shared/EIDReader/aesSecureMessagingWrapper.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/apduLevelPACECapable.d.ts +23 -0
- package/lib/typescript/src/Shared/EIDReader/apduLevelPACECapable.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/bacKey.d.ts +6 -0
- package/lib/typescript/src/Shared/EIDReader/bacKey.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/eidReader.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/eidService.d.ts +9 -0
- package/lib/typescript/src/Shared/EIDReader/eidService.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/nfcManagerCardService.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/paceInfo.d.ts +50 -0
- package/lib/typescript/src/Shared/EIDReader/paceInfo.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/paceKeySpec.d.ts +30 -0
- package/lib/typescript/src/Shared/EIDReader/paceKeySpec.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceAPDUSender.d.ts +17 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceAPDUSender.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceProtocol.d.ts +105 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceProtocol.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceResult.d.ts +24 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceResult.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/secureMessagingWrapper.d.ts +15 -0
- package/lib/typescript/src/Shared/EIDReader/secureMessagingWrapper.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/smartcards/commandAPDU.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/tlv/tlv.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/utils/aesCrypto.utils.d.ts +39 -0
- package/lib/typescript/src/Shared/EIDReader/utils/aesCrypto.utils.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Libs/analytics.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/contains.d.ts +0 -7
- package/lib/typescript/src/Shared/Libs/contains.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/country-display.utils.d.ts +2 -0
- package/lib/typescript/src/Shared/Libs/country-display.utils.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Libs/demo.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/http-client.d.ts +1 -1
- package/lib/typescript/src/Shared/Libs/http-client.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/index.d.ts +20 -0
- package/lib/typescript/src/Shared/Libs/index.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Libs/mrz.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/permissions.utils.d.ts +58 -0
- package/lib/typescript/src/Shared/Libs/permissions.utils.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Libs/status-bar.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Types/analytics.types.d.ts +2 -0
- package/lib/typescript/src/Shared/Types/analytics.types.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Types/identificationInfo.d.ts +10 -1
- package/lib/typescript/src/Shared/Types/identificationInfo.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/en.d.ts +41 -1
- package/lib/typescript/src/Translation/Resources/en.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/tr.d.ts +41 -1
- package/lib/typescript/src/Translation/Resources/tr.d.ts.map +1 -1
- package/lib/typescript/src/Trustchex.d.ts.map +1 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +7 -4
- package/src/Screens/Debug/NFCScanTestScreen.tsx +692 -0
- package/src/Screens/Dynamic/ContractAcceptanceScreen.tsx +1 -4
- package/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.tsx +21 -4
- package/src/Screens/Dynamic/LivenessDetectionScreen.tsx +165 -24
- package/src/Screens/Dynamic/VerbalConsentScreen.tsx +1401 -0
- package/src/Screens/Dynamic/VideoCallScreen.tsx +11 -20
- package/src/Screens/Static/ResultScreen.tsx +187 -31
- package/src/Screens/Static/VerificationSessionCheckScreen.tsx +9 -0
- package/src/Shared/Animations/recording.json +1 -0
- package/src/Shared/Components/DebugNavigationPanel.tsx +73 -48
- package/src/Shared/Components/EIDScanner.tsx +280 -119
- package/src/Shared/Components/FaceCamera.tsx +19 -16
- package/src/Shared/Components/IdentityDocumentCamera.flows.ts +7 -4
- package/src/Shared/Components/IdentityDocumentCamera.tsx +206 -191
- package/src/Shared/Components/IdentityDocumentCamera.utils.ts +13 -4
- package/src/Shared/Components/NavigationManager.tsx +27 -18
- package/src/Shared/EIDReader/aesSecureMessagingWrapper.ts +69 -0
- package/src/Shared/EIDReader/apduLevelPACECapable.ts +34 -0
- package/src/Shared/EIDReader/bacKey.ts +24 -8
- package/src/Shared/EIDReader/eidReader.ts +398 -12
- package/src/Shared/EIDReader/eidService.ts +49 -1
- package/src/Shared/EIDReader/nfcManagerCardService.ts +4 -6
- package/src/Shared/EIDReader/paceInfo.ts +159 -0
- package/src/Shared/EIDReader/paceKeySpec.ts +56 -0
- package/src/Shared/EIDReader/protocol/paceAPDUSender.ts +163 -0
- package/src/Shared/EIDReader/protocol/paceProtocol.ts +946 -0
- package/src/Shared/EIDReader/protocol/paceResult.ts +62 -0
- package/src/Shared/EIDReader/secureMessagingWrapper.ts +28 -10
- package/src/Shared/EIDReader/smartcards/commandAPDU.ts +2 -1
- package/src/Shared/EIDReader/tlv/tlv.helpers.ts +1 -1
- package/src/Shared/EIDReader/tlv/tlv.utils.ts +8 -5
- package/src/Shared/EIDReader/utils/aesCrypto.utils.ts +217 -0
- package/src/Shared/Libs/PERMISSIONS_MANAGER.md +268 -0
- package/src/Shared/Libs/analytics.utils.ts +4 -0
- package/src/Shared/Libs/contains.ts +0 -53
- package/src/Shared/Libs/country-display.utils.ts +55 -0
- package/src/Shared/Libs/crypto.utils.ts +2 -2
- package/src/Shared/Libs/demo.utils.ts +10 -0
- package/src/Shared/Libs/http-client.ts +12 -4
- package/src/Shared/Libs/index.ts +63 -0
- package/src/Shared/Libs/mrz.utils.ts +3 -2
- package/src/Shared/Libs/permissions.utils.ts +251 -0
- package/src/Shared/Libs/status-bar.utils.ts +4 -2
- package/src/Shared/Services/VideoSessionService.ts +1 -1
- package/src/Shared/Types/analytics.types.ts +2 -0
- package/src/Shared/Types/identificationInfo.ts +11 -0
- package/src/Translation/Resources/en.ts +64 -3
- package/src/Translation/Resources/tr.ts +63 -3
- package/src/Trustchex.tsx +53 -17
- package/src/version.ts +1 -1
|
@@ -49,6 +49,9 @@ export default {
|
|
|
49
49
|
'resultScreen.demoImageHologram': 'Hologram',
|
|
50
50
|
'resultScreen.demoLivenessDetection': 'Canlılık Tespiti',
|
|
51
51
|
'resultScreen.demoVideo': 'Video',
|
|
52
|
+
'resultScreen.demoVerbalConsent': 'Sözlü onay',
|
|
53
|
+
'resultScreen.demoVerbalConsentTitle': 'Başlık',
|
|
54
|
+
'resultScreen.demoVerbalConsentText': 'Metin',
|
|
52
55
|
'resultScreen.demoStartOver': 'Baştan Başla',
|
|
53
56
|
'livenessDetectionScreen.guideHeader': 'Yüz Doğrulaması',
|
|
54
57
|
'livenessDetectionScreen.guideText':
|
|
@@ -83,10 +86,8 @@ export default {
|
|
|
83
86
|
'İstendiğinde, belgenizi cihazınızın arka tarafındaki NFC antenine düz bir şekilde yaklaştırın.',
|
|
84
87
|
'eidScannerScreen.invalidMRZFields':
|
|
85
88
|
'Belge bilgileri okunamadı. Lütfen tekrar deneyin.',
|
|
86
|
-
'eidScannerScreen.imageCannotBeShown':
|
|
87
|
-
'Fotoğraf verisi bulundu ancak gösterilemiyor.',
|
|
88
89
|
'eidScannerScreen.faceImageNotFound': 'Belgede fotoğraf verisi bulunamadı.',
|
|
89
|
-
'eidScannerScreen.documentCode': 'Belge
|
|
90
|
+
'eidScannerScreen.documentCode': 'Belge Türü',
|
|
90
91
|
'eidScannerScreen.nationality': 'Uyruk',
|
|
91
92
|
'eidScannerScreen.personalNumber': 'Vatandaşlık No',
|
|
92
93
|
'eidScannerScreen.documentNumber': 'Belge No',
|
|
@@ -94,7 +95,15 @@ export default {
|
|
|
94
95
|
'eidScannerScreen.surname': 'Soyad',
|
|
95
96
|
'eidScannerScreen.birthDate': 'Doğum Tarihi',
|
|
96
97
|
'eidScannerScreen.gender': 'Cinsiyet',
|
|
98
|
+
'eidScannerScreen.genderMale': 'Erkek',
|
|
99
|
+
'eidScannerScreen.genderFemale': 'Kadın',
|
|
100
|
+
'eidScannerScreen.genderUnspecified': 'Belirtilmemiş',
|
|
101
|
+
'eidScannerScreen.docTypePassport': 'Pasaport',
|
|
102
|
+
'eidScannerScreen.docTypeID': 'Kimlik Kartı',
|
|
103
|
+
'eidScannerScreen.docTypeResidence': 'Oturma İzni',
|
|
104
|
+
'eidScannerScreen.docTypeVisa': 'Vize',
|
|
97
105
|
'eidScannerScreen.expirationDate': 'Geçerlilik Tarihi',
|
|
106
|
+
'eidScannerScreen.issuingState': 'Veren Ülke',
|
|
98
107
|
'eidScannerScreen.mrzText': 'MRZ Metni',
|
|
99
108
|
'eidScannerScreen.nfcNotSupported':
|
|
100
109
|
'Bu cihaz NFC işlevini desteklememektedir.',
|
|
@@ -187,6 +196,57 @@ export default {
|
|
|
187
196
|
'videoCallScreen.agentInstructions': 'Temsilciden Talimatlar',
|
|
188
197
|
'videoCallScreen.callNotCompleted':
|
|
189
198
|
'Görüntülü görüşme tamamlanmadı. Devam etmek için bu adım zorunludur.',
|
|
199
|
+
'verbalConsentVideoScreen.title': 'Sözlü Onay',
|
|
200
|
+
'verbalConsentVideoScreen.description':
|
|
201
|
+
'Aşağıdaki metni net bir şekilde okuyarak videonuzu kaydedin.',
|
|
202
|
+
'verbalConsentVideoScreen.guideHeader': 'Sözlü onay kaydı için hazırlanın',
|
|
203
|
+
'verbalConsentVideoScreen.guideText':
|
|
204
|
+
'Kayda başlamadan önce lütfen aşağıdakileri sağlayın:',
|
|
205
|
+
'verbalConsentVideoScreen.guidePoint1':
|
|
206
|
+
'Arka plan gürültüsünün az olduğu sessiz bir ortam seçin',
|
|
207
|
+
'verbalConsentVideoScreen.guidePoint2':
|
|
208
|
+
'Yüzünüzün tamamı iyi aydınlatılmış şekilde görünür olsun',
|
|
209
|
+
'verbalConsentVideoScreen.guidePoint3':
|
|
210
|
+
'Onay metnini net ve acele etmeden okuyun',
|
|
211
|
+
'verbalConsentVideoScreen.guidePoint4':
|
|
212
|
+
'Kayıt tamamlanana kadar telefonu sabit tutun',
|
|
213
|
+
'verbalConsentVideoScreen.defaultConsentText':
|
|
214
|
+
'Dijital kimlik doğrulama amacıyla kimliğimi teyit ediyor ve kişisel verilerimin işlenmesine açık rızamı veriyorum. Biyometrik verilerimin yalnızca kimlik doğrulama amacıyla işleneceğini kabul ediyorum. Bu onayı istediğim zaman geri çekebileceğimi biliyorum.',
|
|
215
|
+
'verbalConsentVideoScreen.startRecording': 'Kaydı Başlat',
|
|
216
|
+
'verbalConsentVideoScreen.stopRecording': 'Kaydı Durdur',
|
|
217
|
+
'verbalConsentVideoScreen.recordAgain': 'Tekrar Kaydet',
|
|
218
|
+
'verbalConsentVideoScreen.tryAgain': 'Tekrar Dene',
|
|
219
|
+
'verbalConsentVideoScreen.submit': 'Devam Et',
|
|
220
|
+
'verbalConsentVideoScreen.recordingProgress': 'Kayıt: {{current}} sn',
|
|
221
|
+
'verbalConsentVideoScreen.readNowPrompt':
|
|
222
|
+
'Metni sesli okuyun — duraklatmak için ekrana dokunun.',
|
|
223
|
+
'verbalConsentVideoScreen.scrollReadStopHint':
|
|
224
|
+
'Kaydı durdurmak için metnin sonuna kadar kaydırın.',
|
|
225
|
+
'verbalConsentVideoScreen.scrollCompletedStopHint':
|
|
226
|
+
'Harika. Sona ulaştınız. Metnin tamamını bitirdikten sonra kaydı durdurabilirsiniz.',
|
|
227
|
+
'verbalConsentVideoScreen.recordingIndicator': 'Kayıt',
|
|
228
|
+
'verbalConsentVideoScreen.recordingStartedBanner':
|
|
229
|
+
'Kayıt başladı. Metnin tamamını okuyun ve sona kadar kaydırın.',
|
|
230
|
+
'verbalConsentVideoScreen.keepHeadInCirclePrompt':
|
|
231
|
+
'Başınızı dairenin içine yerleştirin ve kayıt tamamlanana kadar sabit tutun.',
|
|
232
|
+
'verbalConsentVideoScreen.readThenStopPrompt':
|
|
233
|
+
'Ekrandaki metni okuyun, ardından kaydı durdurun.',
|
|
234
|
+
'verbalConsentVideoScreen.readProgress':
|
|
235
|
+
'Okuma ilerlemesi (tahmini): {{current}}/{{target}} sn',
|
|
236
|
+
'verbalConsentVideoScreen.stopHintPending':
|
|
237
|
+
'Kaydı durdurmadan önce metnin tamamını okuyun.',
|
|
238
|
+
'verbalConsentVideoScreen.stopHintReady':
|
|
239
|
+
'Metin tamamlanmış görünüyor. Kaydı şimdi durdurabilirsiniz.',
|
|
240
|
+
'verbalConsentVideoScreen.faceAligned':
|
|
241
|
+
'Yüz hizalaması tamam. Kayda başlayabilirsiniz.',
|
|
242
|
+
'verbalConsentVideoScreen.previewTitle':
|
|
243
|
+
'Devam etmeden önce kaydı kontrol edin ve metnin net olduğundan emin olun.',
|
|
244
|
+
'verbalConsentVideoScreen.analytics.recordingFailed':
|
|
245
|
+
'Video kaydi basarisiz oldu',
|
|
246
|
+
'verbalConsentVideoScreen.analytics.identificationIdMissing':
|
|
247
|
+
'Yukleme oncesinde kimlik numarasi bulunamadi',
|
|
248
|
+
'verbalConsentVideoScreen.analytics.uploadFailed':
|
|
249
|
+
'Sozlu onay videosu yuklenemedi',
|
|
190
250
|
'navigationManager.skipStepWarning':
|
|
191
251
|
'Başarılı bir doğrulama için bu adımı tamamlamanız önerilir. Yine de atlamak istiyor musunuz?',
|
|
192
252
|
'navigationManager.skipStepLabel': 'Bu Adımı Atla',
|
package/src/Trustchex.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useState, useMemo } from 'react';
|
|
1
|
+
import React, { useEffect, useState, useMemo, useRef } from 'react';
|
|
2
2
|
import { NavigationContainer } from '@react-navigation/native';
|
|
3
3
|
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
|
4
4
|
import { View, ActivityIndicator, StyleSheet } from 'react-native';
|
|
@@ -16,10 +16,12 @@ import ContractAcceptanceScreen from './Screens/Dynamic/ContractAcceptanceScreen
|
|
|
16
16
|
import VerificationSessionCheckScreen from './Screens/Static/VerificationSessionCheckScreen';
|
|
17
17
|
import QrCodeScanningScreen from './Screens/Static/QrCodeScanningScreen';
|
|
18
18
|
import VideoCallScreen from './Screens/Dynamic/VideoCallScreen';
|
|
19
|
+
import VerbalConsentScreen from './Screens/Dynamic/VerbalConsentScreen';
|
|
19
20
|
import OTPVerificationScreen from './Screens/Static/OTPVerificationScreen';
|
|
20
21
|
import MRZTestScreen from './Screens/Debug/MRZTestScreen';
|
|
21
22
|
import BarcodeTestScreen from './Screens/Debug/BarcodeTestScreen';
|
|
22
|
-
import
|
|
23
|
+
import NFCScanTestScreen from './Screens/Debug/NFCScanTestScreen';
|
|
24
|
+
import AppContext, { type AppContextType } from './Shared/Contexts/AppContext';
|
|
23
25
|
import DebugNavigationPanel from './Shared/Components/DebugNavigationPanel';
|
|
24
26
|
import i18n from './Translation';
|
|
25
27
|
import { initializeTTS } from './Shared/Libs/tts.utils';
|
|
@@ -87,13 +89,24 @@ const Trustchex: React.FC<TrustchexProps> = ({
|
|
|
87
89
|
[propBranding]
|
|
88
90
|
);
|
|
89
91
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
+
// Use a ref to preserve the context object across re-renders.
|
|
93
|
+
// Several parts of the codebase mutate properties directly on the context
|
|
94
|
+
// (e.g. currentWorkflowStep, workflowSteps, identificationInfo fields).
|
|
95
|
+
// A plain useMemo would create a new object on every dependency change,
|
|
96
|
+
// discarding those mutations and causing screens to see undefined values.
|
|
97
|
+
const contextRef = useRef<AppContextType | null>(null);
|
|
98
|
+
|
|
99
|
+
const contextValue = useMemo(() => {
|
|
100
|
+
const prev = contextRef.current;
|
|
101
|
+
|
|
102
|
+
const value: AppContextType = {
|
|
92
103
|
isDemoSession,
|
|
93
104
|
baseUrl: baseUrl || '',
|
|
94
105
|
locale,
|
|
95
106
|
branding,
|
|
96
|
-
identificationInfo
|
|
107
|
+
// Reuse the previous identificationInfo object so that direct
|
|
108
|
+
// mutations (sessionId, identificationId, consent, etc.) survive.
|
|
109
|
+
identificationInfo: prev?.identificationInfo ?? {
|
|
97
110
|
sessionId: sessionId || '',
|
|
98
111
|
identificationId: '',
|
|
99
112
|
consent: {
|
|
@@ -102,23 +115,38 @@ const Trustchex: React.FC<TrustchexProps> = ({
|
|
|
102
115
|
},
|
|
103
116
|
locale: propLocale || (i18n.language as 'en' | 'tr'),
|
|
104
117
|
},
|
|
118
|
+
// Carry over mutated properties from the previous context value
|
|
119
|
+
workflowSteps: prev?.workflowSteps,
|
|
120
|
+
currentWorkflowStep: prev?.currentWorkflowStep,
|
|
121
|
+
isDebugNavigated: prev?.isDebugNavigated,
|
|
122
|
+
isTestVideoSession: prev?.isTestVideoSession,
|
|
105
123
|
onCompleted,
|
|
106
124
|
onError,
|
|
107
125
|
setSessionId,
|
|
108
126
|
setBaseUrl,
|
|
109
127
|
setIsDemoSession,
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
sessionId
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// Update state-derived identificationInfo fields without replacing
|
|
131
|
+
// the object (so other mutated fields like identificationId survive).
|
|
132
|
+
if (sessionId) {
|
|
133
|
+
value.identificationInfo.sessionId = sessionId;
|
|
134
|
+
}
|
|
135
|
+
value.identificationInfo.locale =
|
|
136
|
+
propLocale || (i18n.language as 'en' | 'tr');
|
|
137
|
+
|
|
138
|
+
contextRef.current = value;
|
|
139
|
+
return value;
|
|
140
|
+
}, [
|
|
141
|
+
baseUrl,
|
|
142
|
+
locale,
|
|
143
|
+
branding,
|
|
144
|
+
sessionId,
|
|
145
|
+
propLocale,
|
|
146
|
+
onCompleted,
|
|
147
|
+
onError,
|
|
148
|
+
isDemoSession,
|
|
149
|
+
]);
|
|
122
150
|
|
|
123
151
|
// Initialize analytics when SDK mounts with valid session
|
|
124
152
|
useEffect(() => {
|
|
@@ -237,11 +265,19 @@ const Trustchex: React.FC<TrustchexProps> = ({
|
|
|
237
265
|
name="VideoCallScreen"
|
|
238
266
|
component={VideoCallScreen}
|
|
239
267
|
/>
|
|
268
|
+
<Stack.Screen
|
|
269
|
+
name="VerbalConsentScreen"
|
|
270
|
+
component={VerbalConsentScreen}
|
|
271
|
+
/>
|
|
240
272
|
<Stack.Screen name="MRZTestScreen" component={MRZTestScreen} />
|
|
241
273
|
<Stack.Screen
|
|
242
274
|
name="BarcodeTestScreen"
|
|
243
275
|
component={BarcodeTestScreen}
|
|
244
276
|
/>
|
|
277
|
+
<Stack.Screen
|
|
278
|
+
name="NFCScanTestScreen"
|
|
279
|
+
component={NFCScanTestScreen}
|
|
280
|
+
/>
|
|
245
281
|
</Stack.Navigator>
|
|
246
282
|
<DebugNavigationPanel />
|
|
247
283
|
</NavigationContainer>
|
package/src/version.ts
CHANGED