@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.
Files changed (171) hide show
  1. package/android/src/main/java/com/trustchex/reactnativesdk/TrustchexSDKModule.kt +2 -8
  2. package/android/src/main/java/com/trustchex/reactnativesdk/camera/TrustchexCameraView.kt +102 -4
  3. package/ios/Camera/TrustchexCameraView.swift +151 -18
  4. package/ios/Permission/PermissionModule.m +22 -0
  5. package/ios/Permission/PermissionModule.swift +67 -0
  6. package/lib/module/Screens/Debug/NFCScanTestScreen.js +635 -0
  7. package/lib/module/Screens/Dynamic/ContractAcceptanceScreen.js +1 -4
  8. package/lib/module/Screens/Dynamic/IdentityDocumentEIDScanningScreen.js +17 -4
  9. package/lib/module/Screens/Dynamic/LivenessDetectionScreen.js +125 -25
  10. package/lib/module/Screens/Dynamic/VerbalConsentScreen.js +1079 -0
  11. package/lib/module/Screens/Dynamic/VideoCallScreen.js +10 -13
  12. package/lib/module/Screens/Static/ResultScreen.js +131 -22
  13. package/lib/module/Screens/Static/VerificationSessionCheckScreen.js +8 -0
  14. package/lib/module/Shared/Animations/recording.json +1 -0
  15. package/lib/module/Shared/Components/DebugNavigationPanel.js +69 -71
  16. package/lib/module/Shared/Components/EIDScanner.js +222 -115
  17. package/lib/module/Shared/Components/FaceCamera.js +14 -8
  18. package/lib/module/Shared/Components/IdentityDocumentCamera.flows.js +5 -3
  19. package/lib/module/Shared/Components/IdentityDocumentCamera.js +60 -42
  20. package/lib/module/Shared/Components/IdentityDocumentCamera.utils.js +13 -4
  21. package/lib/module/Shared/Components/NavigationManager.js +24 -16
  22. package/lib/module/Shared/EIDReader/aesSecureMessagingWrapper.js +51 -0
  23. package/lib/module/Shared/EIDReader/apduLevelPACECapable.js +3 -0
  24. package/lib/module/Shared/EIDReader/bacKey.js +16 -2
  25. package/lib/module/Shared/EIDReader/eidReader.js +354 -13
  26. package/lib/module/Shared/EIDReader/eidService.js +25 -1
  27. package/lib/module/Shared/EIDReader/nfcManagerCardService.js +4 -7
  28. package/lib/module/Shared/EIDReader/paceInfo.js +85 -0
  29. package/lib/module/Shared/EIDReader/paceKeySpec.js +51 -0
  30. package/lib/module/Shared/EIDReader/protocol/paceAPDUSender.js +100 -0
  31. package/lib/module/Shared/EIDReader/protocol/paceProtocol.js +655 -0
  32. package/lib/module/Shared/EIDReader/protocol/paceResult.js +37 -0
  33. package/lib/module/Shared/EIDReader/secureMessagingWrapper.js +27 -4
  34. package/lib/module/Shared/EIDReader/smartcards/commandAPDU.js +2 -1
  35. package/lib/module/Shared/EIDReader/tlv/tlv.helpers.js +1 -1
  36. package/lib/module/Shared/EIDReader/tlv/tlv.utils.js +6 -3
  37. package/lib/module/Shared/EIDReader/utils/aesCrypto.utils.js +189 -0
  38. package/lib/module/Shared/Libs/PERMISSIONS_MANAGER.md +268 -0
  39. package/lib/module/Shared/Libs/analytics.utils.js +4 -0
  40. package/lib/module/Shared/Libs/contains.js +1 -40
  41. package/lib/module/Shared/Libs/country-display.utils.js +34 -0
  42. package/lib/module/Shared/Libs/demo.utils.js +8 -0
  43. package/lib/module/Shared/Libs/index.js +20 -0
  44. package/lib/module/Shared/Libs/mrz.utils.js +3 -2
  45. package/lib/module/Shared/Libs/permissions.utils.js +199 -0
  46. package/lib/module/Shared/Libs/status-bar.utils.js +4 -2
  47. package/lib/module/Shared/Types/analytics.types.js +2 -0
  48. package/lib/module/Translation/Resources/en.js +42 -2
  49. package/lib/module/Translation/Resources/tr.js +42 -2
  50. package/lib/module/Trustchex.js +54 -20
  51. package/lib/module/version.js +1 -1
  52. package/lib/typescript/src/Screens/Debug/NFCScanTestScreen.d.ts +3 -0
  53. package/lib/typescript/src/Screens/Debug/NFCScanTestScreen.d.ts.map +1 -0
  54. package/lib/typescript/src/Screens/Dynamic/ContractAcceptanceScreen.d.ts.map +1 -1
  55. package/lib/typescript/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.d.ts.map +1 -1
  56. package/lib/typescript/src/Screens/Dynamic/LivenessDetectionScreen.d.ts.map +1 -1
  57. package/lib/typescript/src/Screens/Dynamic/VerbalConsentScreen.d.ts +3 -0
  58. package/lib/typescript/src/Screens/Dynamic/VerbalConsentScreen.d.ts.map +1 -0
  59. package/lib/typescript/src/Screens/Dynamic/VideoCallScreen.d.ts.map +1 -1
  60. package/lib/typescript/src/Screens/Static/ResultScreen.d.ts.map +1 -1
  61. package/lib/typescript/src/Screens/Static/VerificationSessionCheckScreen.d.ts.map +1 -1
  62. package/lib/typescript/src/Shared/Components/DebugNavigationPanel.d.ts.map +1 -1
  63. package/lib/typescript/src/Shared/Components/EIDScanner.d.ts.map +1 -1
  64. package/lib/typescript/src/Shared/Components/FaceCamera.d.ts.map +1 -1
  65. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts.map +1 -1
  66. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts +1 -1
  67. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts.map +1 -1
  68. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts +5 -0
  69. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts.map +1 -1
  70. package/lib/typescript/src/Shared/Components/NavigationManager.d.ts.map +1 -1
  71. package/lib/typescript/src/Shared/EIDReader/aesSecureMessagingWrapper.d.ts +18 -0
  72. package/lib/typescript/src/Shared/EIDReader/aesSecureMessagingWrapper.d.ts.map +1 -0
  73. package/lib/typescript/src/Shared/EIDReader/apduLevelPACECapable.d.ts +23 -0
  74. package/lib/typescript/src/Shared/EIDReader/apduLevelPACECapable.d.ts.map +1 -0
  75. package/lib/typescript/src/Shared/EIDReader/bacKey.d.ts +6 -0
  76. package/lib/typescript/src/Shared/EIDReader/bacKey.d.ts.map +1 -1
  77. package/lib/typescript/src/Shared/EIDReader/eidReader.d.ts.map +1 -1
  78. package/lib/typescript/src/Shared/EIDReader/eidService.d.ts +9 -0
  79. package/lib/typescript/src/Shared/EIDReader/eidService.d.ts.map +1 -1
  80. package/lib/typescript/src/Shared/EIDReader/nfcManagerCardService.d.ts.map +1 -1
  81. package/lib/typescript/src/Shared/EIDReader/paceInfo.d.ts +50 -0
  82. package/lib/typescript/src/Shared/EIDReader/paceInfo.d.ts.map +1 -0
  83. package/lib/typescript/src/Shared/EIDReader/paceKeySpec.d.ts +30 -0
  84. package/lib/typescript/src/Shared/EIDReader/paceKeySpec.d.ts.map +1 -0
  85. package/lib/typescript/src/Shared/EIDReader/protocol/paceAPDUSender.d.ts +17 -0
  86. package/lib/typescript/src/Shared/EIDReader/protocol/paceAPDUSender.d.ts.map +1 -0
  87. package/lib/typescript/src/Shared/EIDReader/protocol/paceProtocol.d.ts +105 -0
  88. package/lib/typescript/src/Shared/EIDReader/protocol/paceProtocol.d.ts.map +1 -0
  89. package/lib/typescript/src/Shared/EIDReader/protocol/paceResult.d.ts +24 -0
  90. package/lib/typescript/src/Shared/EIDReader/protocol/paceResult.d.ts.map +1 -0
  91. package/lib/typescript/src/Shared/EIDReader/secureMessagingWrapper.d.ts +15 -0
  92. package/lib/typescript/src/Shared/EIDReader/secureMessagingWrapper.d.ts.map +1 -1
  93. package/lib/typescript/src/Shared/EIDReader/smartcards/commandAPDU.d.ts.map +1 -1
  94. package/lib/typescript/src/Shared/EIDReader/tlv/tlv.utils.d.ts.map +1 -1
  95. package/lib/typescript/src/Shared/EIDReader/utils/aesCrypto.utils.d.ts +39 -0
  96. package/lib/typescript/src/Shared/EIDReader/utils/aesCrypto.utils.d.ts.map +1 -0
  97. package/lib/typescript/src/Shared/Libs/analytics.utils.d.ts.map +1 -1
  98. package/lib/typescript/src/Shared/Libs/contains.d.ts +0 -7
  99. package/lib/typescript/src/Shared/Libs/contains.d.ts.map +1 -1
  100. package/lib/typescript/src/Shared/Libs/country-display.utils.d.ts +2 -0
  101. package/lib/typescript/src/Shared/Libs/country-display.utils.d.ts.map +1 -0
  102. package/lib/typescript/src/Shared/Libs/demo.utils.d.ts.map +1 -1
  103. package/lib/typescript/src/Shared/Libs/http-client.d.ts +1 -1
  104. package/lib/typescript/src/Shared/Libs/http-client.d.ts.map +1 -1
  105. package/lib/typescript/src/Shared/Libs/index.d.ts +20 -0
  106. package/lib/typescript/src/Shared/Libs/index.d.ts.map +1 -0
  107. package/lib/typescript/src/Shared/Libs/mrz.utils.d.ts.map +1 -1
  108. package/lib/typescript/src/Shared/Libs/permissions.utils.d.ts +58 -0
  109. package/lib/typescript/src/Shared/Libs/permissions.utils.d.ts.map +1 -0
  110. package/lib/typescript/src/Shared/Libs/status-bar.utils.d.ts.map +1 -1
  111. package/lib/typescript/src/Shared/Types/analytics.types.d.ts +2 -0
  112. package/lib/typescript/src/Shared/Types/analytics.types.d.ts.map +1 -1
  113. package/lib/typescript/src/Shared/Types/identificationInfo.d.ts +10 -1
  114. package/lib/typescript/src/Shared/Types/identificationInfo.d.ts.map +1 -1
  115. package/lib/typescript/src/Translation/Resources/en.d.ts +41 -1
  116. package/lib/typescript/src/Translation/Resources/en.d.ts.map +1 -1
  117. package/lib/typescript/src/Translation/Resources/tr.d.ts +41 -1
  118. package/lib/typescript/src/Translation/Resources/tr.d.ts.map +1 -1
  119. package/lib/typescript/src/Trustchex.d.ts.map +1 -1
  120. package/lib/typescript/src/version.d.ts +1 -1
  121. package/package.json +7 -4
  122. package/src/Screens/Debug/NFCScanTestScreen.tsx +692 -0
  123. package/src/Screens/Dynamic/ContractAcceptanceScreen.tsx +1 -4
  124. package/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.tsx +21 -4
  125. package/src/Screens/Dynamic/LivenessDetectionScreen.tsx +165 -24
  126. package/src/Screens/Dynamic/VerbalConsentScreen.tsx +1401 -0
  127. package/src/Screens/Dynamic/VideoCallScreen.tsx +11 -20
  128. package/src/Screens/Static/ResultScreen.tsx +187 -31
  129. package/src/Screens/Static/VerificationSessionCheckScreen.tsx +9 -0
  130. package/src/Shared/Animations/recording.json +1 -0
  131. package/src/Shared/Components/DebugNavigationPanel.tsx +73 -48
  132. package/src/Shared/Components/EIDScanner.tsx +280 -119
  133. package/src/Shared/Components/FaceCamera.tsx +19 -16
  134. package/src/Shared/Components/IdentityDocumentCamera.flows.ts +7 -4
  135. package/src/Shared/Components/IdentityDocumentCamera.tsx +206 -191
  136. package/src/Shared/Components/IdentityDocumentCamera.utils.ts +13 -4
  137. package/src/Shared/Components/NavigationManager.tsx +27 -18
  138. package/src/Shared/EIDReader/aesSecureMessagingWrapper.ts +69 -0
  139. package/src/Shared/EIDReader/apduLevelPACECapable.ts +34 -0
  140. package/src/Shared/EIDReader/bacKey.ts +24 -8
  141. package/src/Shared/EIDReader/eidReader.ts +398 -12
  142. package/src/Shared/EIDReader/eidService.ts +49 -1
  143. package/src/Shared/EIDReader/nfcManagerCardService.ts +4 -6
  144. package/src/Shared/EIDReader/paceInfo.ts +159 -0
  145. package/src/Shared/EIDReader/paceKeySpec.ts +56 -0
  146. package/src/Shared/EIDReader/protocol/paceAPDUSender.ts +163 -0
  147. package/src/Shared/EIDReader/protocol/paceProtocol.ts +946 -0
  148. package/src/Shared/EIDReader/protocol/paceResult.ts +62 -0
  149. package/src/Shared/EIDReader/secureMessagingWrapper.ts +28 -10
  150. package/src/Shared/EIDReader/smartcards/commandAPDU.ts +2 -1
  151. package/src/Shared/EIDReader/tlv/tlv.helpers.ts +1 -1
  152. package/src/Shared/EIDReader/tlv/tlv.utils.ts +8 -5
  153. package/src/Shared/EIDReader/utils/aesCrypto.utils.ts +217 -0
  154. package/src/Shared/Libs/PERMISSIONS_MANAGER.md +268 -0
  155. package/src/Shared/Libs/analytics.utils.ts +4 -0
  156. package/src/Shared/Libs/contains.ts +0 -53
  157. package/src/Shared/Libs/country-display.utils.ts +55 -0
  158. package/src/Shared/Libs/crypto.utils.ts +2 -2
  159. package/src/Shared/Libs/demo.utils.ts +10 -0
  160. package/src/Shared/Libs/http-client.ts +12 -4
  161. package/src/Shared/Libs/index.ts +63 -0
  162. package/src/Shared/Libs/mrz.utils.ts +3 -2
  163. package/src/Shared/Libs/permissions.utils.ts +251 -0
  164. package/src/Shared/Libs/status-bar.utils.ts +4 -2
  165. package/src/Shared/Services/VideoSessionService.ts +1 -1
  166. package/src/Shared/Types/analytics.types.ts +2 -0
  167. package/src/Shared/Types/identificationInfo.ts +11 -0
  168. package/src/Translation/Resources/en.ts +64 -3
  169. package/src/Translation/Resources/tr.ts +63 -3
  170. package/src/Trustchex.tsx +53 -17
  171. 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 Kodu',
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 AppContext from './Shared/Contexts/AppContext';
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
- const contextValue = useMemo(
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
- baseUrl,
113
- locale,
114
- branding,
115
- sessionId,
116
- propLocale,
117
- onCompleted,
118
- onError,
119
- isDemoSession,
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
@@ -1,3 +1,3 @@
1
1
  // This file is auto-generated. Do not edit manually.
2
2
  // Version is synced from package.json during build.
3
- export const SDK_VERSION = '1.409.0';
3
+ export const SDK_VERSION = '1.472.0';