@bifold/core 2.4.6 → 2.6.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 (461) hide show
  1. package/lib/commonjs/components/listItems/ContactCredentialListItem.js +9 -8
  2. package/lib/commonjs/components/listItems/ContactCredentialListItem.js.map +1 -1
  3. package/lib/commonjs/components/misc/CredentialCard11Logo.js +8 -7
  4. package/lib/commonjs/components/misc/CredentialCard11Logo.js.map +1 -1
  5. package/lib/commonjs/components/misc/PINHeader.js +5 -3
  6. package/lib/commonjs/components/misc/PINHeader.js.map +1 -1
  7. package/lib/commonjs/contexts/network.js +10 -9
  8. package/lib/commonjs/contexts/network.js.map +1 -1
  9. package/lib/commonjs/contexts/reducers/store.js +3 -2
  10. package/lib/commonjs/contexts/reducers/store.js.map +1 -1
  11. package/lib/commonjs/contexts/theme.js +7 -6
  12. package/lib/commonjs/contexts/theme.js.map +1 -1
  13. package/lib/commonjs/index.js +127 -104
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/modules/openid/components/CredentialRowCard.js +9 -7
  16. package/lib/commonjs/modules/openid/components/CredentialRowCard.js.map +1 -1
  17. package/lib/commonjs/modules/openid/context/OpenIDCredentialRecordProvider.js +9 -8
  18. package/lib/commonjs/modules/openid/context/OpenIDCredentialRecordProvider.js.map +1 -1
  19. package/lib/commonjs/screens/AttemptLockout.js +27 -35
  20. package/lib/commonjs/screens/AttemptLockout.js.map +1 -1
  21. package/lib/commonjs/screens/ConfigureMediator.js +22 -21
  22. package/lib/commonjs/screens/ConfigureMediator.js.map +1 -1
  23. package/lib/commonjs/screens/JSONDetails.js +16 -15
  24. package/lib/commonjs/screens/JSONDetails.js.map +1 -1
  25. package/lib/commonjs/screens/MobileVerifierLoading.js +4 -3
  26. package/lib/commonjs/screens/MobileVerifierLoading.js.map +1 -1
  27. package/lib/commonjs/screens/PINCreate.js +3 -10
  28. package/lib/commonjs/screens/PINCreate.js.map +1 -1
  29. package/lib/commonjs/screens/WhatAreContacts.js +3 -2
  30. package/lib/commonjs/screens/WhatAreContacts.js.map +1 -1
  31. package/lib/commonjs/services/logger.js +35 -27
  32. package/lib/commonjs/services/logger.js.map +1 -1
  33. package/lib/module/components/listItems/ContactCredentialListItem.js +3 -3
  34. package/lib/module/components/listItems/ContactCredentialListItem.js.map +1 -1
  35. package/lib/module/components/misc/CredentialCard11Logo.js +5 -4
  36. package/lib/module/components/misc/CredentialCard11Logo.js.map +1 -1
  37. package/lib/module/components/misc/PINHeader.js +2 -1
  38. package/lib/module/components/misc/PINHeader.js.map +1 -1
  39. package/lib/module/contexts/network.js +3 -3
  40. package/lib/module/contexts/network.js.map +1 -1
  41. package/lib/module/contexts/reducers/store.js +3 -2
  42. package/lib/module/contexts/reducers/store.js.map +1 -1
  43. package/lib/module/contexts/theme.js +2 -2
  44. package/lib/module/contexts/theme.js.map +1 -1
  45. package/lib/module/index.js +43 -45
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/modules/openid/components/CredentialRowCard.js +2 -1
  48. package/lib/module/modules/openid/components/CredentialRowCard.js.map +1 -1
  49. package/lib/module/modules/openid/context/OpenIDCredentialRecordProvider.js +5 -5
  50. package/lib/module/modules/openid/context/OpenIDCredentialRecordProvider.js.map +1 -1
  51. package/lib/module/screens/AttemptLockout.js +28 -36
  52. package/lib/module/screens/AttemptLockout.js.map +1 -1
  53. package/lib/module/screens/ConfigureMediator.js +10 -10
  54. package/lib/module/screens/ConfigureMediator.js.map +1 -1
  55. package/lib/module/screens/JSONDetails.js +9 -8
  56. package/lib/module/screens/JSONDetails.js.map +1 -1
  57. package/lib/module/screens/MobileVerifierLoading.js +4 -3
  58. package/lib/module/screens/MobileVerifierLoading.js.map +1 -1
  59. package/lib/module/screens/PINCreate.js +3 -10
  60. package/lib/module/screens/PINCreate.js.map +1 -1
  61. package/lib/module/screens/WhatAreContacts.js +3 -2
  62. package/lib/module/screens/WhatAreContacts.js.map +1 -1
  63. package/lib/module/services/logger.js +37 -28
  64. package/lib/module/services/logger.js.map +1 -1
  65. package/lib/typescript/src/components/listItems/ContactCredentialListItem.d.ts +2 -1
  66. package/lib/typescript/src/components/listItems/ContactCredentialListItem.d.ts.map +1 -1
  67. package/lib/typescript/src/components/misc/CredentialCard11Logo.d.ts +1 -0
  68. package/lib/typescript/src/components/misc/CredentialCard11Logo.d.ts.map +1 -1
  69. package/lib/typescript/src/components/misc/PINHeader.d.ts +2 -1
  70. package/lib/typescript/src/components/misc/PINHeader.d.ts.map +1 -1
  71. package/lib/typescript/src/contexts/network.d.ts +3 -3
  72. package/lib/typescript/src/contexts/network.d.ts.map +1 -1
  73. package/lib/typescript/src/contexts/reducers/store.d.ts.map +1 -1
  74. package/lib/typescript/src/contexts/theme.d.ts +2 -1
  75. package/lib/typescript/src/contexts/theme.d.ts.map +1 -1
  76. package/lib/typescript/src/index.d.ts +58 -61
  77. package/lib/typescript/src/index.d.ts.map +1 -1
  78. package/lib/typescript/src/modules/openid/components/CredentialRowCard.d.ts +2 -1
  79. package/lib/typescript/src/modules/openid/components/CredentialRowCard.d.ts.map +1 -1
  80. package/lib/typescript/src/modules/openid/context/OpenIDCredentialRecordProvider.d.ts +3 -3
  81. package/lib/typescript/src/modules/openid/context/OpenIDCredentialRecordProvider.d.ts.map +1 -1
  82. package/lib/typescript/src/screens/AttemptLockout.d.ts.map +1 -1
  83. package/lib/typescript/src/screens/ConfigureMediator.d.ts +2 -1
  84. package/lib/typescript/src/screens/ConfigureMediator.d.ts.map +1 -1
  85. package/lib/typescript/src/screens/JSONDetails.d.ts +2 -1
  86. package/lib/typescript/src/screens/JSONDetails.d.ts.map +1 -1
  87. package/lib/typescript/src/screens/MobileVerifierLoading.d.ts.map +1 -1
  88. package/lib/typescript/src/screens/PINCreate.d.ts.map +1 -1
  89. package/lib/typescript/src/screens/WhatAreContacts.d.ts.map +1 -1
  90. package/lib/typescript/src/services/logger.d.ts +7 -8
  91. package/lib/typescript/src/services/logger.d.ts.map +1 -1
  92. package/package.json +5 -6
  93. package/src/App.tsx +0 -79
  94. package/src/animated-components.ts +0 -30
  95. package/src/assets/fonts/MaterialIcons.ttf +0 -0
  96. package/src/assets/icons/code.svg +0 -4
  97. package/src/assets/icons/large-arrow.svg +0 -5
  98. package/src/assets/icons/pencil.svg +0 -15
  99. package/src/assets/icons/trash.svg +0 -31
  100. package/src/assets/img/Artwork_1024x1024.png +0 -0
  101. package/src/assets/img/HistoryCardAcceptedIcon.svg +0 -4
  102. package/src/assets/img/HistoryCardExpiredIcon.svg +0 -4
  103. package/src/assets/img/HistoryCardRevokedIcon.svg +0 -4
  104. package/src/assets/img/HistoryInformationSentIcon.svg +0 -4
  105. package/src/assets/img/HistoryPinUpdatedIcon.svg +0 -4
  106. package/src/assets/img/IconChevronRight.svg +0 -5
  107. package/src/assets/img/activity-indicator-circle.svg +0 -90
  108. package/src/assets/img/app-lockout.svg +0 -1
  109. package/src/assets/img/biometrics.svg +0 -74
  110. package/src/assets/img/chat-loading.svg +0 -1
  111. package/src/assets/img/check-in-circle.svg +0 -18
  112. package/src/assets/img/connection-pending.svg +0 -112
  113. package/src/assets/img/contact-book.svg +0 -21
  114. package/src/assets/img/credential-card.svg +0 -18
  115. package/src/assets/img/credential-declined.svg +0 -28
  116. package/src/assets/img/credential-in-hand.svg +0 -48
  117. package/src/assets/img/credential-list.svg +0 -60
  118. package/src/assets/img/credential-pending.svg +0 -96
  119. package/src/assets/img/credential-success.svg +0 -48
  120. package/src/assets/img/delete-notification.svg +0 -1
  121. package/src/assets/img/empty-wallet.svg +0 -23
  122. package/src/assets/img/error-filled.svg +0 -12
  123. package/src/assets/img/exclamation-mark.svg +0 -17
  124. package/src/assets/img/home-center-img.svg +0 -71
  125. package/src/assets/img/icon-credential-offer-dark.svg +0 -7
  126. package/src/assets/img/icon-credential-offer-light.svg +0 -7
  127. package/src/assets/img/icon-info-recieved-dark.svg +0 -8
  128. package/src/assets/img/icon-info-recieved-light.svg +0 -8
  129. package/src/assets/img/icon-info-sent-dark.svg +0 -8
  130. package/src/assets/img/icon-info-sent-light.svg +0 -8
  131. package/src/assets/img/icon-proof-request-dark.svg +0 -11
  132. package/src/assets/img/icon-proof-request-light.svg +0 -11
  133. package/src/assets/img/information-received.svg +0 -1
  134. package/src/assets/img/logo-large.png +0 -0
  135. package/src/assets/img/logo-large@2x.png +0 -0
  136. package/src/assets/img/logo-large@3x.png +0 -0
  137. package/src/assets/img/logo.svg +0 -15
  138. package/src/assets/img/message-text-icon-outline.svg +0 -1
  139. package/src/assets/img/message-text-icon.svg +0 -1
  140. package/src/assets/img/no_information_shared.svg +0 -36
  141. package/src/assets/img/preface.svg +0 -15
  142. package/src/assets/img/proof-declined.svg +0 -66
  143. package/src/assets/img/proof-pending.svg +0 -61
  144. package/src/assets/img/proof-success.svg +0 -72
  145. package/src/assets/img/push-notifications.svg +0 -1
  146. package/src/assets/img/qrcode-scan-icon.svg +0 -1
  147. package/src/assets/img/scan-share.svg +0 -102
  148. package/src/assets/img/secure-check.svg +0 -4
  149. package/src/assets/img/secure-image.svg +0 -64
  150. package/src/assets/img/update-available.svg +0 -26
  151. package/src/assets/img/verifier-request-declined.svg +0 -34
  152. package/src/assets/img/wallet-back.svg +0 -20
  153. package/src/assets/img/wallet-front.svg +0 -32
  154. package/src/assets/img/wallet-icon-outline.svg +0 -1
  155. package/src/assets/img/wallet-icon.svg +0 -1
  156. package/src/assets/img/wallet.svg +0 -43
  157. package/src/assets/oca-bundles.json +0 -174
  158. package/src/components/animated/ButtonLoading.tsx +0 -32
  159. package/src/components/animated/ConnectionLoading.tsx +0 -53
  160. package/src/components/animated/CredentialAdded.tsx +0 -72
  161. package/src/components/animated/CredentialPending.tsx +0 -63
  162. package/src/components/animated/LoadingIndicator.tsx +0 -49
  163. package/src/components/animated/PresentationLoading.tsx +0 -52
  164. package/src/components/animated/RecordLoading.tsx +0 -75
  165. package/src/components/animated/SendingProof.tsx +0 -53
  166. package/src/components/animated/SentProof.tsx +0 -72
  167. package/src/components/buttons/Button-api.tsx +0 -46
  168. package/src/components/buttons/Button.tsx +0 -125
  169. package/src/components/buttons/HeaderHome.tsx +0 -25
  170. package/src/components/buttons/IconButton.tsx +0 -93
  171. package/src/components/buttons/InfoIcon.tsx +0 -35
  172. package/src/components/buttons/SettingsMenu.tsx +0 -26
  173. package/src/components/buttons/ToggleButton.tsx +0 -93
  174. package/src/components/buttons/index.ts +0 -4
  175. package/src/components/chat/ActionSlider.tsx +0 -104
  176. package/src/components/chat/ChatActions.tsx +0 -33
  177. package/src/components/chat/ChatBubble.tsx +0 -20
  178. package/src/components/chat/ChatEvent.tsx +0 -31
  179. package/src/components/chat/ChatMessage.tsx +0 -142
  180. package/src/components/chat/MessageInput.tsx +0 -46
  181. package/src/components/chat/index.ts +0 -4
  182. package/src/components/forms/WalletNameForm.tsx +0 -148
  183. package/src/components/index.ts +0 -4
  184. package/src/components/inputs/BiometryControl.tsx +0 -190
  185. package/src/components/inputs/BulletPoint.tsx +0 -32
  186. package/src/components/inputs/CheckBoxRow.tsx +0 -67
  187. package/src/components/inputs/InlineErrorText.tsx +0 -60
  188. package/src/components/inputs/LimitedTextInput.tsx +0 -71
  189. package/src/components/inputs/PINInput.tsx +0 -175
  190. package/src/components/inputs/SingleSelectBlock.tsx +0 -53
  191. package/src/components/listItems/ContactCredentialListItem.tsx +0 -79
  192. package/src/components/listItems/ContactListItem.tsx +0 -121
  193. package/src/components/listItems/NotificationListItem.tsx +0 -514
  194. package/src/components/misc/AvatarView.tsx +0 -33
  195. package/src/components/misc/CardWatermark.tsx +0 -52
  196. package/src/components/misc/ConnectionAlert.tsx +0 -123
  197. package/src/components/misc/ConnectionImage.tsx +0 -45
  198. package/src/components/misc/ContentGradient.tsx +0 -40
  199. package/src/components/misc/CredentialCard.tsx +0 -161
  200. package/src/components/misc/CredentialCard10.tsx +0 -329
  201. package/src/components/misc/CredentialCard11.tsx +0 -701
  202. package/src/components/misc/CredentialCard11ActionFooter.tsx +0 -55
  203. package/src/components/misc/CredentialCard11Issuer.tsx +0 -74
  204. package/src/components/misc/CredentialCard11Logo.tsx +0 -61
  205. package/src/components/misc/EmptyList.tsx +0 -27
  206. package/src/components/misc/EmptyListContacts.tsx +0 -55
  207. package/src/components/misc/ErrorBoundary.tsx +0 -200
  208. package/src/components/misc/FauxHeader.tsx +0 -75
  209. package/src/components/misc/InfoBox.tsx +0 -283
  210. package/src/components/misc/NoNewUpdates.tsx +0 -38
  211. package/src/components/misc/PINHeader.tsx +0 -25
  212. package/src/components/misc/PINValidationHelper.tsx +0 -48
  213. package/src/components/misc/Pagination.tsx +0 -114
  214. package/src/components/misc/QRRenderer.tsx +0 -53
  215. package/src/components/misc/QRScanner.tsx +0 -395
  216. package/src/components/misc/QRScannerTorch.tsx +0 -74
  217. package/src/components/misc/ScanCamera.tsx +0 -86
  218. package/src/components/misc/ScanTab.tsx +0 -45
  219. package/src/components/misc/SharedProofData.tsx +0 -98
  220. package/src/components/misc/UnorderedList.tsx +0 -28
  221. package/src/components/misc/VerifierCredentialCard.tsx +0 -378
  222. package/src/components/misc/index.ts +0 -2
  223. package/src/components/modals/AlertModal.tsx +0 -42
  224. package/src/components/modals/AppGuideModal.tsx +0 -142
  225. package/src/components/modals/CameraDisclosureModal.tsx +0 -126
  226. package/src/components/modals/CommonRemoveModal.tsx +0 -337
  227. package/src/components/modals/DeveloperModal.tsx +0 -32
  228. package/src/components/modals/DismissiblePopupModal.tsx +0 -169
  229. package/src/components/modals/ErrorModal.tsx +0 -107
  230. package/src/components/modals/ImageModal.tsx +0 -80
  231. package/src/components/modals/NetInfoModal.tsx +0 -35
  232. package/src/components/modals/PopupModal.tsx +0 -56
  233. package/src/components/modals/ProofCancelModal.tsx +0 -79
  234. package/src/components/modals/SafeAreaModal.tsx +0 -17
  235. package/src/components/record/Record.tsx +0 -100
  236. package/src/components/record/RecordBinaryField.tsx +0 -55
  237. package/src/components/record/RecordDateIntField.tsx +0 -63
  238. package/src/components/record/RecordField.tsx +0 -154
  239. package/src/components/record/RecordFooter.tsx +0 -17
  240. package/src/components/record/RecordHeader.tsx +0 -17
  241. package/src/components/record/RecordRemove.tsx +0 -66
  242. package/src/components/texts/HeaderTitle.tsx +0 -25
  243. package/src/components/texts/HighlightTextBox.tsx +0 -41
  244. package/src/components/texts/InfoTextBox.tsx +0 -129
  245. package/src/components/texts/Link.tsx +0 -41
  246. package/src/components/texts/Text.tsx +0 -21
  247. package/src/components/texts/ThemedText.tsx +0 -24
  248. package/src/components/toast/BaseToast.tsx +0 -128
  249. package/src/components/toast/ToastConfig.tsx +0 -21
  250. package/src/components/tour/AttachTourStep.tsx +0 -73
  251. package/src/components/tour/CredentialOfferTourSteps.tsx +0 -41
  252. package/src/components/tour/CredentialsTourSteps.tsx +0 -41
  253. package/src/components/tour/HomeTourSteps.tsx +0 -104
  254. package/src/components/tour/ProofRequestTourSteps.tsx +0 -41
  255. package/src/components/tour/SpotCutout.tsx +0 -65
  256. package/src/components/tour/TourBox.tsx +0 -255
  257. package/src/components/tour/TourOverlay.tsx +0 -134
  258. package/src/components/views/Banner.tsx +0 -181
  259. package/src/components/views/CredentialCardLogo.tsx +0 -77
  260. package/src/components/views/CredentialDetailPrimaryHeader.tsx +0 -107
  261. package/src/components/views/CredentialDetailSecondaryHeader.tsx +0 -60
  262. package/src/components/views/HeaderWithBanner.tsx +0 -17
  263. package/src/components/views/HomeFooterView.tsx +0 -110
  264. package/src/components/views/HomeHeaderView.tsx +0 -12
  265. package/src/components/views/KeyboardView.tsx +0 -41
  266. package/src/components/views/LoadingPlaceholder.tsx +0 -168
  267. package/src/components/views/LoadingView.tsx +0 -29
  268. package/src/components/views/ProgressBar.tsx +0 -53
  269. package/src/components/views/PushNotificationsContent.tsx +0 -51
  270. package/src/components/views/PushNotificationsDisabledContent.tsx +0 -47
  271. package/src/configs/ledgers/indy/index.ts +0 -8
  272. package/src/configs/ledgers/indy/ledgers.json +0 -51
  273. package/src/constants.ts +0 -107
  274. package/src/container-api.ts +0 -247
  275. package/src/container-impl.ts +0 -243
  276. package/src/contexts/activity.tsx +0 -145
  277. package/src/contexts/animated-components.ts +0 -9
  278. package/src/contexts/auth.tsx +0 -240
  279. package/src/contexts/index.ts +0 -3
  280. package/src/contexts/navigation.tsx +0 -19
  281. package/src/contexts/network.tsx +0 -125
  282. package/src/contexts/reducers/index.ts +0 -3
  283. package/src/contexts/reducers/store.ts +0 -754
  284. package/src/contexts/store.tsx +0 -103
  285. package/src/contexts/theme.tsx +0 -51
  286. package/src/contexts/tour/tour-context.tsx +0 -160
  287. package/src/contexts/tour/tour-provider.tsx +0 -160
  288. package/src/hooks/bundle-resolver.ts +0 -95
  289. package/src/hooks/chat-messages.tsx +0 -263
  290. package/src/hooks/connections.ts +0 -37
  291. package/src/hooks/credential-card-styles.ts +0 -144
  292. package/src/hooks/credentials.ts +0 -11
  293. package/src/hooks/deep-links.ts +0 -49
  294. package/src/hooks/developer-mode.ts +0 -25
  295. package/src/hooks/lockout.ts +0 -77
  296. package/src/hooks/notifications.ts +0 -108
  297. package/src/hooks/oob.ts +0 -17
  298. package/src/hooks/proof-request-templates.ts +0 -40
  299. package/src/hooks/proofs.ts +0 -32
  300. package/src/hooks/screen-capture.ts +0 -52
  301. package/src/hooks/useBifoldAgentSetup.ts +0 -169
  302. package/src/hooks/useOnboardingState.ts +0 -53
  303. package/src/hooks/usePINValidation.ts +0 -98
  304. package/src/index.ts +0 -239
  305. package/src/layout/ScreenLayout.tsx +0 -53
  306. package/src/localization/en/en.json +0 -951
  307. package/src/localization/en/index.ts +0 -3
  308. package/src/localization/fr/fr.json +0 -933
  309. package/src/localization/fr/index.ts +0 -3
  310. package/src/localization/index.ts +0 -66
  311. package/src/localization/pt-br/index.ts +0 -3
  312. package/src/localization/pt-br/pt-br.json +0 -911
  313. package/src/modules/history/context/historyManager.tsx +0 -247
  314. package/src/modules/history/index.ts +0 -2
  315. package/src/modules/history/navigation/HistoryStack.tsx +0 -29
  316. package/src/modules/history/services/queue.service.tsx +0 -31
  317. package/src/modules/history/types/index.ts +0 -92
  318. package/src/modules/history/ui/HistoryPage.tsx +0 -133
  319. package/src/modules/history/ui/HistorySettings.tsx +0 -183
  320. package/src/modules/history/ui/assets/img/HistoryCardAcceptedIcon.svg +0 -4
  321. package/src/modules/history/ui/assets/img/HistoryCardExpiredIcon.svg +0 -4
  322. package/src/modules/history/ui/assets/img/HistoryCardRevokedIcon.svg +0 -4
  323. package/src/modules/history/ui/assets/img/HistoryInformationSentIcon.svg +0 -4
  324. package/src/modules/history/ui/assets/img/HistoryPinUpdatedIcon.svg +0 -4
  325. package/src/modules/history/ui/assets/img/IconChevronRight.svg +0 -3
  326. package/src/modules/history/ui/components/BulletPoint.tsx +0 -49
  327. package/src/modules/history/ui/components/HistoryListItem.tsx +0 -251
  328. package/src/modules/history/ui/components/HistoryMenu.tsx +0 -25
  329. package/src/modules/history/ui/components/SingleSelectBlock.tsx +0 -72
  330. package/src/modules/openid/components/CredentialRowCard.tsx +0 -64
  331. package/src/modules/openid/components/OpenIDCredentialCard.tsx +0 -276
  332. package/src/modules/openid/context/OpenIDCredentialRecordProvider.tsx +0 -296
  333. package/src/modules/openid/display.tsx +0 -467
  334. package/src/modules/openid/displayProof.tsx +0 -86
  335. package/src/modules/openid/hooks/openid.tsx +0 -111
  336. package/src/modules/openid/metadata.tsx +0 -59
  337. package/src/modules/openid/offerResolve.tsx +0 -281
  338. package/src/modules/openid/resolverProof.tsx +0 -286
  339. package/src/modules/openid/screens/OpenIDCredentialDetails.tsx +0 -214
  340. package/src/modules/openid/screens/OpenIDCredentialOffer.tsx +0 -192
  341. package/src/modules/openid/screens/OpenIDProofChangeCredential.tsx +0 -133
  342. package/src/modules/openid/screens/OpenIDProofPresentation.tsx +0 -423
  343. package/src/modules/openid/types.tsx +0 -111
  344. package/src/modules/openid/utils/utils.tsx +0 -119
  345. package/src/navigators/ConnectStack.tsx +0 -68
  346. package/src/navigators/ContactStack.tsx +0 -91
  347. package/src/navigators/CredentialStack.tsx +0 -48
  348. package/src/navigators/DeliveryStack.tsx +0 -76
  349. package/src/navigators/HomeStack.tsx +0 -37
  350. package/src/navigators/MainStack.tsx +0 -146
  351. package/src/navigators/NotificationStack.tsx +0 -56
  352. package/src/navigators/OnboardingScreens.ts +0 -142
  353. package/src/navigators/OnboardingStack.tsx +0 -205
  354. package/src/navigators/ProofRequestStack.tsx +0 -113
  355. package/src/navigators/RootStack.tsx +0 -71
  356. package/src/navigators/SettingStack.tsx +0 -174
  357. package/src/navigators/TabStack.tsx +0 -304
  358. package/src/navigators/defaultLayoutOptions.tsx +0 -17
  359. package/src/navigators/defaultStackOptions.tsx +0 -102
  360. package/src/navigators/index.ts +0 -27
  361. package/src/onboarding.ts +0 -90
  362. package/src/screens/AttemptLockout.tsx +0 -153
  363. package/src/screens/AutoLock.tsx +0 -140
  364. package/src/screens/Biometry.tsx +0 -54
  365. package/src/screens/Chat.tsx +0 -141
  366. package/src/screens/ConfigureMediator.tsx +0 -160
  367. package/src/screens/Connection.tsx +0 -394
  368. package/src/screens/ContactDetails.tsx +0 -350
  369. package/src/screens/CredentialDetails.tsx +0 -473
  370. package/src/screens/CredentialOffer.tsx +0 -334
  371. package/src/screens/CredentialOfferAccept.tsx +0 -189
  372. package/src/screens/DataRetention.tsx +0 -91
  373. package/src/screens/Developer.tsx +0 -289
  374. package/src/screens/Home.tsx +0 -173
  375. package/src/screens/JSONDetails.tsx +0 -104
  376. package/src/screens/Language.tsx +0 -97
  377. package/src/screens/ListContacts.tsx +0 -112
  378. package/src/screens/ListCredentials.tsx +0 -135
  379. package/src/screens/ListProofRequests.tsx +0 -148
  380. package/src/screens/MobileVerifierLoading.tsx +0 -106
  381. package/src/screens/NameWallet.tsx +0 -9
  382. package/src/screens/Onboarding.tsx +0 -162
  383. package/src/screens/OnboardingPages.tsx +0 -160
  384. package/src/screens/PINChange.tsx +0 -249
  385. package/src/screens/PINCreate.tsx +0 -185
  386. package/src/screens/PINEnter.tsx +0 -432
  387. package/src/screens/PINExplainer.tsx +0 -85
  388. package/src/screens/PINVerify.tsx +0 -195
  389. package/src/screens/PasteUrl.tsx +0 -140
  390. package/src/screens/Preface.tsx +0 -78
  391. package/src/screens/ProofChangeCredential.tsx +0 -179
  392. package/src/screens/ProofDetails.tsx +0 -348
  393. package/src/screens/ProofRequest.tsx +0 -999
  394. package/src/screens/ProofRequestAccept.tsx +0 -133
  395. package/src/screens/ProofRequestDetails.tsx +0 -270
  396. package/src/screens/ProofRequestUsageHistory.tsx +0 -152
  397. package/src/screens/ProofRequesting.tsx +0 -245
  398. package/src/screens/PushNotifications.tsx +0 -59
  399. package/src/screens/RenameContact.tsx +0 -155
  400. package/src/screens/RenameWallet.tsx +0 -26
  401. package/src/screens/Scan.tsx +0 -145
  402. package/src/screens/ScanHelp.tsx +0 -48
  403. package/src/screens/Settings.tsx +0 -415
  404. package/src/screens/Splash.tsx +0 -80
  405. package/src/screens/Terms.tsx +0 -127
  406. package/src/screens/ToggleBiometry.tsx +0 -153
  407. package/src/screens/TogglePushNotifications.tsx +0 -118
  408. package/src/screens/Tours.tsx +0 -93
  409. package/src/screens/UpdateAvailable.tsx +0 -119
  410. package/src/screens/WhatAreContacts.tsx +0 -71
  411. package/src/services/bifoldLogger.ts +0 -3
  412. package/src/services/keychain.ts +0 -184
  413. package/src/services/logger.ts +0 -89
  414. package/src/services/storage.ts +0 -136
  415. package/src/theme-builder.ts +0 -157
  416. package/src/theme.interface.ts +0 -580
  417. package/src/theme.ts +0 -1346
  418. package/src/types/attempt-lockout-config.ts +0 -8
  419. package/src/types/attestation.ts +0 -17
  420. package/src/types/chat.ts +0 -4
  421. package/src/types/config.ts +0 -64
  422. package/src/types/contact-details.ts +0 -5
  423. package/src/types/credential-list-footer.ts +0 -3
  424. package/src/types/credential-status.ts +0 -3
  425. package/src/types/credentials.ts +0 -7
  426. package/src/types/decline.ts +0 -5
  427. package/src/types/error.ts +0 -40
  428. package/src/types/fn.ts +0 -2
  429. package/src/types/genesis.ts +0 -35
  430. package/src/types/index.ts +0 -2
  431. package/src/types/metadata.ts +0 -16
  432. package/src/types/navigators.ts +0 -239
  433. package/src/types/notification.ts +0 -24
  434. package/src/types/permissions.ts +0 -2
  435. package/src/types/proof-items.ts +0 -32
  436. package/src/types/react-i18next.d.ts +0 -10
  437. package/src/types/remove.ts +0 -8
  438. package/src/types/security.ts +0 -32
  439. package/src/types/settings.ts +0 -28
  440. package/src/types/state.ts +0 -97
  441. package/src/types/tour.ts +0 -20
  442. package/src/types/version-check.ts +0 -18
  443. package/src/utils/PINValidation.ts +0 -98
  444. package/src/utils/agent.ts +0 -128
  445. package/src/utils/anonCredsProofRequestMapper.ts +0 -205
  446. package/src/utils/contacts.ts +0 -59
  447. package/src/utils/cred-def.ts +0 -33
  448. package/src/utils/credential.ts +0 -37
  449. package/src/utils/crypto.ts +0 -12
  450. package/src/utils/fileCache.ts +0 -152
  451. package/src/utils/helpers.ts +0 -1292
  452. package/src/utils/ledger.ts +0 -212
  453. package/src/utils/luminance.ts +0 -40
  454. package/src/utils/mediatorhelpers.ts +0 -71
  455. package/src/utils/migration.ts +0 -40
  456. package/src/utils/network.tsx +0 -55
  457. package/src/utils/oca.ts +0 -173
  458. package/src/utils/parsers.tsx +0 -111
  459. package/src/utils/proofBundle.ts +0 -220
  460. package/src/utils/schema.ts +0 -28
  461. package/src/utils/testable.ts +0 -17
@@ -1,701 +0,0 @@
1
- import { CredentialExchangeRecord } from '@credo-ts/core'
2
- import { BrandingOverlay } from '@bifold/oca'
3
- import { Attribute, BrandingOverlayType, CredentialOverlay, Field, Predicate } from '@bifold/oca/build/legacy'
4
- import { useNavigation } from '@react-navigation/native'
5
- import startCase from 'lodash.startcase'
6
- import React, { useCallback, useEffect, useMemo, useState } from 'react'
7
- import { useTranslation } from 'react-i18next'
8
- import { FlatList, Image, ImageBackground, Linking, View, ViewStyle, TouchableOpacity, ColorValue } from 'react-native'
9
- import Icon from 'react-native-vector-icons/MaterialIcons'
10
-
11
- import { TOKENS, useServices } from '../../container-api'
12
- import { useTheme } from '../../contexts/theme'
13
- import { GenericFn } from '../../types/fn'
14
- import { credentialTextColor, getCredentialIdentifiers, toImageSource } from '../../utils/credential'
15
- import {
16
- formatIfDate,
17
- useCredentialConnectionLabel,
18
- isDataUrl,
19
- pTypeToText,
20
- getSecondaryBackgroundColor,
21
- } from '../../utils/helpers'
22
- import { shadeIsLightOrDark, Shade } from '../../utils/luminance'
23
- import { testIdWithKey } from '../../utils/testable'
24
-
25
- import CardWatermark from './CardWatermark'
26
- import CredentialActionFooter from './CredentialCard11ActionFooter'
27
- import CredentialCard11Logo from './CredentialCard11Logo'
28
- import useCredentialCardStyles from '../../hooks/credential-card-styles'
29
- import CredentialIssuerBody from './CredentialCard11Issuer'
30
- import { ThemedText } from '../texts/ThemedText'
31
-
32
- export enum CredentialErrors {
33
- Revoked, // Credential has been revoked
34
- NotInWallet, // Credential requested for proof does not exists in users wallet
35
- PredicateError, // Credential requested for proof contains a predicate match that is not satisfied
36
- }
37
-
38
- interface CredentialCard11Props {
39
- credential?: CredentialExchangeRecord
40
- onPress?: GenericFn
41
- style?: ViewStyle
42
- displayItems?: (Attribute | Predicate)[]
43
- elevated?: boolean
44
- credName?: string
45
- credDefId?: string
46
- schemaId?: string
47
- proof?: boolean
48
- credentialErrors: CredentialErrors[]
49
- hasAltCredentials?: boolean
50
- handleAltCredChange?: () => void
51
- brandingOverlay?: CredentialOverlay<BrandingOverlay>
52
- hideSlice?: boolean
53
- extraOverlayParameter?: Attribute | undefined
54
- brandingOverlayType?: BrandingOverlayType
55
- }
56
-
57
- /*
58
- A card is defined as a nx8 (height/rows x width/columns) grid.
59
- | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
60
- | 2 | | | | | | | |
61
- | 3 | | | | | | | |
62
- | 4 | | | | | | | |
63
- ...
64
-
65
- The card width is the full screen width.
66
-
67
- Secondary Body (1):
68
- Primary Body (2): Small Logo (1x1) -> L (shifted left by 50%)
69
- Issuer Name (1x6)
70
- Credential Name (1x6)
71
- Primary Attribute 1 (1x6)
72
- Primary Attribute 2 (1x6)
73
- Status (3): Icon (1x1) -> S
74
-
75
- (1) (2) (3)
76
- | L | Issuer Name | S |
77
- | | Credential Name | |
78
- | | | |
79
- | | Primary Attribute 1 | |
80
- | | Primary Attribute 2 | |
81
- ...
82
-
83
- Note: The small logo MUST be provided as 1x1 (height/width) ratio.
84
- */
85
-
86
- const CredentialCard11: React.FC<CredentialCard11Props> = ({
87
- credential,
88
- style = {},
89
- displayItems,
90
- onPress = undefined,
91
- elevated = false,
92
- credName,
93
- credDefId,
94
- schemaId,
95
- proof,
96
- hasAltCredentials,
97
- credentialErrors = [],
98
- handleAltCredChange,
99
- brandingOverlay,
100
- hideSlice = false,
101
- extraOverlayParameter,
102
- brandingOverlayType = BrandingOverlayType.Branding10,
103
- }) => {
104
- const [dimensions, setDimensions] = useState({ cardWidth: 0, cardHeight: 0 })
105
- const { i18n, t } = useTranslation()
106
- const { ColorPalette, ListItems } = useTheme()
107
- const [flaggedAttributes, setFlaggedAttributes] = useState<string[]>()
108
- const [allPI, setAllPI] = useState<boolean>()
109
- const credentialConnectionLabel = useCredentialConnectionLabel(credential)
110
- const [bundleResolver, credHelpActionOverrides] = useServices([
111
- TOKENS.UTIL_OCA_RESOLVER,
112
- TOKENS.CRED_HELP_ACTION_OVERRIDES,
113
- ])
114
- const isBranding11 = brandingOverlayType === BrandingOverlayType.Branding11
115
- const [helpAction, setHelpAction] = useState<GenericFn>()
116
- const [overlay, setOverlay] = useState<CredentialOverlay<BrandingOverlay>>({})
117
- const { styles, borderRadius, logoHeight } = useCredentialCardStyles(overlay, brandingOverlayType, proof)
118
- const attributeFormats: Record<string, string | undefined> = useMemo(() => {
119
- return (overlay.bundle as any)?.bundle.attributes
120
- .map((attr: any) => {
121
- return { name: attr.name, format: attr.format }
122
- })
123
- .reduce((prev: { [key: string]: string }, curr: { name: string; format?: string }) => {
124
- return { ...prev, [curr.name]: curr.format }
125
- }, {})
126
- }, [overlay])
127
-
128
- const logoText = useMemo(() => {
129
- if (isBranding11) {
130
- return overlay.metaOverlay?.issuer && overlay.metaOverlay?.issuer !== 'Unknown Contact'
131
- ? overlay.metaOverlay?.issuer
132
- : t('Contacts.UnknownContact')
133
- }
134
- return overlay.metaOverlay?.name ?? overlay.metaOverlay?.issuer ?? 'C'
135
- }, [overlay, isBranding11, t])
136
-
137
- const cardData: Field[] = useMemo(() => {
138
- const fields: Field[] = displayItems ?? []
139
- const primaryField = overlay?.presentationFields?.find(
140
- (field) => field.name === overlay?.brandingOverlay?.primaryAttribute
141
- )
142
- const secondaryField = overlay?.presentationFields?.find(
143
- (field) => field.name === overlay?.brandingOverlay?.secondaryAttribute
144
- )
145
-
146
- primaryField && fields.push(primaryField)
147
- secondaryField && fields.push(secondaryField)
148
-
149
- return fields
150
- }, [displayItems, overlay])
151
-
152
- const navigation = useNavigation()
153
-
154
- const fontColorWithHighContrast = () => {
155
- if (proof && brandingOverlayType === BrandingOverlayType.Branding10) {
156
- return ColorPalette.grayscale.mediumGrey
157
- }
158
-
159
- const c = overlay.brandingOverlay?.primaryBackgroundColor ?? ColorPalette.grayscale.lightGrey
160
- const shade = shadeIsLightOrDark(c)
161
- return shade == Shade.Light ? ColorPalette.grayscale.darkGrey : ColorPalette.grayscale.lightGrey
162
- }
163
-
164
- const parseAttribute = useCallback(
165
- (item: Attribute & Predicate) => {
166
- let parsedItem = item
167
- if (item && item.pValue != null) {
168
- parsedItem = pTypeToText(item, t, overlay.bundle?.captureBase.attributes) as Attribute & Predicate
169
- }
170
- const parsedValue = formatIfDate(
171
- attributeFormats?.[item.name ?? ''],
172
- parsedItem?.value ?? parsedItem?.pValue ?? null
173
- )
174
- return {
175
- label: item.label ?? item.name ?? '',
176
- value: item.value !== undefined && item.value != null ? parsedValue : `${parsedItem?.pType} ${parsedValue}`,
177
- }
178
- },
179
- [t, overlay, attributeFormats]
180
- )
181
-
182
- useEffect(() => {
183
- setAllPI(
184
- credential &&
185
- cardData.every((item) => {
186
- if (item === undefined) {
187
- return true
188
- } else if (item instanceof Attribute) {
189
- const { label } = parseAttribute(item as Attribute & Predicate)
190
- return flaggedAttributes?.includes(label)
191
- } else {
192
- // Predicates are not PII
193
- return false
194
- }
195
- })
196
- )
197
- }, [credential, cardData, parseAttribute, flaggedAttributes])
198
-
199
- useEffect(() => {
200
- if (brandingOverlay) {
201
- setOverlay(brandingOverlay as unknown as CredentialOverlay<BrandingOverlay>)
202
- return
203
- }
204
-
205
- const params = {
206
- identifiers: credential ? getCredentialIdentifiers(credential) : { schemaId, credentialDefinitionId: credDefId },
207
- attributes: proof ? [] : credential?.credentialAttributes,
208
- meta: {
209
- credName,
210
- credConnectionId: credential?.connectionId,
211
- alias: credentialConnectionLabel,
212
- },
213
- language: i18n.language,
214
- }
215
- bundleResolver.resolveAllBundles(params).then((bundle: any) => {
216
- if (proof) {
217
- setFlaggedAttributes((bundle as any).bundle.bundle.flaggedAttributes.map((attr: any) => attr.name))
218
- const issuerUrl =
219
- (bundle as any).bundle.bundle.metadata.issuerUrl[params.language] ??
220
- Object.values((bundle as any).bundle.bundle.metadata.issuerUrl)?.[0]
221
-
222
- // Check if there is a help action override for this credential
223
- const override = credHelpActionOverrides?.find(
224
- (override) =>
225
- (credDefId && override.credDefIds.includes(credDefId)) ||
226
- (schemaId && override.schemaIds.includes(schemaId))
227
- )
228
- if (override) {
229
- setHelpAction(() => () => {
230
- override.action(navigation)
231
- })
232
- } else if (issuerUrl) {
233
- setHelpAction(() => () => {
234
- Linking.openURL(issuerUrl)
235
- })
236
- }
237
- }
238
- setOverlay((o) => ({
239
- ...o,
240
- ...bundle,
241
- brandingOverlay: bundle.brandingOverlay as BrandingOverlay,
242
- }))
243
- })
244
- }, [
245
- credential,
246
- schemaId,
247
- credDefId,
248
- credName,
249
- credentialConnectionLabel,
250
- i18n.language,
251
- bundleResolver,
252
- proof,
253
- credHelpActionOverrides,
254
- navigation,
255
- brandingOverlay,
256
- ])
257
-
258
- const AttributeLabel: React.FC<{ label: string }> = ({ label }) => {
259
- const ylabel = overlay.bundle?.labelOverlay?.attributeLabels[label] ?? startCase(label)
260
- return (
261
- <ThemedText
262
- variant="labelSubtitle"
263
- style={[
264
- styles.textContainer,
265
- {
266
- lineHeight: 19,
267
- opacity: 0.8,
268
- },
269
- ]}
270
- testID={testIdWithKey('AttributeName')}
271
- >
272
- {ylabel}
273
- </ThemedText>
274
- )
275
- }
276
-
277
- const AttributeErrorLabel: React.FC<{ errorMessage: string }> = ({ errorMessage }) => {
278
- return (
279
- <View style={{ flexDirection: 'row', alignItems: 'center' }}>
280
- <Icon
281
- testID={testIdWithKey('AttributeErrorIcon')}
282
- style={{ paddingTop: 2, paddingHorizontal: 2 }}
283
- name="close"
284
- color={ListItems.proofError.color}
285
- size={ListItems.recordAttributeText.fontSize}
286
- />
287
- <ThemedText
288
- variant="labelSubtitle"
289
- testID={testIdWithKey('AttributeErrorText')}
290
- style={[
291
- styles.textContainer,
292
- {
293
- lineHeight: 19,
294
- opacity: 0.8,
295
- color: ListItems.proofError.color,
296
- },
297
- ]}
298
- >
299
- {errorMessage}
300
- </ThemedText>
301
- </View>
302
- )
303
- }
304
-
305
- const AttributeValue: React.FC<{ value: string | number | null; warn?: boolean }> = ({ value, warn }) => {
306
- return (
307
- <>
308
- {isDataUrl(value) ? (
309
- <Image style={styles.imageAttr} source={{ uri: value as string }} />
310
- ) : (
311
- <ThemedText
312
- variant="bold"
313
- style={[
314
- styles.textContainer,
315
- { color: warn ? ColorPalette.notification.warnText : styles.textContainer.color },
316
- ]}
317
- testID={testIdWithKey('AttributeValue')}
318
- >
319
- {value}
320
- </ThemedText>
321
- )}
322
- </>
323
- )
324
- }
325
-
326
- const renderCardAttribute = (item: Attribute & Predicate) => {
327
- const { label, value } = parseAttribute(item)
328
- const parsedValue = formatIfDate(item.format, value) ?? ''
329
- return (
330
- <View style={styles.cardAttributeContainer}>
331
- {/* Render attribute label */}
332
- <View style={{ flexDirection: 'row', alignItems: 'center' }}>
333
- {credentialErrors.includes(CredentialErrors.NotInWallet) && (
334
- <Icon
335
- testID={testIdWithKey('AttributeNameErrorIcon')}
336
- style={{ paddingTop: 2, paddingHorizontal: 2 }}
337
- name="close"
338
- color={ListItems.proofError.color}
339
- size={ListItems.recordAttributeText.fontSize}
340
- />
341
- )}
342
- <AttributeLabel label={label} />
343
- </View>
344
- {/* Render attribute value */}
345
- {!credentialErrors.includes(CredentialErrors.NotInWallet) && !item.hasError && (
346
- <View style={{ flexDirection: 'row', alignItems: 'center' }}>
347
- {flaggedAttributes?.includes(label) && !item.pValue && proof && (
348
- <Icon
349
- testID={testIdWithKey('AttributeNameWarningIcon')}
350
- style={{ paddingTop: 2, paddingHorizontal: 2 }}
351
- name="warning"
352
- color={ColorPalette.notification.warnIcon}
353
- size={ListItems.recordAttributeText.fontSize}
354
- />
355
- )}
356
- <AttributeValue warn={flaggedAttributes?.includes(label) && !item.pValue && proof} value={parsedValue} />
357
- </View>
358
- )}
359
- {/* Render attribute missing from credential error */}
360
- {!credentialErrors.includes(CredentialErrors.NotInWallet) && item.hasError && (
361
- <AttributeErrorLabel
362
- errorMessage={t('ProofRequest.MissingAttribute', {
363
- name: overlay.bundle?.labelOverlay?.attributeLabels[label] ?? startCase(label),
364
- })}
365
- />
366
- )}
367
- {/* Render predicate not satisfied error */}
368
- {!credentialErrors.includes(CredentialErrors.NotInWallet) &&
369
- item.satisfied != undefined &&
370
- item.satisfied === false && <AttributeErrorLabel errorMessage={t('ProofRequest.PredicateNotSatisfied')} />}
371
- </View>
372
- )
373
- }
374
-
375
- const CredentialCardPrimaryBodyFooter: React.FC = () => {
376
- if (hasAltCredentials && handleAltCredChange) {
377
- return (
378
- <CredentialActionFooter
379
- onPress={handleAltCredChange}
380
- text={t('ProofRequest.ChangeCredential')}
381
- testID={'ChangeCredential'}
382
- textColor={
383
- isBranding11
384
- ? credentialTextColor(ColorPalette, overlay.brandingOverlay?.primaryBackgroundColor)
385
- : undefined
386
- }
387
- />
388
- )
389
- }
390
- if (Boolean(credentialErrors.length) && helpAction) {
391
- return (
392
- <CredentialActionFooter
393
- onPress={helpAction}
394
- text={t('ProofRequest.GetThisCredential')}
395
- testID={'GetThisCredential'}
396
- textColor={
397
- isBranding11
398
- ? credentialTextColor(ColorPalette, overlay.brandingOverlay?.primaryBackgroundColor)
399
- : undefined
400
- }
401
- />
402
- )
403
- }
404
- return <></>
405
- }
406
-
407
- const CredentialCardPrimaryBody: React.FC = () => {
408
- return (
409
- <View testID={testIdWithKey('CredentialCardPrimaryBody')} style={styles.primaryBodyContainer}>
410
- {brandingOverlayType === BrandingOverlayType.Branding10 && (
411
- <CredentialIssuerBody
412
- overlay={overlay}
413
- overlayType={brandingOverlayType}
414
- proof={proof}
415
- hasBody={!(overlay.metaOverlay?.issuer === 'Unknown Contact' && proof)}
416
- />
417
- )}
418
-
419
- <View style={styles.primaryBodyNameContainer}>
420
- <ThemedText
421
- variant="bold"
422
- testID={testIdWithKey('CredentialName')}
423
- style={[
424
- styles.textContainer,
425
- styles.credentialName,
426
- {
427
- color: allPI && proof ? ColorPalette.notification.warnText : styles.textContainer.color,
428
- },
429
- ]}
430
- >
431
- {overlay.metaOverlay?.name}
432
- </ThemedText>
433
- </View>
434
- {extraOverlayParameter && !displayItems && (
435
- <View style={{ flex: 1, justifyContent: 'flex-end' }}>
436
- <ThemedText
437
- variant="caption"
438
- style={{
439
- color: styles.textContainer.color,
440
- }}
441
- >
442
- {extraOverlayParameter.label ?? startCase(extraOverlayParameter.name || '')}:{' '}
443
- {extraOverlayParameter.value}
444
- </ThemedText>
445
- </View>
446
- )}
447
-
448
- {/* Render Error text at the top of the credential card */}
449
- <View style={{ flexDirection: 'row', alignItems: 'center' }}>
450
- {credentialErrors.includes(CredentialErrors.Revoked) && Boolean(proof) && (
451
- <>
452
- <Icon style={styles.errorIcon} name="close" size={30} />
453
- <ThemedText style={styles.errorText} testID={testIdWithKey('RevokedOrNotAvailable')} numberOfLines={1}>
454
- {t('CredentialDetails.Revoked')}
455
- </ThemedText>
456
- </>
457
- )}
458
- {credentialErrors.includes(CredentialErrors.NotInWallet) && (
459
- <>
460
- <Icon style={styles.errorIcon} name="close" size={30} />
461
- <ThemedText style={styles.errorText} testID={testIdWithKey('RevokedOrNotAvailable')}>
462
- {t('ProofRequest.NotAvailableInYourWallet')}
463
- </ThemedText>
464
- </>
465
- )}
466
- </View>
467
- <FlatList
468
- data={cardData}
469
- scrollEnabled={false}
470
- initialNumToRender={cardData?.length}
471
- renderItem={({ item }) => {
472
- return renderCardAttribute(item as Attribute & Predicate)
473
- }}
474
- ListFooterComponent={
475
- <>
476
- {brandingOverlayType === BrandingOverlayType.Branding11 && (
477
- <CredentialIssuerBody
478
- overlay={overlay}
479
- overlayType={brandingOverlayType}
480
- proof={proof}
481
- hasBody={!(overlay.metaOverlay?.issuer === 'Unknown Contact' && proof)}
482
- />
483
- )}
484
- <CredentialCardPrimaryBodyFooter />
485
- </>
486
- }
487
- />
488
- </View>
489
- )
490
- }
491
-
492
- /**
493
- * Returns the background color for the slice of the card.
494
- *
495
- * @return {ColorValue} - The background color for the slice.
496
- */
497
- function getSliceBackgroundColor(): ColorValue {
498
- if (overlay.brandingOverlay?.secondaryBackgroundColor) {
499
- return overlay.brandingOverlay.secondaryBackgroundColor
500
- }
501
-
502
- if (styles.secondaryBodyContainer.backgroundColor) {
503
- return styles.secondaryBodyContainer.backgroundColor
504
- }
505
-
506
- return 'transparent'
507
- }
508
-
509
- const CredentialCardSecondaryBody: React.FC = () => {
510
- // If the slice is hidden, we return an empty view with the same styles
511
- if (hideSlice) {
512
- return (
513
- <View
514
- testID={testIdWithKey('CredentialCardSecondaryBody')}
515
- style={[
516
- styles.secondaryBodyContainer,
517
- {
518
- backgroundColor: 'transparent',
519
- overflow: 'hidden',
520
- },
521
- ]}
522
- />
523
- )
524
- }
525
-
526
- return (
527
- <View
528
- testID={testIdWithKey('CredentialCardSecondaryBody')}
529
- style={[
530
- styles.secondaryBodyContainer,
531
- {
532
- backgroundColor: getSliceBackgroundColor(),
533
- overflow: 'hidden',
534
- },
535
- ]}
536
- >
537
- {overlay.brandingOverlay?.backgroundImageSlice &&
538
- (!displayItems || brandingOverlayType === BrandingOverlayType.Branding11) ? (
539
- <ImageBackground
540
- source={toImageSource(overlay.brandingOverlay.backgroundImageSlice)}
541
- style={{ flexGrow: 1 }}
542
- imageStyle={{
543
- borderTopLeftRadius: borderRadius,
544
- borderBottomLeftRadius: borderRadius,
545
- }}
546
- />
547
- ) : (
548
- !(proof || getSecondaryBackgroundColor(overlay, proof)) && (
549
- <View
550
- style={[
551
- {
552
- position: 'absolute',
553
- width: logoHeight,
554
- height: '100%',
555
- borderTopLeftRadius: borderRadius,
556
- borderBottomLeftRadius: borderRadius,
557
- backgroundColor: 'rgba(0,0,0,0.24)',
558
- },
559
- ]}
560
- />
561
- )
562
- )}
563
- </View>
564
- )
565
- }
566
-
567
- const CredentialCardStatus: React.FC<{
568
- status?: 'error' | 'warning'
569
- }> = ({ status }) => {
570
- return (
571
- <View
572
- testID={testIdWithKey('CredentialCardStatus')}
573
- style={[styles.statusContainer, { position: 'absolute', right: 0, top: 0 }]}
574
- >
575
- {status ? (
576
- <View
577
- style={[
578
- styles.statusContainer,
579
- {
580
- backgroundColor: status === 'error' ? ColorPalette.notification.error : ColorPalette.notification.warn,
581
- },
582
- ]}
583
- >
584
- <Icon
585
- size={0.7 * logoHeight}
586
- style={{ color: status === 'error' ? ColorPalette.semantic.error : ColorPalette.notification.warnIcon }}
587
- name={status}
588
- />
589
- </View>
590
- ) : (
591
- <View style={styles.statusContainer} />
592
- )}
593
- </View>
594
- )
595
- }
596
-
597
- const CredentialCard: React.FC<{ status?: 'error' | 'warning' }> = ({ status }) => {
598
- const issuerAccessibilityLabel = overlay.metaOverlay?.issuer
599
- ? `${t('Credentials.IssuedBy')} ${overlay.metaOverlay?.issuer}`
600
- : ''
601
- const watermarkLabel = overlay.metaOverlay?.watermark ? overlay.metaOverlay?.watermark + ',' : ''
602
- const accessibilityLabel = isBranding11
603
- ? `${watermarkLabel} ${overlay.metaOverlay?.name ?? ''} ${t('Credentials.Credential')}${
604
- cardData.length > 0 ? ',' : ''
605
- }` +
606
- cardData.map((item) => {
607
- const { label, value } = parseAttribute(item as Attribute & Predicate)
608
- if (label && value) {
609
- return ` ${label}, ${value}`
610
- }
611
- }) +
612
- `, ${issuerAccessibilityLabel}`
613
- : `${issuerAccessibilityLabel}, ${watermarkLabel} ${overlay.metaOverlay?.name ?? ''} ${t(
614
- 'Credentials.Credential'
615
- )}.` +
616
- cardData.map((item) => {
617
- const { label, value } = parseAttribute(item as Attribute & Predicate)
618
- if (label && value) {
619
- return ` ${label}, ${value}`
620
- }
621
- })
622
-
623
- const MainCredentialBody = () => (
624
- <View style={styles.cardContainer} accessible={true} accessibilityLabel={accessibilityLabel}>
625
- <CredentialCardSecondaryBody />
626
- <CredentialCard11Logo noLogoText={logoText} overlay={overlay} elevated={elevated} />
627
- <CredentialCardPrimaryBody />
628
- <CredentialCardStatus status={status} />
629
- </View>
630
- )
631
- return (
632
- <>
633
- {overlay.brandingOverlay?.backgroundImage && hideSlice ? (
634
- <ImageBackground source={toImageSource(overlay.brandingOverlay?.backgroundImage)}>
635
- <MainCredentialBody />
636
- </ImageBackground>
637
- ) : (
638
- <MainCredentialBody />
639
- )}
640
- </>
641
- )
642
- }
643
-
644
- const getCredentialStatus = (): 'error' | 'warning' | undefined => {
645
- if (brandingOverlayType === BrandingOverlayType.Branding10) {
646
- if (credentialErrors.includes(CredentialErrors.Revoked) && !proof) {
647
- return 'error'
648
- } else if (allPI && proof) {
649
- return 'warning'
650
- }
651
- return undefined
652
- }
653
-
654
- if (credentialErrors.includes(CredentialErrors.Revoked)) {
655
- return 'error'
656
- } else if (allPI && proof) {
657
- return 'warning'
658
- }
659
- return undefined
660
- }
661
- return overlay.bundle ? (
662
- <View
663
- style={[
664
- styles.container,
665
- style,
666
- { elevation: elevated ? 5 : 0, overflow: elevated ? 'visible' : 'hidden' },
667
- hasAltCredentials ? styles.selectedCred : undefined,
668
- ]}
669
- onLayout={(event) => {
670
- setDimensions({ cardHeight: event.nativeEvent.layout.height, cardWidth: event.nativeEvent.layout.width })
671
- }}
672
- >
673
- <TouchableOpacity
674
- accessible={false}
675
- accessibilityLabel={typeof onPress === 'undefined' ? undefined : t('Credentials.CredentialDetails')}
676
- disabled={typeof onPress === 'undefined' ? true : false}
677
- onPress={onPress}
678
- style={[styles.container, style]}
679
- testID={testIdWithKey('ShowCredentialDetails')}
680
- >
681
- <View testID={testIdWithKey('CredentialCard')} style={{ overflow: 'hidden' }}>
682
- {overlay.metaOverlay?.watermark && (
683
- <CardWatermark
684
- width={dimensions.cardWidth}
685
- height={dimensions.cardHeight}
686
- style={{ color: fontColorWithHighContrast() }}
687
- watermark={overlay.metaOverlay?.watermark}
688
- />
689
- )}
690
- <CredentialCard
691
- // if the credential is revoked and we are not in a proof context
692
- // display a small error icon in the top right of the credential card
693
- status={getCredentialStatus()}
694
- />
695
- </View>
696
- </TouchableOpacity>
697
- </View>
698
- ) : null
699
- }
700
-
701
- export default CredentialCard11