@procivis/one-react-native-components 0.3.71 → 0.3.86

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 (258) hide show
  1. package/lib/commonjs/components/credential/credential.js +8 -2
  2. package/lib/commonjs/components/credential/credential.js.map +1 -1
  3. package/lib/commonjs/components/proof-request/index.js +23 -12
  4. package/lib/commonjs/components/proof-request/index.js.map +1 -1
  5. package/lib/commonjs/components/proof-request/select-share-credential-card-notice.js +37 -0
  6. package/lib/commonjs/components/proof-request/select-share-credential-card-notice.js.map +1 -0
  7. package/lib/commonjs/components/proof-request/share-credential-card-notice.js +36 -0
  8. package/lib/commonjs/components/proof-request/share-credential-card-notice.js.map +1 -0
  9. package/lib/commonjs/components/proof-request/{group.js → v1/group.js} +1 -1
  10. package/lib/commonjs/components/proof-request/v1/group.js.map +1 -0
  11. package/lib/commonjs/components/proof-request/v1/index.js +39 -0
  12. package/lib/commonjs/components/proof-request/v1/index.js.map +1 -0
  13. package/lib/commonjs/components/proof-request/{select-credential.js → v1/select-credential.js} +12 -6
  14. package/lib/commonjs/components/proof-request/v1/select-credential.js.map +1 -0
  15. package/lib/commonjs/components/proof-request/{share-credential.js → v1/share-credential.js} +33 -62
  16. package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -0
  17. package/lib/commonjs/components/proof-request/v2/index.js +39 -0
  18. package/lib/commonjs/components/proof-request/v2/index.js.map +1 -0
  19. package/lib/commonjs/components/proof-request/v2/select-credential-v2.js +55 -0
  20. package/lib/commonjs/components/proof-request/v2/select-credential-v2.js.map +1 -0
  21. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +164 -0
  22. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -0
  23. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +135 -0
  24. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -0
  25. package/lib/commonjs/ui-components/buttons/share-button.js +1 -1
  26. package/lib/commonjs/ui-components/buttons/share-button.js.map +1 -1
  27. package/lib/commonjs/ui-components/camera/qr-code-scanner.js +5 -1
  28. package/lib/commonjs/ui-components/camera/qr-code-scanner.js.map +1 -1
  29. package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js +16 -42
  30. package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js.map +1 -1
  31. package/lib/commonjs/ui-components/credential/credential-attribute-item.js +3 -1
  32. package/lib/commonjs/ui-components/credential/credential-attribute-item.js.map +1 -1
  33. package/lib/commonjs/ui-components/credential/group/credential-group-header.js +72 -0
  34. package/lib/commonjs/ui-components/credential/group/credential-group-header.js.map +1 -0
  35. package/lib/commonjs/ui-components/credential/group/index.js +14 -0
  36. package/lib/commonjs/ui-components/credential/group/index.js.map +1 -0
  37. package/lib/commonjs/ui-components/credential/index.js +12 -0
  38. package/lib/commonjs/ui-components/credential/index.js.map +1 -1
  39. package/lib/commonjs/ui-components/header/foldable-header.js +29 -17
  40. package/lib/commonjs/ui-components/header/foldable-header.js.map +1 -1
  41. package/lib/commonjs/ui-components/index.js +11 -0
  42. package/lib/commonjs/ui-components/index.js.map +1 -1
  43. package/lib/commonjs/ui-components/loader/loading-result.js +1 -1
  44. package/lib/commonjs/ui-components/loader/loading-result.js.map +1 -1
  45. package/lib/commonjs/ui-components/pin/pin-lock-animation.js +477 -475
  46. package/lib/commonjs/ui-components/pin/pin-lock-animation.js.map +1 -1
  47. package/lib/commonjs/ui-components/proof-request/index.js +13 -0
  48. package/lib/commonjs/ui-components/proof-request/index.js.map +1 -0
  49. package/lib/commonjs/ui-components/proof-request/proof-request-set.js +47 -0
  50. package/lib/commonjs/ui-components/proof-request/proof-request-set.js.map +1 -0
  51. package/lib/commonjs/ui-components/screens/section-list-screen.js +17 -3
  52. package/lib/commonjs/ui-components/screens/section-list-screen.js.map +1 -1
  53. package/lib/commonjs/utils/array.js.map +1 -1
  54. package/lib/commonjs/utils/hooks/app-state.js +33 -0
  55. package/lib/commonjs/utils/hooks/app-state.js.map +1 -0
  56. package/lib/commonjs/utils/hooks/core/backup.js +1 -1
  57. package/lib/commonjs/utils/hooks/core/backup.js.map +1 -1
  58. package/lib/commonjs/utils/hooks/core/credentials.js +10 -3
  59. package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
  60. package/lib/commonjs/utils/hooks/core/identifiers.js +1 -1
  61. package/lib/commonjs/utils/hooks/core/identifiers.js.map +1 -1
  62. package/lib/commonjs/utils/hooks/core/index.js +11 -0
  63. package/lib/commonjs/utils/hooks/core/index.js.map +1 -1
  64. package/lib/commonjs/utils/hooks/core/proofs.js +39 -10
  65. package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
  66. package/lib/commonjs/utils/hooks/core/wallet-unit.js +85 -0
  67. package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -0
  68. package/lib/commonjs/utils/hooks/index.js +11 -0
  69. package/lib/commonjs/utils/hooks/index.js.map +1 -1
  70. package/lib/commonjs/utils/hooks/revocation/credential-status.js +1 -1
  71. package/lib/commonjs/utils/hooks/revocation/credential-status.js.map +1 -1
  72. package/lib/commonjs/utils/index.js +16 -4
  73. package/lib/commonjs/utils/index.js.map +1 -1
  74. package/lib/commonjs/utils/parsers/credential-sharing-v2.js +190 -0
  75. package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -0
  76. package/lib/commonjs/utils/parsers/credential-sharing.js +31 -18
  77. package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
  78. package/lib/commonjs/utils/parsers/credential.js +111 -63
  79. package/lib/commonjs/utils/parsers/credential.js.map +1 -1
  80. package/lib/commonjs/utils/parsers/index.js +11 -0
  81. package/lib/commonjs/utils/parsers/index.js.map +1 -1
  82. package/lib/commonjs/utils/parsers/query.js +4 -4
  83. package/lib/commonjs/utils/parsers/query.js.map +1 -1
  84. package/lib/commonjs/utils/wallet-unit.js +30 -0
  85. package/lib/commonjs/utils/wallet-unit.js.map +1 -0
  86. package/lib/module/components/credential/credential.js +8 -2
  87. package/lib/module/components/credential/credential.js.map +1 -1
  88. package/lib/module/components/proof-request/index.js +4 -3
  89. package/lib/module/components/proof-request/index.js.map +1 -1
  90. package/lib/module/components/proof-request/select-share-credential-card-notice.js +29 -0
  91. package/lib/module/components/proof-request/select-share-credential-card-notice.js.map +1 -0
  92. package/lib/module/components/proof-request/share-credential-card-notice.js +28 -0
  93. package/lib/module/components/proof-request/share-credential-card-notice.js.map +1 -0
  94. package/lib/module/components/proof-request/{group.js → v1/group.js} +1 -1
  95. package/lib/module/components/proof-request/v1/group.js.map +1 -0
  96. package/lib/module/components/proof-request/v1/index.js +4 -0
  97. package/lib/module/components/proof-request/v1/index.js.map +1 -0
  98. package/lib/module/components/proof-request/{select-credential.js → v1/select-credential.js} +12 -6
  99. package/lib/module/components/proof-request/v1/select-credential.js.map +1 -0
  100. package/lib/module/components/proof-request/v1/share-credential.js +118 -0
  101. package/lib/module/components/proof-request/v1/share-credential.js.map +1 -0
  102. package/lib/module/components/proof-request/v2/index.js +4 -0
  103. package/lib/module/components/proof-request/v2/index.js.map +1 -0
  104. package/lib/module/components/proof-request/v2/select-credential-v2.js +46 -0
  105. package/lib/module/components/proof-request/v2/select-credential-v2.js.map +1 -0
  106. package/lib/module/components/proof-request/v2/share-credential-v2-group.js +154 -0
  107. package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -0
  108. package/lib/module/components/proof-request/v2/share-credential-v2.js +126 -0
  109. package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -0
  110. package/lib/module/ui-components/buttons/share-button.js +1 -1
  111. package/lib/module/ui-components/buttons/share-button.js.map +1 -1
  112. package/lib/module/ui-components/camera/qr-code-scanner.js +5 -1
  113. package/lib/module/ui-components/camera/qr-code-scanner.js.map +1 -1
  114. package/lib/module/ui-components/credential/card/credential-details-list-item.js +19 -45
  115. package/lib/module/ui-components/credential/card/credential-details-list-item.js.map +1 -1
  116. package/lib/module/ui-components/credential/credential-attribute-item.js +3 -1
  117. package/lib/module/ui-components/credential/credential-attribute-item.js.map +1 -1
  118. package/lib/module/ui-components/credential/group/credential-group-header.js +64 -0
  119. package/lib/module/ui-components/credential/group/credential-group-header.js.map +1 -0
  120. package/lib/module/ui-components/credential/group/index.js +3 -0
  121. package/lib/module/ui-components/credential/group/index.js.map +1 -0
  122. package/lib/module/ui-components/credential/index.js +1 -0
  123. package/lib/module/ui-components/credential/index.js.map +1 -1
  124. package/lib/module/ui-components/header/foldable-header.js +29 -17
  125. package/lib/module/ui-components/header/foldable-header.js.map +1 -1
  126. package/lib/module/ui-components/index.js +1 -0
  127. package/lib/module/ui-components/index.js.map +1 -1
  128. package/lib/module/ui-components/loader/loading-result.js +1 -1
  129. package/lib/module/ui-components/loader/loading-result.js.map +1 -1
  130. package/lib/module/ui-components/pin/pin-lock-animation.js +477 -475
  131. package/lib/module/ui-components/pin/pin-lock-animation.js.map +1 -1
  132. package/lib/module/ui-components/proof-request/index.js +3 -0
  133. package/lib/module/ui-components/proof-request/index.js.map +1 -0
  134. package/lib/module/ui-components/proof-request/proof-request-set.js +39 -0
  135. package/lib/module/ui-components/proof-request/proof-request-set.js.map +1 -0
  136. package/lib/module/ui-components/screens/section-list-screen.js +15 -3
  137. package/lib/module/ui-components/screens/section-list-screen.js.map +1 -1
  138. package/lib/module/utils/array.js.map +1 -1
  139. package/lib/module/utils/hooks/app-state.js +27 -0
  140. package/lib/module/utils/hooks/app-state.js.map +1 -0
  141. package/lib/module/utils/hooks/core/backup.js +1 -1
  142. package/lib/module/utils/hooks/core/backup.js.map +1 -1
  143. package/lib/module/utils/hooks/core/credentials.js +11 -4
  144. package/lib/module/utils/hooks/core/credentials.js.map +1 -1
  145. package/lib/module/utils/hooks/core/identifiers.js +5 -5
  146. package/lib/module/utils/hooks/core/identifiers.js.map +1 -1
  147. package/lib/module/utils/hooks/core/index.js +1 -0
  148. package/lib/module/utils/hooks/core/index.js.map +1 -1
  149. package/lib/module/utils/hooks/core/proofs.js +40 -11
  150. package/lib/module/utils/hooks/core/proofs.js.map +1 -1
  151. package/lib/module/utils/hooks/core/wallet-unit.js +75 -0
  152. package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -0
  153. package/lib/module/utils/hooks/index.js +1 -0
  154. package/lib/module/utils/hooks/index.js.map +1 -1
  155. package/lib/module/utils/hooks/revocation/credential-status.js +1 -1
  156. package/lib/module/utils/hooks/revocation/credential-status.js.map +1 -1
  157. package/lib/module/utils/index.js +2 -1
  158. package/lib/module/utils/index.js.map +1 -1
  159. package/lib/module/utils/parsers/credential-sharing-v2.js +177 -0
  160. package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -0
  161. package/lib/module/utils/parsers/credential-sharing.js +31 -18
  162. package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
  163. package/lib/module/utils/parsers/credential.js +112 -64
  164. package/lib/module/utils/parsers/credential.js.map +1 -1
  165. package/lib/module/utils/parsers/index.js +1 -0
  166. package/lib/module/utils/parsers/index.js.map +1 -1
  167. package/lib/module/utils/parsers/query.js +4 -4
  168. package/lib/module/utils/parsers/query.js.map +1 -1
  169. package/lib/module/utils/wallet-unit.js +22 -0
  170. package/lib/module/utils/wallet-unit.js.map +1 -0
  171. package/lib/typescript/components/proof-request/index.d.ts +4 -3
  172. package/lib/typescript/components/proof-request/select-share-credential-card-notice.d.ts +7 -0
  173. package/lib/typescript/components/proof-request/share-credential-card-notice.d.ts +6 -0
  174. package/lib/typescript/components/proof-request/v1/index.d.ts +3 -0
  175. package/lib/typescript/components/proof-request/{select-credential.d.ts → v1/select-credential.d.ts} +1 -1
  176. package/lib/typescript/components/proof-request/{share-credential.d.ts → v1/share-credential.d.ts} +1 -1
  177. package/lib/typescript/components/proof-request/v2/index.d.ts +3 -0
  178. package/lib/typescript/components/proof-request/v2/select-credential-v2.d.ts +14 -0
  179. package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +24 -0
  180. package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +23 -0
  181. package/lib/typescript/ui-components/credential/group/credential-group-header.d.ts +10 -0
  182. package/lib/typescript/ui-components/credential/group/index.d.ts +3 -0
  183. package/lib/typescript/ui-components/credential/index.d.ts +1 -0
  184. package/lib/typescript/ui-components/header/foldable-header.d.ts +1 -0
  185. package/lib/typescript/ui-components/index.d.ts +1 -0
  186. package/lib/typescript/ui-components/loader/loading-result.d.ts +1 -1
  187. package/lib/typescript/ui-components/pin/pin-lock-animation.d.ts +311 -311
  188. package/lib/typescript/ui-components/proof-request/index.d.ts +3 -0
  189. package/lib/typescript/ui-components/proof-request/proof-request-set.d.ts +7 -0
  190. package/lib/typescript/ui-components/screens/section-list-screen.d.ts +4 -2
  191. package/lib/typescript/utils/array.d.ts +1 -0
  192. package/lib/typescript/utils/hooks/app-state.d.ts +5 -0
  193. package/lib/typescript/utils/hooks/core/backup.d.ts +1 -1
  194. package/lib/typescript/utils/hooks/core/credentials.d.ts +1 -1
  195. package/lib/typescript/utils/hooks/core/identifiers.d.ts +1 -1
  196. package/lib/typescript/utils/hooks/core/index.d.ts +1 -0
  197. package/lib/typescript/utils/hooks/core/proofs.d.ts +6 -7
  198. package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +9 -0
  199. package/lib/typescript/utils/hooks/index.d.ts +1 -0
  200. package/lib/typescript/utils/index.d.ts +2 -1
  201. package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +11 -0
  202. package/lib/typescript/utils/parsers/credential-sharing.d.ts +11 -5
  203. package/lib/typescript/utils/parsers/credential.d.ts +9 -6
  204. package/lib/typescript/utils/parsers/index.d.ts +1 -0
  205. package/lib/typescript/utils/parsers/query.d.ts +2 -2
  206. package/lib/typescript/utils/wallet-unit.d.ts +8 -0
  207. package/package.json +12 -6
  208. package/src/components/credential/credential.tsx +5 -1
  209. package/src/components/proof-request/index.ts +4 -3
  210. package/src/components/proof-request/select-share-credential-card-notice.tsx +37 -0
  211. package/src/components/proof-request/share-credential-card-notice.tsx +33 -0
  212. package/src/components/proof-request/{group.tsx → v1/group.tsx} +1 -1
  213. package/src/components/proof-request/v1/index.ts +3 -0
  214. package/src/components/proof-request/{select-credential.tsx → v1/select-credential.tsx} +12 -5
  215. package/src/components/proof-request/{share-credential.tsx → v1/share-credential.tsx} +35 -52
  216. package/src/components/proof-request/v2/index.ts +3 -0
  217. package/src/components/proof-request/v2/select-credential-v2.tsx +59 -0
  218. package/src/components/proof-request/v2/share-credential-v2-group.tsx +258 -0
  219. package/src/components/proof-request/v2/share-credential-v2.tsx +211 -0
  220. package/src/ui-components/buttons/share-button.tsx +1 -1
  221. package/src/ui-components/camera/qr-code-scanner.tsx +11 -2
  222. package/src/ui-components/credential/card/credential-details-list-item.tsx +27 -49
  223. package/src/ui-components/credential/credential-attribute-item.tsx +2 -0
  224. package/src/ui-components/credential/group/credential-group-header.tsx +70 -0
  225. package/src/ui-components/credential/group/index.ts +4 -0
  226. package/src/ui-components/credential/index.ts +1 -0
  227. package/src/ui-components/header/foldable-header.tsx +31 -16
  228. package/src/ui-components/index.ts +1 -0
  229. package/src/ui-components/loader/loading-result.tsx +1 -1
  230. package/src/ui-components/pin/pin-lock-animation.tsx +240 -278
  231. package/src/ui-components/proof-request/index.ts +4 -0
  232. package/src/ui-components/proof-request/proof-request-set.tsx +46 -0
  233. package/src/ui-components/screens/section-list-screen.tsx +18 -4
  234. package/src/utils/array.ts +4 -0
  235. package/src/utils/hooks/app-state.ts +29 -0
  236. package/src/utils/hooks/core/backup.ts +2 -5
  237. package/src/utils/hooks/core/credentials.ts +11 -4
  238. package/src/utils/hooks/core/identifiers.ts +15 -14
  239. package/src/utils/hooks/core/index.ts +2 -1
  240. package/src/utils/hooks/core/proofs.ts +36 -12
  241. package/src/utils/hooks/core/wallet-unit.ts +77 -0
  242. package/src/utils/hooks/index.ts +1 -0
  243. package/src/utils/hooks/revocation/credential-status.ts +1 -1
  244. package/src/utils/index.ts +2 -1
  245. package/src/utils/parsers/credential-sharing-v2.tsx +283 -0
  246. package/src/utils/parsers/credential-sharing.tsx +40 -16
  247. package/src/utils/parsers/credential.ts +129 -59
  248. package/src/utils/parsers/index.ts +1 -0
  249. package/src/utils/parsers/query.ts +6 -5
  250. package/src/utils/wallet-unit.ts +30 -0
  251. package/lib/commonjs/components/proof-request/group.js.map +0 -1
  252. package/lib/commonjs/components/proof-request/select-credential.js.map +0 -1
  253. package/lib/commonjs/components/proof-request/share-credential.js.map +0 -1
  254. package/lib/module/components/proof-request/group.js.map +0 -1
  255. package/lib/module/components/proof-request/select-credential.js.map +0 -1
  256. package/lib/module/components/proof-request/share-credential.js +0 -147
  257. package/lib/module/components/proof-request/share-credential.js.map +0 -1
  258. /package/lib/typescript/components/proof-request/{group.d.ts → v1/group.d.ts} +0 -0
@@ -0,0 +1,126 @@
1
+ import React, { useCallback, useMemo } from 'react';
2
+ import { Dimensions, StyleSheet } from 'react-native';
3
+ import { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';
4
+ import { concatTestID, getValidityState, useCoreConfig, useWalletUnitAttestation, ValidityState, walletUnitAttestationState } from '../../../utils';
5
+ import { shareCredentialCardFromV2PresentationCredential } from '../../../utils/parsers/credential-sharing-v2';
6
+ import { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';
7
+ import { ShareCredentialCardNotice } from '../share-credential-card-notice';
8
+ export const GroupedShareCredentialV2Padding = 4;
9
+ export const ShareCredentialV2 = ({
10
+ credentialQuery,
11
+ credentialRequestId,
12
+ expanded,
13
+ grouped,
14
+ headerAccessory,
15
+ labels,
16
+ lastItem,
17
+ onHeaderPress,
18
+ onImagePreview,
19
+ onSelectCredential,
20
+ onSelectField,
21
+ selectedCredentialId,
22
+ selectedFields,
23
+ style,
24
+ testID
25
+ }) => {
26
+ var _applicableCredential, _credential$issuer;
27
+ const colorScheme = useAppColorScheme();
28
+ const applicableCredentials = 'applicableCredentials' in credentialQuery ? credentialQuery.applicableCredentials : undefined;
29
+ const failureHint = 'failureHint' in credentialQuery ? credentialQuery.failureHint : undefined;
30
+ const credential = (_applicableCredential = applicableCredentials === null || applicableCredentials === void 0 ? void 0 : applicableCredentials.find(c => c.id === selectedCredentialId)) !== null && _applicableCredential !== void 0 ? _applicableCredential : applicableCredentials === null || applicableCredentials === void 0 ? void 0 : applicableCredentials[0];
31
+ const {
32
+ data: config
33
+ } = useCoreConfig();
34
+ const {
35
+ data: walletUnitAttestation,
36
+ isLoading: isLoadingWUA
37
+ } = useWalletUnitAttestation();
38
+ const cardWidth = useMemo(() => Dimensions.get('window').width - 32 - (grouped ? GroupedShareCredentialV2Padding * 2 : 0), [grouped]);
39
+ const multipleCredentialsAvailable = Boolean((applicableCredentials === null || applicableCredentials === void 0 ? void 0 : applicableCredentials.length) && applicableCredentials.length > 1);
40
+ const validityState = getValidityState(credential ? {
41
+ ...credential,
42
+ issuer: credential === null || credential === void 0 || (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
43
+ } : undefined);
44
+ const footer = useMemo(() => {
45
+ if (!expanded) {
46
+ return;
47
+ }
48
+ if (validityState === ValidityState.Revoked) {
49
+ return /*#__PURE__*/React.createElement(ShareCredentialCardNotice, {
50
+ testID: concatTestID(testID, 'notice.revoked'),
51
+ text: labels.revokedCredentialNotice
52
+ });
53
+ }
54
+ if (validityState === ValidityState.Suspended) {
55
+ return /*#__PURE__*/React.createElement(ShareCredentialCardNotice, {
56
+ testID: concatTestID(testID, 'notice.suspended'),
57
+ text: labels.suspendedCredentialNotice
58
+ });
59
+ }
60
+ if ((failureHint === null || failureHint === void 0 ? void 0 : failureHint.reason) === 'VALIDITY') {
61
+ return /*#__PURE__*/React.createElement(ShareCredentialCardNotice, {
62
+ testID: concatTestID(testID, 'notice.invalid'),
63
+ text: labels.invalidCredentialNotice
64
+ });
65
+ }
66
+ if (multipleCredentialsAvailable) {
67
+ return /*#__PURE__*/React.createElement(SelectShareCredentialCardNotice, {
68
+ buttonTitle: labels.multipleCredentialsSelect,
69
+ onPress: onSelectCredential,
70
+ testID: concatTestID(testID, 'notice.multiple'),
71
+ text: labels.multipleCredentialsNotice
72
+ });
73
+ }
74
+ }, [expanded, failureHint === null || failureHint === void 0 ? void 0 : failureHint.reason, labels.invalidCredentialNotice, labels.multipleCredentialsNotice, labels.multipleCredentialsSelect, labels.revokedCredentialNotice, labels.suspendedCredentialNotice, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);
75
+ const onAttributeSelected = useCallback((fieldPath, selected) => {
76
+ if (!selectedCredentialId) {
77
+ return;
78
+ }
79
+ onSelectField(selectedCredentialId, fieldPath, selected);
80
+ }, [onSelectField, selectedCredentialId]);
81
+ if (!config || isLoadingWUA) {
82
+ return null;
83
+ }
84
+ const {
85
+ card: {
86
+ header,
87
+ ...card
88
+ },
89
+ attributes
90
+ } = shareCredentialCardFromV2PresentationCredential(credential, failureHint, Boolean(expanded), multipleCredentialsAvailable, selectedFields, config, walletUnitAttestationState(walletUnitAttestation), testID, labels);
91
+ if (headerAccessory) {
92
+ header.accessory = headerAccessory;
93
+ }
94
+ return /*#__PURE__*/React.createElement(CredentialDetailsCardListItem, {
95
+ attributes: attributes,
96
+ card: {
97
+ ...card,
98
+ credentialId: credentialRequestId,
99
+ header,
100
+ onHeaderPress,
101
+ width: cardWidth
102
+ },
103
+ expanded: expanded,
104
+ footer: footer,
105
+ lastItem: lastItem,
106
+ onAttributeSelected: onAttributeSelected,
107
+ onImagePreview: onImagePreview,
108
+ style: [styles.credential, grouped ? styles.groupedCredential : styles.bordered, {
109
+ borderColor: colorScheme.background
110
+ }, style],
111
+ testID: testID
112
+ });
113
+ };
114
+ const styles = StyleSheet.create({
115
+ bordered: {
116
+ borderWidth: 1
117
+ },
118
+ credential: {
119
+ borderRadius: 10,
120
+ marginBottom: 8
121
+ },
122
+ groupedCredential: {
123
+ marginHorizontal: GroupedShareCredentialV2Padding
124
+ }
125
+ });
126
+ //# sourceMappingURL=share-credential-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","getValidityState","useCoreConfig","useWalletUnitAttestation","ValidityState","walletUnitAttestationState","shareCredentialCardFromV2PresentationCredential","SelectShareCredentialCardNotice","ShareCredentialCardNotice","GroupedShareCredentialV2Padding","ShareCredentialV2","credentialQuery","credentialRequestId","expanded","grouped","headerAccessory","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","selectedCredentialId","selectedFields","style","testID","_applicableCredential","_credential$issuer","colorScheme","applicableCredentials","undefined","failureHint","credential","find","c","id","data","config","walletUnitAttestation","isLoading","isLoadingWUA","cardWidth","get","width","multipleCredentialsAvailable","Boolean","length","validityState","issuer","footer","Revoked","createElement","text","revokedCredentialNotice","Suspended","suspendedCredentialNotice","reason","invalidCredentialNotice","buttonTitle","multipleCredentialsSelect","onPress","multipleCredentialsNotice","onAttributeSelected","fieldPath","selected","card","header","attributes","accessory","credentialId","styles","groupedCredential","bordered","borderColor","background","create","borderWidth","borderRadius","marginBottom","marginHorizontal"],"sources":["share-credential-v2.tsx"],"sourcesContent":["import {\n CredentialListItem,\n PresentationDefinitionV2CredentialClaim,\n PresentationDefinitionV2CredentialQuery,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useCallback, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';\nimport {\n concatTestID,\n getValidityState,\n useCoreConfig,\n useWalletUnitAttestation,\n ValidityState,\n walletUnitAttestationState,\n} from '../../../utils';\nimport { shareCredentialCardFromV2PresentationCredential } from '../../../utils/parsers/credential-sharing-v2';\nimport { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';\nimport { ShareCredentialCardNotice } from '../share-credential-card-notice';\nimport { ShareCredentialLabels } from '../v1';\n\nexport type ShareCredentialV2Props = {\n credentialQuery: PresentationDefinitionV2CredentialQuery;\n credentialRequestId: string;\n expanded?: boolean;\n grouped?: boolean;\n headerAccessory?: React.ComponentType<any> | React.ReactElement;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (\n credentialId: CredentialListItem['id'],\n fieldPath: PresentationDefinitionV2CredentialClaim['path'],\n selected: boolean,\n ) => void;\n selectedCredentialId?: CredentialListItem['id'];\n selectedFields?: Array<PresentationDefinitionV2CredentialClaim['path']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n};\n\nexport const GroupedShareCredentialV2Padding = 4;\n\nexport const ShareCredentialV2: FunctionComponent<ShareCredentialV2Props> = ({\n credentialQuery,\n credentialRequestId,\n expanded,\n grouped,\n headerAccessory,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const applicableCredentials =\n 'applicableCredentials' in credentialQuery ? credentialQuery.applicableCredentials : undefined;\n const failureHint = 'failureHint' in credentialQuery ? credentialQuery.failureHint : undefined;\n const credential = applicableCredentials?.find((c) => c.id === selectedCredentialId) ?? applicableCredentials?.[0];\n const { data: config } = useCoreConfig();\n const { data: walletUnitAttestation, isLoading: isLoadingWUA } = useWalletUnitAttestation();\n const cardWidth = useMemo(\n () => Dimensions.get('window').width - 32 - (grouped ? GroupedShareCredentialV2Padding * 2 : 0),\n [grouped],\n );\n\n const multipleCredentialsAvailable = Boolean(applicableCredentials?.length && applicableCredentials.length > 1);\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const footer = useMemo(() => {\n if (!expanded) {\n return;\n }\n if (validityState === ValidityState.Revoked) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.revoked')}\n text={labels.revokedCredentialNotice}\n />\n );\n }\n if (validityState === ValidityState.Suspended) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.suspended')}\n text={labels.suspendedCredentialNotice}\n />\n );\n }\n\n if (failureHint?.reason === 'VALIDITY') {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.invalid')}\n text={labels.invalidCredentialNotice}\n />\n );\n }\n\n if (multipleCredentialsAvailable) {\n return (\n <SelectShareCredentialCardNotice\n buttonTitle={labels.multipleCredentialsSelect}\n onPress={onSelectCredential}\n testID={concatTestID(testID, 'notice.multiple')}\n text={labels.multipleCredentialsNotice}\n />\n );\n }\n }, [\n expanded,\n failureHint?.reason,\n labels.invalidCredentialNotice,\n labels.multipleCredentialsNotice,\n labels.multipleCredentialsSelect,\n labels.revokedCredentialNotice,\n labels.suspendedCredentialNotice,\n multipleCredentialsAvailable,\n onSelectCredential,\n testID,\n validityState,\n ]);\n\n const onAttributeSelected = useCallback(\n (fieldPath: PresentationDefinitionV2CredentialClaim['path'], selected: boolean) => {\n if (!selectedCredentialId) {\n return;\n }\n onSelectField(selectedCredentialId, fieldPath, selected);\n },\n [onSelectField, selectedCredentialId],\n );\n\n if (!config || isLoadingWUA) {\n return null;\n }\n\n const {\n card: { header, ...card },\n attributes,\n } = shareCredentialCardFromV2PresentationCredential(\n credential,\n failureHint,\n Boolean(expanded),\n multipleCredentialsAvailable,\n selectedFields,\n config,\n walletUnitAttestationState(walletUnitAttestation),\n testID,\n labels,\n );\n\n if (headerAccessory) {\n header.accessory = headerAccessory;\n }\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId: credentialRequestId,\n header,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onAttributeSelected}\n onImagePreview={onImagePreview}\n style={[\n styles.credential,\n grouped ? styles.groupedCredential : styles.bordered,\n { borderColor: colorScheme.background },\n style,\n ]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n bordered: {\n borderWidth: 1,\n },\n credential: {\n borderRadius: 10,\n marginBottom: 8,\n },\n groupedCredential: {\n marginHorizontal: GroupedShareCredentialV2Padding,\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -2,9 +2,9 @@ import React from 'react';
2
2
  import { StyleSheet, View } from 'react-native';
3
3
  import { concatTestID } from '../../utils';
4
4
  import { TouchableHighlight } from '../accessibility';
5
+ import { LinkIcon } from '../icons';
5
6
  import { Typography } from '../text';
6
7
  import { useAppColorScheme } from '../theme';
7
- import { LinkIcon } from '../icons';
8
8
  const ShareButton = ({
9
9
  onPress,
10
10
  style,
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","View","concatTestID","TouchableHighlight","Typography","useAppColorScheme","LinkIcon","ShareButton","onPress","style","title","testID","colorScheme","createElement","styles","button","container","backgroundColor","white","color","text","preset","create","borderRadius","overflow","alignItems","flexDirection","gap","height","paddingLeft","paddingRight","paddingVertical"],"sources":["share-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { concatTestID } from '../../utils';\nimport { TouchableHighlight } from '../accessibility';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\nimport { LinkIcon } from '../icons';\n\nexport type ShareButtonProps = {\n onPress?: () => void;\n style?: StyleProp<ViewStyle>;\n title?: string;\n testID?: string;\n};\n\nconst ShareButton: FC<ShareButtonProps> = ({\n onPress,\n style,\n title,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n\n return (\n <TouchableHighlight onPress={onPress} style={[styles.button, style]} testID={testID}>\n <View style={[styles.container, { backgroundColor: colorScheme.white }]}>\n <LinkIcon color={colorScheme.text} />\n {title && (\n <Typography testID={concatTestID(testID, 'title')} color={colorScheme.text} preset=\"s\">\n {title}\n </Typography>\n )}\n </View>\n </TouchableHighlight>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n borderRadius: 5,\n overflow: 'hidden',\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n gap: 5,\n height: 32,\n paddingLeft: 4,\n paddingRight: 6,\n paddingVertical: 5,\n },\n});\n\nexport default ShareButton;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAAoBC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAErE,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,iBAAiB,QAAQ,UAAU;AAC5C,SAASC,QAAQ,QAAQ,UAAU;AASnC,MAAMC,WAAiC,GAAGA,CAAC;EACzCC,OAAO;EACPC,KAAK;EACLC,KAAK;EACLC;AACF,CAAC,KAAK;EACJ,MAAMC,WAAW,GAAGP,iBAAiB,CAAC,CAAC;EAEvC,oBACEN,KAAA,CAAAc,aAAA,CAACV,kBAAkB;IAACK,OAAO,EAAEA,OAAQ;IAACC,KAAK,EAAE,CAACK,MAAM,CAACC,MAAM,EAAEN,KAAK,CAAE;IAACE,MAAM,EAAEA;EAAO,gBAClFZ,KAAA,CAAAc,aAAA,CAACZ,IAAI;IAACQ,KAAK,EAAE,CAACK,MAAM,CAACE,SAAS,EAAE;MAAEC,eAAe,EAAEL,WAAW,CAACM;IAAM,CAAC;EAAE,gBACtEnB,KAAA,CAAAc,aAAA,CAACP,QAAQ;IAACa,KAAK,EAAEP,WAAW,CAACQ;EAAK,CAAE,CAAC,EACpCV,KAAK,iBACJX,KAAA,CAAAc,aAAA,CAACT,UAAU;IAACO,MAAM,EAAET,YAAY,CAACS,MAAM,EAAE,OAAO,CAAE;IAACQ,KAAK,EAAEP,WAAW,CAACQ,IAAK;IAACC,MAAM,EAAC;EAAG,GACnFX,KACS,CAEV,CACY,CAAC;AAEzB,CAAC;AAED,MAAMI,MAAM,GAAGd,UAAU,CAACsB,MAAM,CAAC;EAC/BP,MAAM,EAAE;IACNQ,YAAY,EAAE,CAAC;IACfC,QAAQ,EAAE;EACZ,CAAC;EACDR,SAAS,EAAE;IACTS,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE,EAAE;IACVC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC;AAEF,eAAexB,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","View","concatTestID","TouchableHighlight","LinkIcon","Typography","useAppColorScheme","ShareButton","onPress","style","title","testID","colorScheme","createElement","styles","button","container","backgroundColor","white","color","text","preset","create","borderRadius","overflow","alignItems","flexDirection","gap","height","paddingLeft","paddingRight","paddingVertical"],"sources":["share-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { concatTestID } from '../../utils';\nimport { TouchableHighlight } from '../accessibility';\nimport { LinkIcon } from '../icons';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport type ShareButtonProps = {\n onPress?: () => void;\n style?: StyleProp<ViewStyle>;\n title?: string;\n testID?: string;\n};\n\nconst ShareButton: FC<ShareButtonProps> = ({\n onPress,\n style,\n title,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n\n return (\n <TouchableHighlight onPress={onPress} style={[styles.button, style]} testID={testID}>\n <View style={[styles.container, { backgroundColor: colorScheme.white }]}>\n <LinkIcon color={colorScheme.text} />\n {title && (\n <Typography testID={concatTestID(testID, 'title')} color={colorScheme.text} preset=\"s\">\n {title}\n </Typography>\n )}\n </View>\n </TouchableHighlight>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n borderRadius: 5,\n overflow: 'hidden',\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n gap: 5,\n height: 32,\n paddingLeft: 4,\n paddingRight: 6,\n paddingVertical: 5,\n },\n});\n\nexport default ShareButton;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAAoBC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAErE,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,SAASC,QAAQ,QAAQ,UAAU;AACnC,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,iBAAiB,QAAQ,UAAU;AAS5C,MAAMC,WAAiC,GAAGA,CAAC;EACzCC,OAAO;EACPC,KAAK;EACLC,KAAK;EACLC;AACF,CAAC,KAAK;EACJ,MAAMC,WAAW,GAAGN,iBAAiB,CAAC,CAAC;EAEvC,oBACEP,KAAA,CAAAc,aAAA,CAACV,kBAAkB;IAACK,OAAO,EAAEA,OAAQ;IAACC,KAAK,EAAE,CAACK,MAAM,CAACC,MAAM,EAAEN,KAAK,CAAE;IAACE,MAAM,EAAEA;EAAO,gBAClFZ,KAAA,CAAAc,aAAA,CAACZ,IAAI;IAACQ,KAAK,EAAE,CAACK,MAAM,CAACE,SAAS,EAAE;MAAEC,eAAe,EAAEL,WAAW,CAACM;IAAM,CAAC;EAAE,gBACtEnB,KAAA,CAAAc,aAAA,CAACT,QAAQ;IAACe,KAAK,EAAEP,WAAW,CAACQ;EAAK,CAAE,CAAC,EACpCV,KAAK,iBACJX,KAAA,CAAAc,aAAA,CAACR,UAAU;IAACM,MAAM,EAAET,YAAY,CAACS,MAAM,EAAE,OAAO,CAAE;IAACQ,KAAK,EAAEP,WAAW,CAACQ,IAAK;IAACC,MAAM,EAAC;EAAG,GACnFX,KACS,CAEV,CACY,CAAC;AAEzB,CAAC;AAED,MAAMI,MAAM,GAAGd,UAAU,CAACsB,MAAM,CAAC;EAC/BP,MAAM,EAAE;IACNQ,YAAY,EAAE,CAAC;IACfC,QAAQ,EAAE;EACZ,CAAC;EACDR,SAAS,EAAE;IACTS,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE,EAAE;IACVC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC;AAEF,eAAexB,WAAW","ignoreList":[]}
@@ -1,6 +1,8 @@
1
+ import { useIsFocused } from '@react-navigation/native';
1
2
  import React, { useMemo } from 'react';
2
3
  import { StyleSheet, View } from 'react-native';
3
4
  import { Camera, useCameraDevice, useCodeScanner } from 'react-native-vision-camera';
5
+ import { useIsAppActive } from '../../utils';
4
6
  import CameraOverlay from './camera-overlay';
5
7
  const QRCodeScanner = ({
6
8
  cameraOverlay,
@@ -9,6 +11,8 @@ const QRCodeScanner = ({
9
11
  noCameraView = null,
10
12
  ...viewProps
11
13
  }) => {
14
+ const isFocused = useIsFocused();
15
+ const isAppActive = useIsAppActive();
12
16
  const qrCodeScanner = useCodeScanner({
13
17
  codeTypes,
14
18
  onCodeScanned: onQRCodeRead
@@ -31,7 +35,7 @@ const QRCodeScanner = ({
31
35
  return /*#__PURE__*/React.createElement(View, viewProps, /*#__PURE__*/React.createElement(Camera, {
32
36
  codeScanner: qrCodeScanner,
33
37
  device: device,
34
- isActive: true,
38
+ isActive: isFocused && isAppActive !== false,
35
39
  style: StyleSheet.absoluteFill
36
40
  }), cameraOverlayView);
37
41
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","StyleSheet","View","Camera","useCameraDevice","useCodeScanner","CameraOverlay","QRCodeScanner","cameraOverlay","codeTypes","onQRCodeRead","noCameraView","viewProps","qrCodeScanner","onCodeScanned","device","cameraOverlayView","createElement","isValidElement","CameraOverlayComponent","codeScanner","isActive","style","absoluteFill"],"sources":["qr-code-scanner.tsx"],"sourcesContent":["import React, { FunctionComponent, useMemo } from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\nimport { Camera, Code, CodeType, useCameraDevice, useCodeScanner } from 'react-native-vision-camera';\n\nimport CameraOverlay from './camera-overlay';\n\nexport type QRCodeScannerProps = ViewProps & {\n cameraOverlay?: React.ComponentType<any> | React.ReactElement;\n codeTypes?: CodeType[];\n noCameraView?: JSX.Element;\n onQRCodeRead: (code: Code[]) => void;\n};\n\nconst QRCodeScanner: FunctionComponent<QRCodeScannerProps> = ({\n cameraOverlay,\n codeTypes = ['qr'],\n onQRCodeRead,\n noCameraView = null,\n ...viewProps\n}) => {\n const qrCodeScanner = useCodeScanner({\n codeTypes,\n onCodeScanned: onQRCodeRead,\n });\n\n const device = useCameraDevice('back');\n\n const cameraOverlayView: React.ReactElement | undefined = useMemo(() => {\n if (!cameraOverlay) {\n return <CameraOverlay />;\n }\n if (React.isValidElement(cameraOverlay)) {\n return cameraOverlay;\n } else {\n const CameraOverlayComponent = cameraOverlay as React.ComponentType<any>;\n return <CameraOverlayComponent />;\n }\n }, [cameraOverlay]);\n\n if (!device) {\n return noCameraView;\n }\n\n return (\n <View {...viewProps}>\n <Camera codeScanner={qrCodeScanner} device={device} isActive={true} style={StyleSheet.absoluteFill} />\n {cameraOverlayView}\n </View>\n );\n};\n\nexport default QRCodeScanner;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAuBC,OAAO,QAAQ,OAAO;AACzD,SAASC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAC1D,SAASC,MAAM,EAAkBC,eAAe,EAAEC,cAAc,QAAQ,4BAA4B;AAEpG,OAAOC,aAAa,MAAM,kBAAkB;AAS5C,MAAMC,aAAoD,GAAGA,CAAC;EAC5DC,aAAa;EACbC,SAAS,GAAG,CAAC,IAAI,CAAC;EAClBC,YAAY;EACZC,YAAY,GAAG,IAAI;EACnB,GAAGC;AACL,CAAC,KAAK;EACJ,MAAMC,aAAa,GAAGR,cAAc,CAAC;IACnCI,SAAS;IACTK,aAAa,EAAEJ;EACjB,CAAC,CAAC;EAEF,MAAMK,MAAM,GAAGX,eAAe,CAAC,MAAM,CAAC;EAEtC,MAAMY,iBAAiD,GAAGhB,OAAO,CAAC,MAAM;IACtE,IAAI,CAACQ,aAAa,EAAE;MAClB,oBAAOT,KAAA,CAAAkB,aAAA,CAACX,aAAa,MAAE,CAAC;IAC1B;IACA,iBAAIP,KAAK,CAACmB,cAAc,CAACV,aAAa,CAAC,EAAE;MACvC,OAAOA,aAAa;IACtB,CAAC,MAAM;MACL,MAAMW,sBAAsB,GAAGX,aAAyC;MACxE,oBAAOT,KAAA,CAAAkB,aAAA,CAACE,sBAAsB,MAAE,CAAC;IACnC;EACF,CAAC,EAAE,CAACX,aAAa,CAAC,CAAC;EAEnB,IAAI,CAACO,MAAM,EAAE;IACX,OAAOJ,YAAY;EACrB;EAEA,oBACEZ,KAAA,CAAAkB,aAAA,CAACf,IAAI,EAAKU,SAAS,eACjBb,KAAA,CAAAkB,aAAA,CAACd,MAAM;IAACiB,WAAW,EAAEP,aAAc;IAACE,MAAM,EAAEA,MAAO;IAACM,QAAQ,EAAE,IAAK;IAACC,KAAK,EAAErB,UAAU,CAACsB;EAAa,CAAE,CAAC,EACrGP,iBACG,CAAC;AAEX,CAAC;AAED,eAAeT,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["useIsFocused","React","useMemo","StyleSheet","View","Camera","useCameraDevice","useCodeScanner","useIsAppActive","CameraOverlay","QRCodeScanner","cameraOverlay","codeTypes","onQRCodeRead","noCameraView","viewProps","isFocused","isAppActive","qrCodeScanner","onCodeScanned","device","cameraOverlayView","createElement","isValidElement","CameraOverlayComponent","codeScanner","isActive","style","absoluteFill"],"sources":["qr-code-scanner.tsx"],"sourcesContent":["import { useIsFocused } from '@react-navigation/native';\nimport React, { FunctionComponent, useMemo } from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\nimport { Camera, Code, CodeType, useCameraDevice, useCodeScanner } from 'react-native-vision-camera';\n\nimport { useIsAppActive } from '../../utils';\nimport CameraOverlay from './camera-overlay';\n\nexport type QRCodeScannerProps = ViewProps & {\n cameraOverlay?: React.ComponentType<any> | React.ReactElement;\n codeTypes?: CodeType[];\n noCameraView?: JSX.Element;\n onQRCodeRead: (code: Code[]) => void;\n};\n\nconst QRCodeScanner: FunctionComponent<QRCodeScannerProps> = ({\n cameraOverlay,\n codeTypes = ['qr'],\n onQRCodeRead,\n noCameraView = null,\n ...viewProps\n}) => {\n const isFocused = useIsFocused();\n const isAppActive = useIsAppActive();\n const qrCodeScanner = useCodeScanner({\n codeTypes,\n onCodeScanned: onQRCodeRead,\n });\n\n const device = useCameraDevice('back');\n\n const cameraOverlayView = useMemo(() => {\n if (!cameraOverlay) {\n return <CameraOverlay />;\n }\n if (React.isValidElement(cameraOverlay)) {\n return cameraOverlay;\n } else {\n const CameraOverlayComponent = cameraOverlay as React.ComponentType<any>;\n return <CameraOverlayComponent />;\n }\n }, [cameraOverlay]);\n\n if (!device) {\n return noCameraView;\n }\n\n return (\n <View {...viewProps}>\n <Camera\n codeScanner={qrCodeScanner}\n device={device}\n isActive={isFocused && isAppActive !== false}\n style={StyleSheet.absoluteFill}\n />\n {cameraOverlayView}\n </View>\n );\n};\n\nexport default QRCodeScanner;\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,0BAA0B;AACvD,OAAOC,KAAK,IAAuBC,OAAO,QAAQ,OAAO;AACzD,SAASC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAC1D,SAASC,MAAM,EAAkBC,eAAe,EAAEC,cAAc,QAAQ,4BAA4B;AAEpG,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,aAAa,MAAM,kBAAkB;AAS5C,MAAMC,aAAoD,GAAGA,CAAC;EAC5DC,aAAa;EACbC,SAAS,GAAG,CAAC,IAAI,CAAC;EAClBC,YAAY;EACZC,YAAY,GAAG,IAAI;EACnB,GAAGC;AACL,CAAC,KAAK;EACJ,MAAMC,SAAS,GAAGhB,YAAY,CAAC,CAAC;EAChC,MAAMiB,WAAW,GAAGT,cAAc,CAAC,CAAC;EACpC,MAAMU,aAAa,GAAGX,cAAc,CAAC;IACnCK,SAAS;IACTO,aAAa,EAAEN;EACjB,CAAC,CAAC;EAEF,MAAMO,MAAM,GAAGd,eAAe,CAAC,MAAM,CAAC;EAEtC,MAAMe,iBAAiB,GAAGnB,OAAO,CAAC,MAAM;IACtC,IAAI,CAACS,aAAa,EAAE;MAClB,oBAAOV,KAAA,CAAAqB,aAAA,CAACb,aAAa,MAAE,CAAC;IAC1B;IACA,iBAAIR,KAAK,CAACsB,cAAc,CAACZ,aAAa,CAAC,EAAE;MACvC,OAAOA,aAAa;IACtB,CAAC,MAAM;MACL,MAAMa,sBAAsB,GAAGb,aAAyC;MACxE,oBAAOV,KAAA,CAAAqB,aAAA,CAACE,sBAAsB,MAAE,CAAC;IACnC;EACF,CAAC,EAAE,CAACb,aAAa,CAAC,CAAC;EAEnB,IAAI,CAACS,MAAM,EAAE;IACX,OAAON,YAAY;EACrB;EAEA,oBACEb,KAAA,CAAAqB,aAAA,CAAClB,IAAI,EAAKW,SAAS,eACjBd,KAAA,CAAAqB,aAAA,CAACjB,MAAM;IACLoB,WAAW,EAAEP,aAAc;IAC3BE,MAAM,EAAEA,MAAO;IACfM,QAAQ,EAAEV,SAAS,IAAIC,WAAW,KAAK,KAAM;IAC7CU,KAAK,EAAExB,UAAU,CAACyB;EAAa,CAChC,CAAC,EACDP,iBACG,CAAC;AAEX,CAAC;AAED,eAAeX,aAAa","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { useCallback, useEffect, useState } from 'react';
3
- import { StyleSheet, View } from 'react-native';
4
- import Animated, { useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
2
+ import React, { useCallback, useState } from 'react';
3
+ import { StyleSheet } from 'react-native';
4
+ import Animated, { LinearTransition } from 'react-native-reanimated';
5
5
  import { CredentialCardRatio, CredentialCardShadow } from './credential-card';
6
6
  import CredentialDetailsCard from './credential-details-card';
7
7
  const CredentialDetailsCardListItem = ({
@@ -11,43 +11,12 @@ const CredentialDetailsCardListItem = ({
11
11
  style,
12
12
  ...props
13
13
  }) => {
14
- const [cardWidth, setCardWidth] = useState();
15
- const [minHeight, setMinHeight] = useState();
16
14
  const [detailsCardHeight, setDetailsCardHeight] = useState();
17
- const cardListItemHeight = useSharedValue(undefined);
18
- useEffect(() => {
19
- if (!detailsCardHeight || !minHeight) {
20
- return;
21
- }
22
- const newValue = expanded ? detailsCardHeight : minHeight;
23
- if (cardListItemHeight.value === undefined) {
24
- cardListItemHeight.value = newValue;
25
- return;
26
- }
27
- cardListItemHeight.value = withTiming(newValue, {
28
- duration: 250
29
- });
30
- }, [cardListItemHeight, detailsCardHeight, minHeight, expanded]);
31
- const animatedCardWrapperStyle = useAnimatedStyle(() => {
32
- if (cardListItemHeight.value !== undefined) {
33
- return {
34
- height: cardListItemHeight.value
35
- };
36
- }
37
- if (lastItem || expanded) {
38
- return {};
39
- }
40
- return {
41
- height: 60
42
- };
43
- }, [cardListItemHeight, lastItem, expanded]);
44
- const cardWrapperStyle = {
45
- minHeight: cardWidth ? Math.ceil(cardWidth / CredentialCardRatio) : undefined
46
- };
15
+ const cardWidth = props.card.width;
16
+ const minHeight = lastItem ? Math.ceil(cardWidth / CredentialCardRatio) : 60;
47
17
  const onContentLayout = useCallback(event => {
48
18
  var _StyleSheet$flatten$b, _StyleSheet$flatten;
49
19
  const {
50
- width,
51
20
  height
52
21
  } = event.nativeEvent.layout;
53
22
  const borderWidth = (_StyleSheet$flatten$b = (_StyleSheet$flatten = StyleSheet.flatten(style)) === null || _StyleSheet$flatten === void 0 ? void 0 : _StyleSheet$flatten.borderWidth) !== null && _StyleSheet$flatten$b !== void 0 ? _StyleSheet$flatten$b : 0;
@@ -55,16 +24,22 @@ const CredentialDetailsCardListItem = ({
55
24
  if (cardHeight === detailsCardHeight) {
56
25
  return;
57
26
  }
58
- setCardWidth(width);
59
- if (!minHeight) {
60
- setMinHeight(lastItem ? Math.ceil(width / CredentialCardRatio) : 60);
61
- }
62
27
  setDetailsCardHeight(cardHeight);
63
- }, [lastItem, minHeight, style, detailsCardHeight]);
28
+ }, [style, detailsCardHeight]);
64
29
  return /*#__PURE__*/React.createElement(Animated.View, {
65
- style: [styles.animatedWrapper, animatedCardWrapperStyle, style]
66
- }, /*#__PURE__*/React.createElement(View, {
67
- style: [styles.cardWrapper, cardWrapperStyle]
30
+ layout: LinearTransition,
31
+ style: [styles.animatedWrapper,
32
+ // eslint-disable-next-line react-native/no-inline-styles
33
+ {
34
+ height: expanded ? 'auto' : minHeight
35
+ }, style]
36
+ }, /*#__PURE__*/React.createElement(Animated.View, {
37
+ layout: LinearTransition,
38
+ style: [styles.cardWrapper,
39
+ // eslint-disable-next-line react-native/no-inline-styles
40
+ {
41
+ height: expanded ? 'auto' : Math.ceil(cardWidth / CredentialCardRatio)
42
+ }]
68
43
  }, /*#__PURE__*/React.createElement(CredentialDetailsCard, _extends({
69
44
  animate: false,
70
45
  expanded: true,
@@ -78,7 +53,6 @@ const styles = StyleSheet.create({
78
53
  },
79
54
  cardWrapper: {
80
55
  borderRadius: 10,
81
- height: '100%',
82
56
  overflow: 'hidden'
83
57
  }
84
58
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useState","StyleSheet","View","Animated","useAnimatedStyle","useSharedValue","withTiming","CredentialCardRatio","CredentialCardShadow","CredentialDetailsCard","CredentialDetailsCardListItem","detailsCardStyle","expanded","lastItem","style","props","cardWidth","setCardWidth","minHeight","setMinHeight","detailsCardHeight","setDetailsCardHeight","cardListItemHeight","undefined","newValue","value","duration","animatedCardWrapperStyle","height","cardWrapperStyle","Math","ceil","onContentLayout","event","_StyleSheet$flatten$b","_StyleSheet$flatten","width","nativeEvent","layout","borderWidth","flatten","cardHeight","round","createElement","styles","animatedWrapper","cardWrapper","_extends","animate","onLayout","create","borderRadius","overflow"],"sources":["credential-details-list-item.tsx"],"sourcesContent":["import React, { FC, useCallback, useEffect, useState } from 'react';\nimport { LayoutChangeEvent, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\nimport Animated, { useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';\n\nimport { CredentialCardRatio, CredentialCardShadow } from './credential-card';\nimport CredentialDetailsCard, { CredentialDetailsCardProps } from './credential-details-card';\n\nexport type CredentialDetailsCardListItemProps = Omit<CredentialDetailsCardProps, 'animate'> & {\n detailsCardStyle?: StyleProp<ViewStyle>;\n lastItem?: boolean;\n};\n\nconst CredentialDetailsCardListItem: FC<CredentialDetailsCardListItemProps> = ({\n detailsCardStyle,\n expanded,\n lastItem,\n style,\n ...props\n}) => {\n const [cardWidth, setCardWidth] = useState<number>();\n const [minHeight, setMinHeight] = useState<number>();\n const [detailsCardHeight, setDetailsCardHeight] = useState<number>();\n\n const cardListItemHeight = useSharedValue<number | undefined>(undefined);\n\n useEffect(() => {\n if (!detailsCardHeight || !minHeight) {\n return;\n }\n const newValue = expanded ? detailsCardHeight : minHeight;\n if (cardListItemHeight.value === undefined) {\n cardListItemHeight.value = newValue;\n return;\n }\n cardListItemHeight.value = withTiming(newValue, {\n duration: 250,\n });\n }, [cardListItemHeight, detailsCardHeight, minHeight, expanded]);\n\n const animatedCardWrapperStyle = useAnimatedStyle(() => {\n if (cardListItemHeight.value !== undefined) {\n return {\n height: cardListItemHeight.value,\n };\n }\n if (lastItem || expanded) {\n return {};\n }\n return {\n height: 60,\n };\n }, [cardListItemHeight, lastItem, expanded]);\n\n const cardWrapperStyle: ViewStyle = {\n minHeight: cardWidth ? Math.ceil(cardWidth / CredentialCardRatio) : undefined,\n }\n\n const onContentLayout = useCallback(\n (event: LayoutChangeEvent) => {\n const { width, height } = event.nativeEvent.layout;\n const borderWidth = StyleSheet.flatten(style)?.borderWidth ?? 0;\n const cardHeight = Math.round(height) + 2 * borderWidth;\n if (cardHeight === detailsCardHeight) {\n return;\n }\n setCardWidth(width);\n if (!minHeight) {\n setMinHeight(lastItem ? Math.ceil(width / CredentialCardRatio) : 60);\n }\n setDetailsCardHeight(cardHeight);\n },\n [lastItem, minHeight, style, detailsCardHeight],\n );\n\n return (\n <Animated.View style={[styles.animatedWrapper, animatedCardWrapperStyle, style]}>\n <View style={[styles.cardWrapper, cardWrapperStyle]}>\n <CredentialDetailsCard\n animate={false}\n expanded={true}\n onLayout={onContentLayout}\n style={detailsCardStyle}\n {...props}\n />\n </View>\n </Animated.View>\n );\n};\n\nconst styles = StyleSheet.create({\n animatedWrapper: {\n ...CredentialCardShadow,\n },\n cardWrapper: {\n borderRadius: 10,\n height: '100%',\n overflow: 'hidden',\n },\n});\n\nexport default CredentialDetailsCardListItem;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useState","StyleSheet","Animated","LinearTransition","CredentialCardRatio","CredentialCardShadow","CredentialDetailsCard","CredentialDetailsCardListItem","detailsCardStyle","expanded","lastItem","style","props","detailsCardHeight","setDetailsCardHeight","cardWidth","card","width","minHeight","Math","ceil","onContentLayout","event","_StyleSheet$flatten$b","_StyleSheet$flatten","height","nativeEvent","layout","borderWidth","flatten","cardHeight","round","createElement","View","styles","animatedWrapper","cardWrapper","_extends","animate","onLayout","create","borderRadius","overflow"],"sources":["credential-details-list-item.tsx"],"sourcesContent":["import React, { FC, useCallback, useState } from 'react';\nimport { LayoutChangeEvent, StyleProp, StyleSheet, ViewStyle } from 'react-native';\nimport Animated, { LinearTransition } from 'react-native-reanimated';\n\nimport { CredentialCardRatio, CredentialCardShadow } from './credential-card';\nimport CredentialDetailsCard, { CredentialDetailsCardProps } from './credential-details-card';\n\nexport type CredentialDetailsCardListItemProps = Omit<CredentialDetailsCardProps, 'animate'> & {\n detailsCardStyle?: StyleProp<ViewStyle>;\n lastItem?: boolean;\n};\n\nconst CredentialDetailsCardListItem: FC<CredentialDetailsCardListItemProps> = ({\n detailsCardStyle,\n expanded,\n lastItem,\n style,\n ...props\n}) => {\n const [detailsCardHeight, setDetailsCardHeight] = useState<number>();\n const cardWidth = props.card.width;\n const minHeight = lastItem ? Math.ceil(cardWidth / CredentialCardRatio) : 60;\n\n const onContentLayout = useCallback(\n (event: LayoutChangeEvent) => {\n const { height } = event.nativeEvent.layout;\n const borderWidth = StyleSheet.flatten(style)?.borderWidth ?? 0;\n const cardHeight = Math.round(height) + 2 * borderWidth;\n if (cardHeight === detailsCardHeight) {\n return;\n }\n setDetailsCardHeight(cardHeight);\n },\n [style, detailsCardHeight],\n );\n\n return (\n <Animated.View\n layout={LinearTransition}\n style={[\n styles.animatedWrapper,\n // eslint-disable-next-line react-native/no-inline-styles\n {\n height: expanded ? 'auto' : minHeight,\n },\n style,\n ]}>\n <Animated.View\n layout={LinearTransition}\n style={[\n styles.cardWrapper,\n // eslint-disable-next-line react-native/no-inline-styles\n {\n height: expanded ? 'auto' : Math.ceil(cardWidth / CredentialCardRatio),\n },\n ]}>\n <CredentialDetailsCard\n animate={false}\n expanded={true}\n onLayout={onContentLayout}\n style={detailsCardStyle}\n {...props}\n />\n </Animated.View>\n </Animated.View>\n );\n};\n\nconst styles = StyleSheet.create({\n animatedWrapper: {\n ...CredentialCardShadow,\n },\n cardWrapper: {\n borderRadius: 10,\n overflow: 'hidden',\n },\n});\n\nexport default CredentialDetailsCardListItem;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAQC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACxD,SAAuCC,UAAU,QAAmB,cAAc;AAClF,OAAOC,QAAQ,IAAIC,gBAAgB,QAAQ,yBAAyB;AAEpE,SAASC,mBAAmB,EAAEC,oBAAoB,QAAQ,mBAAmB;AAC7E,OAAOC,qBAAqB,MAAsC,2BAA2B;AAO7F,MAAMC,6BAAqE,GAAGA,CAAC;EAC7EC,gBAAgB;EAChBC,QAAQ;EACRC,QAAQ;EACRC,KAAK;EACL,GAAGC;AACL,CAAC,KAAK;EACJ,MAAM,CAACC,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGd,QAAQ,CAAS,CAAC;EACpE,MAAMe,SAAS,GAAGH,KAAK,CAACI,IAAI,CAACC,KAAK;EAClC,MAAMC,SAAS,GAAGR,QAAQ,GAAGS,IAAI,CAACC,IAAI,CAACL,SAAS,GAAGX,mBAAmB,CAAC,GAAG,EAAE;EAE5E,MAAMiB,eAAe,GAAGtB,WAAW,CAChCuB,KAAwB,IAAK;IAAA,IAAAC,qBAAA,EAAAC,mBAAA;IAC5B,MAAM;MAAEC;IAAO,CAAC,GAAGH,KAAK,CAACI,WAAW,CAACC,MAAM;IAC3C,MAAMC,WAAW,IAAAL,qBAAA,IAAAC,mBAAA,GAAGvB,UAAU,CAAC4B,OAAO,CAAClB,KAAK,CAAC,cAAAa,mBAAA,uBAAzBA,mBAAA,CAA2BI,WAAW,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC;IAC/D,MAAMO,UAAU,GAAGX,IAAI,CAACY,KAAK,CAACN,MAAM,CAAC,GAAG,CAAC,GAAGG,WAAW;IACvD,IAAIE,UAAU,KAAKjB,iBAAiB,EAAE;MACpC;IACF;IACAC,oBAAoB,CAACgB,UAAU,CAAC;EAClC,CAAC,EACD,CAACnB,KAAK,EAAEE,iBAAiB,CAC3B,CAAC;EAED,oBACEf,KAAA,CAAAkC,aAAA,CAAC9B,QAAQ,CAAC+B,IAAI;IACZN,MAAM,EAAExB,gBAAiB;IACzBQ,KAAK,EAAE,CACLuB,MAAM,CAACC,eAAe;IACtB;IACA;MACEV,MAAM,EAAEhB,QAAQ,GAAG,MAAM,GAAGS;IAC9B,CAAC,EACDP,KAAK;EACL,gBACFb,KAAA,CAAAkC,aAAA,CAAC9B,QAAQ,CAAC+B,IAAI;IACZN,MAAM,EAAExB,gBAAiB;IACzBQ,KAAK,EAAE,CACLuB,MAAM,CAACE,WAAW;IAClB;IACA;MACEX,MAAM,EAAEhB,QAAQ,GAAG,MAAM,GAAGU,IAAI,CAACC,IAAI,CAACL,SAAS,GAAGX,mBAAmB;IACvE,CAAC;EACD,gBACFN,KAAA,CAAAkC,aAAA,CAAC1B,qBAAqB,EAAA+B,QAAA;IACpBC,OAAO,EAAE,KAAM;IACf7B,QAAQ,EAAE,IAAK;IACf8B,QAAQ,EAAElB,eAAgB;IAC1BV,KAAK,EAAEH;EAAiB,GACpBI,KAAK,CACV,CACY,CACF,CAAC;AAEpB,CAAC;AAED,MAAMsB,MAAM,GAAGjC,UAAU,CAACuC,MAAM,CAAC;EAC/BL,eAAe,EAAE;IACf,GAAG9B;EACL,CAAC;EACD+B,WAAW,EAAE;IACXK,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEF,eAAenC,6BAA6B","ignoreList":[]}
@@ -254,7 +254,9 @@ const styles = StyleSheet.create({
254
254
  paddingLeft: 12
255
255
  },
256
256
  rightAccessory: {
257
- paddingHorizontal: 8
257
+ paddingHorizontal: 8,
258
+ position: 'absolute',
259
+ right: 0
258
260
  },
259
261
  separator: {
260
262
  height: 1,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","Image","StyleSheet","View","colorWithAlphaComponent","concatTestID","TouchableHighlight","TouchableOpacity","Typography","useAppColorScheme","CredentialAttributeItemButton","children","disabled","id","onPress","selected","colorScheme","pressHandler","createElement","style","styles","touchableAttribute","activeOpacity","backgroundColor","background","underlayColor","IMAGE_SIZE","CredentialAttributeItem","attributes","image","last","name","onImagePreview","rightAccessory","nested","listValue","testID","value","values","valueErrorColor","imagePreviewHandler","rightAccessoryView","undefined","isValidElement","RightAccessoryComponent","isObject","length","isArray","attributeItemContainer","attributeItemRow","dataItemButtonChildren","decorator","decoratorCircle","listDecoratorCircle","listImageDecoratorCircle","text","decoratorCircleInner","borderColor","decoratorLine","listDecoratorLine","listStringValueDecoratorLine","listImageDecoratorLine","objectAttributeItem","attributeItem","nestedAttributeItem","color","preset","nestedObjectLabel","dataItemLabel","dataItemImageWrapper","resizeMode","source","dataItemImage","error","numberOfLines","map","attribute","index","_extends","key","arrayValue","objectAccessory","separator","create","flex","paddingLeft","marginTop","flexDirection","alignItems","height","width","borderRadius","borderWidth","overflow","marginBottom","opacity","justifyContent","left","position","top","bottom","marginLeft","paddingVertical","alignSelf","paddingHorizontal","marginHorizontal"],"sources":["credential-attribute-item.tsx"],"sourcesContent":["import React, { ComponentType, FC, PropsWithChildren, ReactElement, useCallback, useMemo } from 'react';\nimport { Image, ImageSourcePropType, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { colorWithAlphaComponent } from '../../utils/color';\nimport { concatTestID } from '../../utils/testID';\nimport { TouchableHighlight, TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport Typography from '../text/typography';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\ntype CredentialAttributeItemButtonProps = {\n disabled?: boolean;\n id: string;\n onPress?: (id: string, selected: boolean) => void;\n selected?: boolean;\n};\n\nconst CredentialAttributeItemButton: FC<PropsWithChildren<CredentialAttributeItemButtonProps>> = ({\n children,\n disabled,\n id,\n onPress,\n selected,\n}) => {\n const colorScheme = useAppColorScheme();\n\n const pressHandler = useCallback(() => {\n if (!onPress) {\n return;\n }\n onPress(id, !selected);\n }, [onPress, id, selected]);\n\n if (!onPress) {\n return <View style={styles.touchableAttribute}>{children}</View>;\n }\n\n if (selected) {\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={disabled}\n onPress={pressHandler}\n style={[styles.touchableAttribute, { backgroundColor: colorScheme.background }]}>\n {children}\n </TouchableOpacity>\n );\n }\n\n return (\n <TouchableHighlight\n disabled={disabled}\n onPress={pressHandler}\n underlayColor={colorWithAlphaComponent(colorScheme.background, 0.5)}\n style={styles.touchableAttribute}>\n {children}\n </TouchableHighlight>\n );\n};\n\nconst IMAGE_SIZE = 64;\n\nexport type CredentialAttributeValue =\n | {\n attributes: CredentialAttribute[];\n image?: never;\n value?: never;\n values?: never;\n valueErrorColor?: never;\n testID?: string;\n }\n | {\n attributes?: never;\n image: ImageSourcePropType;\n value?: never;\n values?: never;\n valueErrorColor?: never;\n testID?: string;\n }\n | {\n attributes?: never;\n image?: never;\n value: string;\n values?: never;\n valueErrorColor?: boolean;\n testID?: string;\n }\n | {\n attributes?: never;\n image?: never;\n value?: never;\n values: CredentialAttribute[];\n valueErrorColor?: boolean;\n testID?: string;\n };\n\nexport type CredentialAttribute = CredentialAttributeValue & {\n disabled?: boolean;\n selected?: boolean;\n nested?: boolean;\n listValue?: boolean;\n id: string;\n name?: string;\n path: string;\n rightAccessory?: ComponentType<any> | ReactElement;\n};\n\nexport type CredentialAttributeItemProps = CredentialAttribute & {\n last: boolean | undefined;\n onImagePreview?: (name: string, image: ImageSourcePropType) => void;\n onPress?: (id: string, selected: boolean) => void;\n style?: StyleProp<ViewStyle>;\n};\n\nconst CredentialAttributeItem: FC<CredentialAttributeItemProps> = ({\n attributes,\n disabled,\n id,\n image,\n last,\n name,\n onImagePreview,\n onPress,\n rightAccessory,\n nested = false,\n listValue = false,\n selected,\n style,\n testID,\n value,\n values,\n valueErrorColor,\n}) => {\n const colorScheme = useAppColorScheme();\n\n const imagePreviewHandler = useCallback(() => {\n if (!onImagePreview || !image) {\n return;\n }\n onImagePreview(name ?? '', image);\n }, [image, name, onImagePreview]);\n\n const rightAccessoryView: React.ReactElement | undefined = useMemo(() => {\n if (!rightAccessory) {\n return undefined;\n }\n if (React.isValidElement(rightAccessory)) {\n return rightAccessory;\n } else {\n const RightAccessoryComponent = rightAccessory as React.ComponentType<any>;\n return <RightAccessoryComponent />;\n }\n }, [rightAccessory]);\n\n const isObject = attributes && attributes.length > 0;\n const isArray = values && values.length > 0;\n\n return (\n <View style={[!nested && styles.attributeItemContainer, style]} testID={testID}>\n <View style={styles.attributeItemRow}>\n <CredentialAttributeItemButton disabled={disabled} id={id} onPress={onPress} selected={selected}>\n <View style={[styles.dataItemButtonChildren]}>\n {(isObject || isArray || listValue) && (\n <View style={styles.decorator}>\n <View\n style={[\n styles.decoratorCircle,\n listValue ? styles.listDecoratorCircle : undefined,\n listValue && image ? styles.listImageDecoratorCircle : undefined,\n { backgroundColor: colorScheme.text },\n ]}>\n <View\n style={[\n styles.decoratorCircleInner,\n { backgroundColor: colorScheme.text, borderColor: colorScheme.background },\n ]}\n />\n </View>\n <View\n style={[\n styles.decoratorLine,\n listValue ? styles.listDecoratorLine : undefined,\n listValue && value ? styles.listStringValueDecoratorLine : undefined,\n listValue && image ? styles.listImageDecoratorLine : undefined,\n { backgroundColor: colorScheme.text },\n ]}\n />\n </View>\n )}\n <View\n style={[\n isObject || isArray || listValue ? styles.objectAttributeItem : styles.attributeItem,\n nested && styles.nestedAttributeItem,\n ]}>\n {name && (\n <Typography\n color={colorScheme.text}\n preset={image ? 'xs' : 'xs/line-height-small'}\n style={isObject || isArray ? styles.nestedObjectLabel : styles.dataItemLabel}\n testID={concatTestID(testID, 'title')}>\n {name}\n </Typography>\n )}\n {image && (\n <TouchableOpacity\n disabled={!onImagePreview}\n onPress={imagePreviewHandler}\n style={[styles.dataItemImageWrapper, listValue ? styles.listValue : undefined]}>\n <Image\n resizeMode=\"cover\"\n testID={concatTestID(testID, 'image')}\n source={image}\n style={styles.dataItemImage}\n />\n </TouchableOpacity>\n )}\n {value && (\n <Typography\n color={valueErrorColor ? colorScheme.error : colorScheme.text}\n numberOfLines={10}\n preset=\"s\"\n style={listValue ? styles.listValue : undefined}\n testID={concatTestID(testID, 'value')}>\n {value}\n </Typography>\n )}\n {isObject &&\n attributes.map((attribute, index, { length }) => (\n <CredentialAttributeItem\n nested={true}\n key={attribute.id}\n onPress={onPress}\n last={index === length - 1}\n onImagePreview={onImagePreview}\n {...attribute}\n />\n ))}\n {isArray &&\n values.map((arrayValue, index, { length }) => (\n <CredentialAttributeItem\n key={arrayValue.id}\n onPress={onPress}\n last={index === length - 1}\n onImagePreview={onImagePreview}\n listValue={true}\n {...arrayValue}\n name={undefined}\n />\n ))}\n <View />\n </View>\n {rightAccessoryView && (\n <View style={[styles.rightAccessory, isObject && styles.objectAccessory]}>{rightAccessoryView}</View>\n )}\n </View>\n </CredentialAttributeItemButton>\n </View>\n {!last && !nested && <View style={[styles.separator, { backgroundColor: colorScheme.background }]} />}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n attributeItem: {\n flex: 1,\n paddingLeft: 8,\n },\n attributeItemContainer: {\n marginTop: 2,\n },\n attributeItemRow: {\n flexDirection: 'row',\n },\n dataItemButtonChildren: {\n alignItems: 'center',\n flexDirection: 'row',\n },\n dataItemImage: {\n height: IMAGE_SIZE,\n width: IMAGE_SIZE,\n },\n dataItemImageWrapper: {\n borderColor: '#0004',\n borderRadius: 4,\n borderWidth: 0.5,\n height: IMAGE_SIZE,\n marginTop: 4,\n overflow: 'hidden',\n width: IMAGE_SIZE,\n },\n dataItemLabel: {\n marginBottom: 4,\n opacity: 0.7,\n },\n decorator: {\n height: '100%',\n justifyContent: 'center',\n left: 8,\n position: 'absolute',\n },\n decoratorCircle: {\n alignItems: 'center',\n borderRadius: 3.5,\n borderWidth: 1,\n height: 7,\n justifyContent: 'center',\n position: 'absolute',\n top: 6,\n width: 7,\n },\n decoratorCircleInner: {\n borderRadius: 2,\n borderWidth: 1,\n height: 4,\n width: 4,\n },\n decoratorLine: {\n bottom: 12,\n left: 3,\n position: 'absolute',\n top: 13,\n width: 1,\n },\n listDecoratorCircle: {\n top: 18,\n },\n listDecoratorLine: {\n top: 25,\n },\n listImageDecoratorCircle: {\n top: 32,\n },\n listImageDecoratorLine: {\n bottom: 40,\n top: 39,\n },\n listStringValueDecoratorLine: {\n bottom: 24,\n },\n listValue: {\n marginLeft: 13,\n paddingVertical: 10,\n },\n nestedAttributeItem: {\n paddingLeft: 12,\n },\n nestedObjectLabel: {\n opacity: 0.7,\n paddingLeft: 13,\n },\n objectAccessory: {\n alignSelf: 'flex-start',\n },\n objectAttributeItem: {\n alignItems: 'stretch',\n flex: 1,\n paddingLeft: 12,\n },\n rightAccessory: {\n paddingHorizontal: 8,\n },\n separator: {\n height: 1,\n marginHorizontal: 8,\n marginTop: -1,\n },\n touchableAttribute: {\n borderRadius: 8,\n flex: 1,\n paddingVertical: 11,\n },\n});\n\nexport default CredentialAttributeItem;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","Image","StyleSheet","View","colorWithAlphaComponent","concatTestID","TouchableHighlight","TouchableOpacity","Typography","useAppColorScheme","CredentialAttributeItemButton","children","disabled","id","onPress","selected","colorScheme","pressHandler","createElement","style","styles","touchableAttribute","activeOpacity","backgroundColor","background","underlayColor","IMAGE_SIZE","CredentialAttributeItem","attributes","image","last","name","onImagePreview","rightAccessory","nested","listValue","testID","value","values","valueErrorColor","imagePreviewHandler","rightAccessoryView","undefined","isValidElement","RightAccessoryComponent","isObject","length","isArray","attributeItemContainer","attributeItemRow","dataItemButtonChildren","decorator","decoratorCircle","listDecoratorCircle","listImageDecoratorCircle","text","decoratorCircleInner","borderColor","decoratorLine","listDecoratorLine","listStringValueDecoratorLine","listImageDecoratorLine","objectAttributeItem","attributeItem","nestedAttributeItem","color","preset","nestedObjectLabel","dataItemLabel","dataItemImageWrapper","resizeMode","source","dataItemImage","error","numberOfLines","map","attribute","index","_extends","key","arrayValue","objectAccessory","separator","create","flex","paddingLeft","marginTop","flexDirection","alignItems","height","width","borderRadius","borderWidth","overflow","marginBottom","opacity","justifyContent","left","position","top","bottom","marginLeft","paddingVertical","alignSelf","paddingHorizontal","right","marginHorizontal"],"sources":["credential-attribute-item.tsx"],"sourcesContent":["import React, { ComponentType, FC, PropsWithChildren, ReactElement, useCallback, useMemo } from 'react';\nimport { Image, ImageSourcePropType, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { colorWithAlphaComponent } from '../../utils/color';\nimport { concatTestID } from '../../utils/testID';\nimport { TouchableHighlight, TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport Typography from '../text/typography';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\ntype CredentialAttributeItemButtonProps = {\n disabled?: boolean;\n id: string;\n onPress?: (id: string, selected: boolean) => void;\n selected?: boolean;\n};\n\nconst CredentialAttributeItemButton: FC<PropsWithChildren<CredentialAttributeItemButtonProps>> = ({\n children,\n disabled,\n id,\n onPress,\n selected,\n}) => {\n const colorScheme = useAppColorScheme();\n\n const pressHandler = useCallback(() => {\n if (!onPress) {\n return;\n }\n onPress(id, !selected);\n }, [onPress, id, selected]);\n\n if (!onPress) {\n return <View style={styles.touchableAttribute}>{children}</View>;\n }\n\n if (selected) {\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={disabled}\n onPress={pressHandler}\n style={[styles.touchableAttribute, { backgroundColor: colorScheme.background }]}>\n {children}\n </TouchableOpacity>\n );\n }\n\n return (\n <TouchableHighlight\n disabled={disabled}\n onPress={pressHandler}\n underlayColor={colorWithAlphaComponent(colorScheme.background, 0.5)}\n style={styles.touchableAttribute}>\n {children}\n </TouchableHighlight>\n );\n};\n\nconst IMAGE_SIZE = 64;\n\nexport type CredentialAttributeValue =\n | {\n attributes: CredentialAttribute[];\n image?: never;\n value?: never;\n values?: never;\n valueErrorColor?: never;\n testID?: string;\n }\n | {\n attributes?: never;\n image: ImageSourcePropType;\n value?: never;\n values?: never;\n valueErrorColor?: never;\n testID?: string;\n }\n | {\n attributes?: never;\n image?: never;\n value: string;\n values?: never;\n valueErrorColor?: boolean;\n testID?: string;\n }\n | {\n attributes?: never;\n image?: never;\n value?: never;\n values: CredentialAttribute[];\n valueErrorColor?: boolean;\n testID?: string;\n };\n\nexport type CredentialAttribute = CredentialAttributeValue & {\n disabled?: boolean;\n selected?: boolean;\n nested?: boolean;\n listValue?: boolean;\n id: string;\n name?: string;\n path: string;\n rightAccessory?: ComponentType<any> | ReactElement;\n};\n\nexport type CredentialAttributeItemProps = CredentialAttribute & {\n last: boolean | undefined;\n onImagePreview?: (name: string, image: ImageSourcePropType) => void;\n onPress?: (id: string, selected: boolean) => void;\n style?: StyleProp<ViewStyle>;\n};\n\nconst CredentialAttributeItem: FC<CredentialAttributeItemProps> = ({\n attributes,\n disabled,\n id,\n image,\n last,\n name,\n onImagePreview,\n onPress,\n rightAccessory,\n nested = false,\n listValue = false,\n selected,\n style,\n testID,\n value,\n values,\n valueErrorColor,\n}) => {\n const colorScheme = useAppColorScheme();\n\n const imagePreviewHandler = useCallback(() => {\n if (!onImagePreview || !image) {\n return;\n }\n onImagePreview(name ?? '', image);\n }, [image, name, onImagePreview]);\n\n const rightAccessoryView: React.ReactElement | undefined = useMemo(() => {\n if (!rightAccessory) {\n return undefined;\n }\n if (React.isValidElement(rightAccessory)) {\n return rightAccessory;\n } else {\n const RightAccessoryComponent = rightAccessory as React.ComponentType<any>;\n return <RightAccessoryComponent />;\n }\n }, [rightAccessory]);\n\n const isObject = attributes && attributes.length > 0;\n const isArray = values && values.length > 0;\n\n return (\n <View style={[!nested && styles.attributeItemContainer, style]} testID={testID}>\n <View style={styles.attributeItemRow}>\n <CredentialAttributeItemButton disabled={disabled} id={id} onPress={onPress} selected={selected}>\n <View style={[styles.dataItemButtonChildren]}>\n {(isObject || isArray || listValue) && (\n <View style={styles.decorator}>\n <View\n style={[\n styles.decoratorCircle,\n listValue ? styles.listDecoratorCircle : undefined,\n listValue && image ? styles.listImageDecoratorCircle : undefined,\n { backgroundColor: colorScheme.text },\n ]}>\n <View\n style={[\n styles.decoratorCircleInner,\n { backgroundColor: colorScheme.text, borderColor: colorScheme.background },\n ]}\n />\n </View>\n <View\n style={[\n styles.decoratorLine,\n listValue ? styles.listDecoratorLine : undefined,\n listValue && value ? styles.listStringValueDecoratorLine : undefined,\n listValue && image ? styles.listImageDecoratorLine : undefined,\n { backgroundColor: colorScheme.text },\n ]}\n />\n </View>\n )}\n <View\n style={[\n isObject || isArray || listValue ? styles.objectAttributeItem : styles.attributeItem,\n nested && styles.nestedAttributeItem,\n ]}>\n {name && (\n <Typography\n color={colorScheme.text}\n preset={image ? 'xs' : 'xs/line-height-small'}\n style={isObject || isArray ? styles.nestedObjectLabel : styles.dataItemLabel}\n testID={concatTestID(testID, 'title')}>\n {name}\n </Typography>\n )}\n {image && (\n <TouchableOpacity\n disabled={!onImagePreview}\n onPress={imagePreviewHandler}\n style={[styles.dataItemImageWrapper, listValue ? styles.listValue : undefined]}>\n <Image\n resizeMode=\"cover\"\n testID={concatTestID(testID, 'image')}\n source={image}\n style={styles.dataItemImage}\n />\n </TouchableOpacity>\n )}\n {value && (\n <Typography\n color={valueErrorColor ? colorScheme.error : colorScheme.text}\n numberOfLines={10}\n preset=\"s\"\n style={listValue ? styles.listValue : undefined}\n testID={concatTestID(testID, 'value')}>\n {value}\n </Typography>\n )}\n {isObject &&\n attributes.map((attribute, index, { length }) => (\n <CredentialAttributeItem\n nested={true}\n key={attribute.id}\n onPress={onPress}\n last={index === length - 1}\n onImagePreview={onImagePreview}\n {...attribute}\n />\n ))}\n {isArray &&\n values.map((arrayValue, index, { length }) => (\n <CredentialAttributeItem\n key={arrayValue.id}\n onPress={onPress}\n last={index === length - 1}\n onImagePreview={onImagePreview}\n listValue={true}\n {...arrayValue}\n name={undefined}\n />\n ))}\n <View />\n </View>\n {rightAccessoryView && (\n <View style={[styles.rightAccessory, isObject && styles.objectAccessory]}>{rightAccessoryView}</View>\n )}\n </View>\n </CredentialAttributeItemButton>\n </View>\n {!last && !nested && <View style={[styles.separator, { backgroundColor: colorScheme.background }]} />}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n attributeItem: {\n flex: 1,\n paddingLeft: 8,\n },\n attributeItemContainer: {\n marginTop: 2,\n },\n attributeItemRow: {\n flexDirection: 'row',\n },\n dataItemButtonChildren: {\n alignItems: 'center',\n flexDirection: 'row',\n },\n dataItemImage: {\n height: IMAGE_SIZE,\n width: IMAGE_SIZE,\n },\n dataItemImageWrapper: {\n borderColor: '#0004',\n borderRadius: 4,\n borderWidth: 0.5,\n height: IMAGE_SIZE,\n marginTop: 4,\n overflow: 'hidden',\n width: IMAGE_SIZE,\n },\n dataItemLabel: {\n marginBottom: 4,\n opacity: 0.7,\n },\n decorator: {\n height: '100%',\n justifyContent: 'center',\n left: 8,\n position: 'absolute',\n },\n decoratorCircle: {\n alignItems: 'center',\n borderRadius: 3.5,\n borderWidth: 1,\n height: 7,\n justifyContent: 'center',\n position: 'absolute',\n top: 6,\n width: 7,\n },\n decoratorCircleInner: {\n borderRadius: 2,\n borderWidth: 1,\n height: 4,\n width: 4,\n },\n decoratorLine: {\n bottom: 12,\n left: 3,\n position: 'absolute',\n top: 13,\n width: 1,\n },\n listDecoratorCircle: {\n top: 18,\n },\n listDecoratorLine: {\n top: 25,\n },\n listImageDecoratorCircle: {\n top: 32,\n },\n listImageDecoratorLine: {\n bottom: 40,\n top: 39,\n },\n listStringValueDecoratorLine: {\n bottom: 24,\n },\n listValue: {\n marginLeft: 13,\n paddingVertical: 10,\n },\n nestedAttributeItem: {\n paddingLeft: 12,\n },\n nestedObjectLabel: {\n opacity: 0.7,\n paddingLeft: 13,\n },\n objectAccessory: {\n alignSelf: 'flex-start',\n },\n objectAttributeItem: {\n alignItems: 'stretch',\n flex: 1,\n paddingLeft: 12,\n },\n rightAccessory: {\n paddingHorizontal: 8,\n position: 'absolute',\n right: 0,\n },\n separator: {\n height: 1,\n marginHorizontal: 8,\n marginTop: -1,\n },\n touchableAttribute: {\n borderRadius: 8,\n flex: 1,\n paddingVertical: 11,\n },\n});\n\nexport default CredentialAttributeItem;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,64 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import React, { useMemo } from 'react';
3
+ import { StyleSheet, View } from 'react-native';
4
+ import { concatTestID } from '../../../utils';
5
+ import { Typography } from '../../text';
6
+ import { useAppColorScheme } from '../../theme';
7
+ const CredentialGroupHeader = ({
8
+ accessory,
9
+ name,
10
+ style,
11
+ testID,
12
+ ...props
13
+ }) => {
14
+ const colorScheme = useAppColorScheme();
15
+ const accessoryView = useMemo(() => {
16
+ if (!accessory) {
17
+ return undefined;
18
+ }
19
+ if (/*#__PURE__*/React.isValidElement(accessory)) {
20
+ return accessory;
21
+ } else {
22
+ const AccessoryComponent = accessory;
23
+ return /*#__PURE__*/React.createElement(AccessoryComponent, null);
24
+ }
25
+ }, [accessory]);
26
+ return /*#__PURE__*/React.createElement(View, _extends({}, props, {
27
+ style: [styles.container, style],
28
+ testID: testID
29
+ }), /*#__PURE__*/React.createElement(View, {
30
+ style: styles.text
31
+ }, /*#__PURE__*/React.createElement(Typography, {
32
+ color: colorScheme.white,
33
+ ellipsizeMode: 'tail',
34
+ numberOfLines: 1,
35
+ preset: "regular",
36
+ style: styles.nameText,
37
+ testID: concatTestID(testID, 'name')
38
+ }, name)), accessoryView && /*#__PURE__*/React.createElement(View, {
39
+ style: styles.accessory
40
+ }, accessoryView));
41
+ };
42
+ const styles = StyleSheet.create({
43
+ accessory: {
44
+ alignItems: 'center',
45
+ height: 44,
46
+ justifyContent: 'center',
47
+ width: 44
48
+ },
49
+ container: {
50
+ alignItems: 'center',
51
+ flexDirection: 'row',
52
+ height: 60,
53
+ padding: 8
54
+ },
55
+ nameText: {
56
+ marginTop: 2
57
+ },
58
+ text: {
59
+ flex: 1,
60
+ justifyContent: 'center'
61
+ }
62
+ });
63
+ export default CredentialGroupHeader;
64
+ //# sourceMappingURL=credential-group-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","StyleSheet","View","concatTestID","Typography","useAppColorScheme","CredentialGroupHeader","accessory","name","style","testID","props","colorScheme","accessoryView","undefined","isValidElement","AccessoryComponent","createElement","_extends","styles","container","text","color","white","ellipsizeMode","numberOfLines","preset","nameText","create","alignItems","height","justifyContent","width","flexDirection","padding","marginTop","flex"],"sources":["credential-group-header.tsx"],"sourcesContent":["import React, { FC, useMemo } from 'react';\nimport { AccessibilityProps, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { concatTestID } from '../../../utils';\nimport { Typography } from '../../text';\nimport { useAppColorScheme } from '../../theme';\n\nexport interface CredentialGroupHeaderProps extends AccessibilityProps {\n accessory?: React.ComponentType<any> | React.ReactElement;\n name: string;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n}\n\nconst CredentialGroupHeader: FC<CredentialGroupHeaderProps> = ({ accessory, name, style, testID, ...props }) => {\n const colorScheme = useAppColorScheme();\n\n const accessoryView: React.ReactElement | undefined = useMemo(() => {\n if (!accessory) {\n return undefined;\n }\n if (React.isValidElement(accessory)) {\n return accessory;\n } else {\n const AccessoryComponent = accessory as React.ComponentType<any>;\n return <AccessoryComponent />;\n }\n }, [accessory]);\n\n return (\n <View {...props} style={[styles.container, style]} testID={testID}>\n <View style={styles.text}>\n <Typography\n color={colorScheme.white}\n ellipsizeMode={'tail'}\n numberOfLines={1}\n preset=\"regular\"\n style={styles.nameText}\n testID={concatTestID(testID, 'name')}>\n {name}\n </Typography>\n </View>\n {accessoryView && <View style={styles.accessory}>{accessoryView}</View>}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n accessory: {\n alignItems: 'center',\n height: 44,\n justifyContent: 'center',\n width: 44,\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n height: 60,\n padding: 8,\n },\n nameText: {\n marginTop: 2,\n },\n text: {\n flex: 1,\n justifyContent: 'center',\n },\n});\n\nexport default CredentialGroupHeader;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAQC,OAAO,QAAQ,OAAO;AAC1C,SAAwCC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAEzF,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,UAAU,QAAQ,YAAY;AACvC,SAASC,iBAAiB,QAAQ,aAAa;AAS/C,MAAMC,qBAAqD,GAAGA,CAAC;EAAEC,SAAS;EAAEC,IAAI;EAAEC,KAAK;EAAEC,MAAM;EAAE,GAAGC;AAAM,CAAC,KAAK;EAC9G,MAAMC,WAAW,GAAGP,iBAAiB,CAAC,CAAC;EAEvC,MAAMQ,aAA6C,GAAGb,OAAO,CAAC,MAAM;IAClE,IAAI,CAACO,SAAS,EAAE;MACd,OAAOO,SAAS;IAClB;IACA,iBAAIf,KAAK,CAACgB,cAAc,CAACR,SAAS,CAAC,EAAE;MACnC,OAAOA,SAAS;IAClB,CAAC,MAAM;MACL,MAAMS,kBAAkB,GAAGT,SAAqC;MAChE,oBAAOR,KAAA,CAAAkB,aAAA,CAACD,kBAAkB,MAAE,CAAC;IAC/B;EACF,CAAC,EAAE,CAACT,SAAS,CAAC,CAAC;EAEf,oBACER,KAAA,CAAAkB,aAAA,CAACf,IAAI,EAAAgB,QAAA,KAAKP,KAAK;IAAEF,KAAK,EAAE,CAACU,MAAM,CAACC,SAAS,EAAEX,KAAK,CAAE;IAACC,MAAM,EAAEA;EAAO,iBAChEX,KAAA,CAAAkB,aAAA,CAACf,IAAI;IAACO,KAAK,EAAEU,MAAM,CAACE;EAAK,gBACvBtB,KAAA,CAAAkB,aAAA,CAACb,UAAU;IACTkB,KAAK,EAAEV,WAAW,CAACW,KAAM;IACzBC,aAAa,EAAE,MAAO;IACtBC,aAAa,EAAE,CAAE;IACjBC,MAAM,EAAC,SAAS;IAChBjB,KAAK,EAAEU,MAAM,CAACQ,QAAS;IACvBjB,MAAM,EAAEP,YAAY,CAACO,MAAM,EAAE,MAAM;EAAE,GACpCF,IACS,CACR,CAAC,EACNK,aAAa,iBAAId,KAAA,CAAAkB,aAAA,CAACf,IAAI;IAACO,KAAK,EAAEU,MAAM,CAACZ;EAAU,GAAEM,aAAoB,CAClE,CAAC;AAEX,CAAC;AAED,MAAMM,MAAM,GAAGlB,UAAU,CAAC2B,MAAM,CAAC;EAC/BrB,SAAS,EAAE;IACTsB,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,KAAK,EAAE;EACT,CAAC;EACDZ,SAAS,EAAE;IACTS,UAAU,EAAE,QAAQ;IACpBI,aAAa,EAAE,KAAK;IACpBH,MAAM,EAAE,EAAE;IACVI,OAAO,EAAE;EACX,CAAC;EACDP,QAAQ,EAAE;IACRQ,SAAS,EAAE;EACb,CAAC;EACDd,IAAI,EAAE;IACJe,IAAI,EAAE,CAAC;IACPL,cAAc,EAAE;EAClB;AACF,CAAC,CAAC;AAEF,eAAezB,qBAAqB","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import CredentialGroupHeader from './credential-group-header';
2
+ export { CredentialGroupHeader };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CredentialGroupHeader"],"sources":["index.ts"],"sourcesContent":["import type { CredentialGroupHeaderProps } from './credential-group-header';\nimport CredentialGroupHeader from './credential-group-header';\n\nexport { CredentialGroupHeader, CredentialGroupHeaderProps };\n"],"mappings":"AACA,OAAOA,qBAAqB,MAAM,2BAA2B;AAE7D,SAASA,qBAAqB","ignoreList":[]}
@@ -6,4 +6,5 @@ export { CredentialAttributeItem };
6
6
  export { Barcode, Mrz, QrCode };
7
7
  export { Selector, SelectorStatus };
8
8
  export * from './card';
9
+ export * from './group';
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CredentialAttributeItem","Barcode","Mrz","QrCode","Selector","SelectorStatus"],"sources":["index.ts"],"sourcesContent":["import type {\n CredentialAttribute,\n CredentialAttributeItemProps,\n CredentialAttributeValue,\n} from './credential-attribute-item';\nimport CredentialAttributeItem from './credential-attribute-item';\nimport { Barcode, Mrz, QrCode } from './credential-carousel-images';\nimport Selector from './selector';\nimport { SelectorStatus } from './selector-status';\n\nexport { CredentialAttribute, CredentialAttributeItem, CredentialAttributeItemProps, CredentialAttributeValue };\nexport { Barcode, Mrz, QrCode };\nexport { Selector, SelectorStatus };\nexport * from './card';\n"],"mappings":"AAKA,OAAOA,uBAAuB,MAAM,6BAA6B;AACjE,SAASC,OAAO,EAAEC,GAAG,EAAEC,MAAM,QAAQ,8BAA8B;AACnE,OAAOC,QAAQ,MAAM,YAAY;AACjC,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAA8BL,uBAAuB;AACrD,SAASC,OAAO,EAAEC,GAAG,EAAEC,MAAM;AAC7B,SAASC,QAAQ,EAAEC,cAAc;AACjC,cAAc,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["CredentialAttributeItem","Barcode","Mrz","QrCode","Selector","SelectorStatus"],"sources":["index.ts"],"sourcesContent":["import type {\n CredentialAttribute,\n CredentialAttributeItemProps,\n CredentialAttributeValue,\n} from './credential-attribute-item';\nimport CredentialAttributeItem from './credential-attribute-item';\nimport { Barcode, Mrz, QrCode } from './credential-carousel-images';\nimport Selector from './selector';\nimport { SelectorStatus } from './selector-status';\n\nexport { CredentialAttribute, CredentialAttributeItem, CredentialAttributeItemProps, CredentialAttributeValue };\nexport { Barcode, Mrz, QrCode };\nexport { Selector, SelectorStatus };\nexport * from './card';\nexport * from './group';\n"],"mappings":"AAKA,OAAOA,uBAAuB,MAAM,6BAA6B;AACjE,SAASC,OAAO,EAAEC,GAAG,EAAEC,MAAM,QAAQ,8BAA8B;AACnE,OAAOC,QAAQ,MAAM,YAAY;AACjC,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAA8BL,uBAAuB;AACrD,SAASC,OAAO,EAAEC,GAAG,EAAEC,MAAM;AAC7B,SAASC,QAAQ,EAAEC,cAAc;AACjC,cAAc,QAAQ;AACtB,cAAc,SAAS","ignoreList":[]}