@procivis/one-react-native-components 0.3.115 → 0.3.121

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 (77) hide show
  1. package/lib/commonjs/components/history/history-list-item-icon.js +2 -1
  2. package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
  3. package/lib/commonjs/components/index.js +11 -0
  4. package/lib/commonjs/components/index.js.map +1 -1
  5. package/lib/commonjs/components/trust-info/index.js +29 -0
  6. package/lib/commonjs/components/trust-info/index.js.map +1 -0
  7. package/lib/commonjs/components/trust-info/trust-info.js +79 -0
  8. package/lib/commonjs/components/trust-info/trust-info.js.map +1 -0
  9. package/lib/commonjs/ui-components/header/header.js +2 -0
  10. package/lib/commonjs/ui-components/header/header.js.map +1 -1
  11. package/lib/commonjs/ui-components/icons/contact.js +45 -0
  12. package/lib/commonjs/ui-components/icons/contact.js.map +1 -0
  13. package/lib/commonjs/ui-components/icons/index.js +11 -0
  14. package/lib/commonjs/ui-components/icons/index.js.map +1 -1
  15. package/lib/commonjs/ui-components/screens/index.js +7 -0
  16. package/lib/commonjs/ui-components/screens/index.js.map +1 -1
  17. package/lib/commonjs/ui-components/screens/nerd-mode-screen.js +45 -15
  18. package/lib/commonjs/ui-components/screens/nerd-mode-screen.js.map +1 -1
  19. package/lib/commonjs/ui-components/screens/trust-info-details-screen.js +384 -0
  20. package/lib/commonjs/ui-components/screens/trust-info-details-screen.js.map +1 -0
  21. package/lib/commonjs/utils/hooks/core/cache.js +2 -1
  22. package/lib/commonjs/utils/hooks/core/cache.js.map +1 -1
  23. package/lib/commonjs/utils/hooks/core/credentials.js +26 -1
  24. package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
  25. package/lib/commonjs/utils/hooks/core/proofs.js +12 -1
  26. package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
  27. package/lib/module/components/history/history-list-item-icon.js +2 -1
  28. package/lib/module/components/history/history-list-item-icon.js.map +1 -1
  29. package/lib/module/components/index.js +1 -0
  30. package/lib/module/components/index.js.map +1 -1
  31. package/lib/module/components/trust-info/index.js +4 -0
  32. package/lib/module/components/trust-info/index.js.map +1 -0
  33. package/lib/module/components/trust-info/trust-info.js +70 -0
  34. package/lib/module/components/trust-info/trust-info.js.map +1 -0
  35. package/lib/module/ui-components/header/header.js +2 -0
  36. package/lib/module/ui-components/header/header.js.map +1 -1
  37. package/lib/module/ui-components/icons/contact.js +34 -0
  38. package/lib/module/ui-components/icons/contact.js.map +1 -0
  39. package/lib/module/ui-components/icons/index.js +1 -0
  40. package/lib/module/ui-components/icons/index.js.map +1 -1
  41. package/lib/module/ui-components/screens/index.js +2 -0
  42. package/lib/module/ui-components/screens/index.js.map +1 -1
  43. package/lib/module/ui-components/screens/nerd-mode-screen.js +46 -16
  44. package/lib/module/ui-components/screens/nerd-mode-screen.js.map +1 -1
  45. package/lib/module/ui-components/screens/trust-info-details-screen.js +375 -0
  46. package/lib/module/ui-components/screens/trust-info-details-screen.js.map +1 -0
  47. package/lib/module/utils/hooks/core/cache.js +2 -1
  48. package/lib/module/utils/hooks/core/cache.js.map +1 -1
  49. package/lib/module/utils/hooks/core/credentials.js +24 -1
  50. package/lib/module/utils/hooks/core/credentials.js.map +1 -1
  51. package/lib/module/utils/hooks/core/proofs.js +10 -0
  52. package/lib/module/utils/hooks/core/proofs.js.map +1 -1
  53. package/lib/typescript/components/index.d.ts +1 -0
  54. package/lib/typescript/components/trust-info/index.d.ts +3 -0
  55. package/lib/typescript/components/trust-info/trust-info.d.ts +19 -0
  56. package/lib/typescript/ui-components/header/header.d.ts +2 -0
  57. package/lib/typescript/ui-components/icons/contact.d.ts +4 -0
  58. package/lib/typescript/ui-components/icons/index.d.ts +1 -0
  59. package/lib/typescript/ui-components/screens/index.d.ts +3 -0
  60. package/lib/typescript/ui-components/screens/nerd-mode-screen.d.ts +6 -1
  61. package/lib/typescript/ui-components/screens/trust-info-details-screen.d.ts +32 -0
  62. package/lib/typescript/utils/hooks/core/credentials.d.ts +3 -0
  63. package/lib/typescript/utils/hooks/core/proofs.d.ts +2 -0
  64. package/package.json +8 -8
  65. package/src/components/history/history-list-item-icon.tsx +1 -0
  66. package/src/components/index.ts +1 -0
  67. package/src/components/trust-info/index.ts +4 -0
  68. package/src/components/trust-info/trust-info.tsx +90 -0
  69. package/src/ui-components/header/header.tsx +9 -3
  70. package/src/ui-components/icons/contact.tsx +26 -0
  71. package/src/ui-components/icons/index.ts +1 -0
  72. package/src/ui-components/screens/index.ts +3 -0
  73. package/src/ui-components/screens/nerd-mode-screen.tsx +80 -22
  74. package/src/ui-components/screens/trust-info-details-screen.tsx +472 -0
  75. package/src/utils/hooks/core/cache.ts +2 -1
  76. package/src/utils/hooks/core/credentials.ts +30 -1
  77. package/src/utils/hooks/core/proofs.ts +14 -0
@@ -1,5 +1,5 @@
1
1
  import { CredentialState, OneError } from '@procivis/react-native-one-core';
2
- import { useInfiniteQuery, useMutation, useQuery, useQueryClient } from 'react-query';
2
+ import { useInfiniteQuery, useMutation, useQueries, useQuery, useQueryClient } from 'react-query';
3
3
  import { getQueryKeyFromCredentialListQueryParams } from '../../parsers/query';
4
4
  import { useONECore } from './core-context';
5
5
  import { CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY, CREDENTIAL_SCHEMA_LIST_QUERY_KEY } from './credential-schemas';
@@ -10,6 +10,7 @@ const PAGE_SIZE = 20;
10
10
  export const CREDENTIAL_LIST_QUERY_KEY = 'credential-list';
11
11
  export const CREDENTIAL_LIST_PAGED_QUERY_KEY = 'credential-list-paged';
12
12
  export const CREDENTIAL_DETAIL_QUERY_KEY = 'credential-detail';
13
+ export const CREDENTIAL_TRUST_INFORMATION_QUERY_KEY = 'credential-trust-information';
13
14
  export const useCredentials = queryParams => {
14
15
  const {
15
16
  core,
@@ -172,4 +173,26 @@ export const useContinueIssuance = () => {
172
173
  }
173
174
  });
174
175
  };
176
+ export const useCredentialTrustInformation = credentialId => {
177
+ const {
178
+ core
179
+ } = useONECore();
180
+ return useQuery([CREDENTIAL_TRUST_INFORMATION_QUERY_KEY, credentialId], () => credentialId ? core.getCredentialTrustInformation(credentialId) : undefined, {
181
+ enabled: Boolean(credentialId),
182
+ keepPreviousData: true
183
+ });
184
+ };
185
+ export const useCredentialsTrustInformation = credentialIds => {
186
+ const {
187
+ core
188
+ } = useONECore();
189
+ return useQueries(credentialIds.map(id => ({
190
+ keepPreviousData: true,
191
+ meta: {
192
+ id
193
+ },
194
+ queryFn: () => core.getCredentialTrustInformation(id),
195
+ queryKey: [CREDENTIAL_TRUST_INFORMATION_QUERY_KEY, id]
196
+ })));
197
+ };
175
198
  //# sourceMappingURL=credentials.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CredentialState","OneError","useInfiniteQuery","useMutation","useQuery","useQueryClient","getQueryKeyFromCredentialListQueryParams","useONECore","CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY","CREDENTIAL_SCHEMA_LIST_QUERY_KEY","OneErrorCode","HISTORY_LIST_QUERY_KEY","PROOF_LIST_QUERY_KEY","PAGE_SIZE","CREDENTIAL_LIST_QUERY_KEY","CREDENTIAL_LIST_PAGED_QUERY_KEY","CREDENTIAL_DETAIL_QUERY_KEY","useCredentials","queryParams","core","organisationId","values","listCredentials","page","pageSize","states","ACCEPTED","SUSPENDED","REVOKED","keepPreviousData","usePagedCredentials","pageParam","getNextPageParam","lastPage","allPages","length","totalPages","undefined","useCredentialDetail","credentialId","active","getCredential","enabled","Boolean","useInvitationHandler","queryClient","request","handleInvitation","onSuccess","result","type_","invalidateQueries","useCredentialAccept","credentialAcceptHookParams","holderAcceptCredential","useCredentialReject","interactionId","holderRejectCredential","catch","e","code","OperationNotSupported","useCredentialRevocationCheck","forceRefresh","credentialIds","checkRevocation","useCredentialDelete","deleteCredential","_","removeQueries","useInvalidateCredentialDetails","useInitiateIssuance","initiateIssuance","useContinueIssuance","url","continueIssuance"],"sources":["credentials.ts"],"sourcesContent":["import {\n CredentialListQuery,\n CredentialState,\n HandleInvitationRequest,\n HandleInvitationResponse,\n HolderAcceptCredentialRequest,\n InitiateIssuanceRequest,\n OneError,\n} from '@procivis/react-native-one-core';\nimport { useInfiniteQuery, useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { getQueryKeyFromCredentialListQueryParams } from '../../parsers/query';\nimport { useONECore } from './core-context';\nimport { CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY, CREDENTIAL_SCHEMA_LIST_QUERY_KEY } from './credential-schemas';\nimport { OneErrorCode } from './error-code';\nimport { HISTORY_LIST_QUERY_KEY } from './history';\nimport { PROOF_LIST_QUERY_KEY } from './proofs';\n\nconst PAGE_SIZE = 20;\nexport const CREDENTIAL_LIST_QUERY_KEY = 'credential-list';\nexport const CREDENTIAL_LIST_PAGED_QUERY_KEY = 'credential-list-paged';\nexport const CREDENTIAL_DETAIL_QUERY_KEY = 'credential-detail';\n\nexport const useCredentials = (queryParams?: Partial<CredentialListQuery>) => {\n const { core, organisationId } = useONECore();\n\n return useQuery(\n [CREDENTIAL_LIST_QUERY_KEY, ...getQueryKeyFromCredentialListQueryParams(queryParams)],\n async () => {\n const { values } = await core.listCredentials({\n organisationId,\n page: 0,\n // TODO: workaround pagination for now, until it's supported by UI\n pageSize: 10000,\n states: [CredentialState.ACCEPTED, CredentialState.SUSPENDED, CredentialState.REVOKED],\n ...queryParams,\n });\n return values;\n },\n {\n keepPreviousData: true,\n },\n );\n};\n\nexport const usePagedCredentials = (queryParams?: Partial<CredentialListQuery>) => {\n const { core, organisationId } = useONECore();\n\n return useInfiniteQuery(\n [\n CREDENTIAL_LIST_QUERY_KEY,\n CREDENTIAL_LIST_PAGED_QUERY_KEY,\n ...getQueryKeyFromCredentialListQueryParams(queryParams),\n ],\n ({ pageParam = 0 }) =>\n core.listCredentials({\n organisationId,\n page: pageParam,\n pageSize: PAGE_SIZE,\n states: [CredentialState.ACCEPTED, CredentialState.SUSPENDED, CredentialState.REVOKED],\n ...queryParams,\n }),\n {\n getNextPageParam: (lastPage, allPages) => (allPages.length < lastPage.totalPages ? allPages.length : undefined),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useCredentialDetail = (credentialId: string | undefined, active = true) => {\n const { core } = useONECore();\n\n return useQuery(\n [CREDENTIAL_DETAIL_QUERY_KEY, credentialId],\n () => (credentialId ? core.getCredential(credentialId) : undefined),\n {\n enabled: active && Boolean(credentialId),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useInvitationHandler = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async (request: Omit<HandleInvitationRequest, 'organisationId'>) =>\n core.handleInvitation({ organisationId, ...request }),\n {\n onSuccess: async (result: HandleInvitationResponse) => {\n if (result.type_ === 'PROOF_REQUEST') {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n } else {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY);\n }\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useCredentialAccept = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (credentialAcceptHookParams: HolderAcceptCredentialRequest) =>\n core.holderAcceptCredential(credentialAcceptHookParams),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useCredentialReject = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (interactionId: string) =>\n core.holderRejectCredential(interactionId).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.OperationNotSupported) {\n return;\n }\n throw e;\n }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useCredentialRevocationCheck = (forceRefresh: boolean) => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (credentialIds: string[]) => core.checkRevocation(credentialIds, forceRefresh), {\n onSuccess: async () => {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useCredentialDelete = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (credentialId: string) => core.deleteCredential(credentialId), {\n onSuccess: async (_, credentialId) => {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.removeQueries([CREDENTIAL_DETAIL_QUERY_KEY, credentialId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useInvalidateCredentialDetails = () => {\n const queryClient = useQueryClient();\n\n return (credentialId: string | undefined) =>\n queryClient.invalidateQueries([CREDENTIAL_DETAIL_QUERY_KEY, credentialId]);\n};\n\nexport const useInitiateIssuance = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async (request: Omit<InitiateIssuanceRequest, 'organisationId'>) =>\n core.initiateIssuance({ organisationId, ...request }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useContinueIssuance = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (url: string) => core.continueIssuance(url), {\n onSuccess: async () => {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CredentialState","OneError","useInfiniteQuery","useMutation","useQueries","useQuery","useQueryClient","getQueryKeyFromCredentialListQueryParams","useONECore","CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY","CREDENTIAL_SCHEMA_LIST_QUERY_KEY","OneErrorCode","HISTORY_LIST_QUERY_KEY","PROOF_LIST_QUERY_KEY","PAGE_SIZE","CREDENTIAL_LIST_QUERY_KEY","CREDENTIAL_LIST_PAGED_QUERY_KEY","CREDENTIAL_DETAIL_QUERY_KEY","CREDENTIAL_TRUST_INFORMATION_QUERY_KEY","useCredentials","queryParams","core","organisationId","values","listCredentials","page","pageSize","states","ACCEPTED","SUSPENDED","REVOKED","keepPreviousData","usePagedCredentials","pageParam","getNextPageParam","lastPage","allPages","length","totalPages","undefined","useCredentialDetail","credentialId","active","getCredential","enabled","Boolean","useInvitationHandler","queryClient","request","handleInvitation","onSuccess","result","type_","invalidateQueries","useCredentialAccept","credentialAcceptHookParams","holderAcceptCredential","useCredentialReject","interactionId","holderRejectCredential","catch","e","code","OperationNotSupported","useCredentialRevocationCheck","forceRefresh","credentialIds","checkRevocation","useCredentialDelete","deleteCredential","_","removeQueries","useInvalidateCredentialDetails","useInitiateIssuance","initiateIssuance","useContinueIssuance","url","continueIssuance","useCredentialTrustInformation","getCredentialTrustInformation","useCredentialsTrustInformation","map","id","meta","queryFn","queryKey"],"sources":["credentials.ts"],"sourcesContent":["import {\n CredentialListQuery,\n CredentialState,\n HandleInvitationRequest,\n HandleInvitationResponse,\n HolderAcceptCredentialRequest,\n InitiateIssuanceRequest,\n OneError,\n} from '@procivis/react-native-one-core';\nimport { useInfiniteQuery, useMutation, useQueries, useQuery, useQueryClient } from 'react-query';\n\nimport { getQueryKeyFromCredentialListQueryParams } from '../../parsers/query';\nimport { useONECore } from './core-context';\nimport { CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY, CREDENTIAL_SCHEMA_LIST_QUERY_KEY } from './credential-schemas';\nimport { OneErrorCode } from './error-code';\nimport { HISTORY_LIST_QUERY_KEY } from './history';\nimport { PROOF_LIST_QUERY_KEY } from './proofs';\n\nconst PAGE_SIZE = 20;\nexport const CREDENTIAL_LIST_QUERY_KEY = 'credential-list';\nexport const CREDENTIAL_LIST_PAGED_QUERY_KEY = 'credential-list-paged';\nexport const CREDENTIAL_DETAIL_QUERY_KEY = 'credential-detail';\nexport const CREDENTIAL_TRUST_INFORMATION_QUERY_KEY = 'credential-trust-information';\n\nexport const useCredentials = (queryParams?: Partial<CredentialListQuery>) => {\n const { core, organisationId } = useONECore();\n\n return useQuery(\n [CREDENTIAL_LIST_QUERY_KEY, ...getQueryKeyFromCredentialListQueryParams(queryParams)],\n async () => {\n const { values } = await core.listCredentials({\n organisationId,\n page: 0,\n // TODO: workaround pagination for now, until it's supported by UI\n pageSize: 10000,\n states: [CredentialState.ACCEPTED, CredentialState.SUSPENDED, CredentialState.REVOKED],\n ...queryParams,\n });\n return values;\n },\n {\n keepPreviousData: true,\n },\n );\n};\n\nexport const usePagedCredentials = (queryParams?: Partial<CredentialListQuery>) => {\n const { core, organisationId } = useONECore();\n\n return useInfiniteQuery(\n [\n CREDENTIAL_LIST_QUERY_KEY,\n CREDENTIAL_LIST_PAGED_QUERY_KEY,\n ...getQueryKeyFromCredentialListQueryParams(queryParams),\n ],\n ({ pageParam = 0 }) =>\n core.listCredentials({\n organisationId,\n page: pageParam,\n pageSize: PAGE_SIZE,\n states: [CredentialState.ACCEPTED, CredentialState.SUSPENDED, CredentialState.REVOKED],\n ...queryParams,\n }),\n {\n getNextPageParam: (lastPage, allPages) => (allPages.length < lastPage.totalPages ? allPages.length : undefined),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useCredentialDetail = (credentialId: string | undefined, active = true) => {\n const { core } = useONECore();\n\n return useQuery(\n [CREDENTIAL_DETAIL_QUERY_KEY, credentialId],\n () => (credentialId ? core.getCredential(credentialId) : undefined),\n {\n enabled: active && Boolean(credentialId),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useInvitationHandler = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async (request: Omit<HandleInvitationRequest, 'organisationId'>) =>\n core.handleInvitation({ organisationId, ...request }),\n {\n onSuccess: async (result: HandleInvitationResponse) => {\n if (result.type_ === 'PROOF_REQUEST') {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n } else {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY);\n }\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useCredentialAccept = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (credentialAcceptHookParams: HolderAcceptCredentialRequest) =>\n core.holderAcceptCredential(credentialAcceptHookParams),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useCredentialReject = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (interactionId: string) =>\n core.holderRejectCredential(interactionId).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.OperationNotSupported) {\n return;\n }\n throw e;\n }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useCredentialRevocationCheck = (forceRefresh: boolean) => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (credentialIds: string[]) => core.checkRevocation(credentialIds, forceRefresh), {\n onSuccess: async () => {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useCredentialDelete = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (credentialId: string) => core.deleteCredential(credentialId), {\n onSuccess: async (_, credentialId) => {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.removeQueries([CREDENTIAL_DETAIL_QUERY_KEY, credentialId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useInvalidateCredentialDetails = () => {\n const queryClient = useQueryClient();\n\n return (credentialId: string | undefined) =>\n queryClient.invalidateQueries([CREDENTIAL_DETAIL_QUERY_KEY, credentialId]);\n};\n\nexport const useInitiateIssuance = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async (request: Omit<InitiateIssuanceRequest, 'organisationId'>) =>\n core.initiateIssuance({ organisationId, ...request }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useContinueIssuance = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (url: string) => core.continueIssuance(url), {\n onSuccess: async () => {\n await queryClient.invalidateQueries(CREDENTIAL_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useCredentialTrustInformation = (credentialId: string | undefined) => {\n const { core } = useONECore();\n\n return useQuery(\n [CREDENTIAL_TRUST_INFORMATION_QUERY_KEY, credentialId],\n () => (credentialId ? core.getCredentialTrustInformation(credentialId) : undefined),\n {\n enabled: Boolean(credentialId),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useCredentialsTrustInformation = (credentialIds: string[]) => {\n const { core } = useONECore();\n\n return useQueries(\n credentialIds.map((id) => ({\n keepPreviousData: true,\n meta: {\n id,\n },\n queryFn: () => core.getCredentialTrustInformation(id),\n queryKey: [CREDENTIAL_TRUST_INFORMATION_QUERY_KEY, id],\n })),\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,7 @@ const PAGE_SIZE = 10;
13
13
  export const PROOF_DETAIL_QUERY_KEY = 'proof-detail';
14
14
  export const PROOF_STATE_QUERY_KEY = 'proof-state';
15
15
  export const PROOF_LIST_QUERY_KEY = 'proof-list';
16
+ export const PROOF_REQUEST_TRUST_INFORMATION_QUERY_KEY = 'proof-request-trust-information';
16
17
  export const useProofDetail = proofId => {
17
18
  const {
18
19
  core
@@ -400,4 +401,13 @@ export const useDeleteAllProofsData = schemaId => {
400
401
  }
401
402
  });
402
403
  };
404
+ export const useProofRequestTrustInformation = credentialId => {
405
+ const {
406
+ core
407
+ } = useONECore();
408
+ return useQuery([PROOF_REQUEST_TRUST_INFORMATION_QUERY_KEY, credentialId], () => credentialId ? core.getProofTrustInformation(credentialId) : undefined, {
409
+ enabled: Boolean(credentialId),
410
+ keepPreviousData: true
411
+ });
412
+ };
403
413
  //# sourceMappingURL=proofs.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["HistoryAction","HistoryEntityType","OneError","ProofState","useCallback","useEffect","useMemo","useRef","useState","useMutation","useQuery","useQueryClient","getQueryKeyFromProofListQueryParams","reportException","useCoreConfig","useONECore","OneErrorCode","HISTORY_LIST_QUERY_KEY","useIdentifiers","useProofSchemaDetail","PAGE_SIZE","PROOF_DETAIL_QUERY_KEY","PROOF_STATE_QUERY_KEY","PROOF_LIST_QUERY_KEY","useProofDetail","proofId","core","getProof","undefined","enabled","Boolean","keepPreviousData","useProofState","isPolling","organisationId","state","then","proof","metadata","ERROR","listHistory","page","pageSize","entityIds","entityTypes","PROOF","actions","ERRORED","result","_result$values$","values","value","refetchInterval","useProofUrl","queryClient","request","shareProof","url","onSuccess","invalidateQueries","useProofAccept","interactionId","credentials","holderSubmitProof","onError","err","useProofReject","holderRejectProof","catch","e","code","OperationNotSupported","IssuanceProtocol","VerificationProtocol","VerificationEngagement","useProposeProof","proposeProof","useProofDelete","deleteProof","useProofs","queryParams","queryKey","pageParam","listProofs","useProofCreate","data","createProof","getIdentifierFilterForProofSchema","proofSchema","config","requestedFormats","proofInputSchemas","map","schema","credentialSchema","format","requestedFormatsCapabilities","_config$format$format","capabilities","filter","x","keyAlgorithms","reduce","others","_others$filter","current","verificationKeyAlgorithms","item","includes","keyStorages","_others$filter2","verificationKeyStorages","useProofForSchemaIdWithTransport","proofSchemaId","transport","identifierFilter","identifiers","mutateAsync","deleting","setDeleting","setProofIdState","proofIdRef","proofState","setProofId","id","retract","CREATED","PENDING","length","protocol","OPENID4VP_PROXIMITY_DRAFT00","verifierIdentifierId","useCleanupUnusedProofs","proofs","proofStates","cleaned","setCleaned","forEach","useShareProof","proofUrlProps","sharedProof","setSharedProof","bleAdapterDisabled","error","_error$cause","cause","useRetainProofCheck","runTask","removeQueries","useDeleteProofData","deleteProofClaims","useDeleteAllProofsData","schemaId","proofSchemaIds","ACCEPTED","Promise","all","reverse"],"sources":["proofs.ts"],"sourcesContent":["import {\n CoreConfig,\n CreateProofRequest,\n HistoryAction,\n HistoryEntityType,\n HistoryErrorMetadata,\n IdentifierListQuery,\n OneError,\n PresentationSubmitCredentialRequest,\n ProofListQuery,\n ProofSchemaDetail,\n ProofState,\n ProposeProofRequest,\n ShareProofRequest,\n} from '@procivis/react-native-one-core';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { getQueryKeyFromProofListQueryParams } from '../../parsers/query';\nimport { reportException } from '../../reporting';\nimport { Transport } from '../connectivity/connectivity';\nimport { useCoreConfig } from './core-config';\nimport { useONECore } from './core-context';\nimport { OneErrorCode } from './error-code';\nimport { HISTORY_LIST_QUERY_KEY } from './history';\nimport { useIdentifiers } from './identifiers';\nimport { useProofSchemaDetail } from './proof-schemas';\n\nconst PAGE_SIZE = 10;\nexport const PROOF_DETAIL_QUERY_KEY = 'proof-detail';\nexport const PROOF_STATE_QUERY_KEY = 'proof-state';\nexport const PROOF_LIST_QUERY_KEY = 'proof-list';\n\nexport const useProofDetail = (proofId: string | undefined) => {\n const { core } = useONECore();\n\n return useQuery([PROOF_DETAIL_QUERY_KEY, proofId], () => (proofId ? core.getProof(proofId) : undefined), {\n enabled: Boolean(proofId),\n keepPreviousData: true,\n });\n};\n\nexport const useProofState = (proofId: string | undefined, isPolling: boolean) => {\n const { core, organisationId } = useONECore();\n\n return useQuery(\n [PROOF_STATE_QUERY_KEY, proofId],\n async () => {\n if (!proofId) {\n return undefined;\n }\n\n const state = await core.getProof(proofId).then((proof) => proof.state);\n let metadata: HistoryErrorMetadata | undefined;\n if (state === ProofState.ERROR) {\n metadata = await core\n .listHistory({\n organisationId,\n page: 0,\n pageSize: 1,\n entityIds: [proofId],\n entityTypes: [HistoryEntityType.PROOF],\n actions: [HistoryAction.ERRORED],\n })\n .then((result) => result.values[0]?.metadata?.value as HistoryErrorMetadata);\n }\n return { state, metadata };\n },\n {\n enabled: Boolean(proofId),\n refetchInterval: isPolling ? 1000 : false,\n },\n );\n};\n\ntype ProofUrlHookParams = { proofId: string; request?: ShareProofRequest };\n\nexport const useProofUrl = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({ proofId, request }: ProofUrlHookParams) =>\n core.shareProof(proofId, request ?? {}).then((proof) => proof.url),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_STATE_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofAccept = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({\n interactionId,\n credentials,\n }: {\n credentials: Record<string, PresentationSubmitCredentialRequest[]>;\n interactionId: string;\n }) => core.holderSubmitProof(interactionId, credentials),\n {\n onError: async (err) => {\n reportException(err, 'Proof submission failure');\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofReject = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (interactionId: string) =>\n core.holderRejectProof(interactionId).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.OperationNotSupported) {\n return;\n }\n throw e;\n }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport enum IssuanceProtocol {\n OPENID4VCI_DRAFT13 = 'OPENID4VCI_DRAFT13',\n}\n\nexport enum VerificationProtocol {\n ISO_MDL = 'ISO_MDL',\n OPENID4VP_DRAFT20 = 'OPENID4VP_DRAFT20',\n OPENID4VP_DRAFT25 = 'OPENID4VP_DRAFT25',\n OPENID4VP_PROXIMITY_DRAFT00 = 'OPENID4VP_PROXIMITY_DRAFT00',\n}\n\nexport enum VerificationEngagement {\n QR_CODE = 'QR_CODE',\n NFC = 'NFC',\n}\n\nexport const useProposeProof = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async (request: Omit<ProposeProofRequest, 'organisationId'>) => core.proposeProof({ organisationId, ...request }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofDelete = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (proofId: string) => {\n return core.deleteProof(proofId).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.OperationNotSupported) {\n return;\n }\n throw e;\n });\n },\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_STATE_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofs = (queryParams?: Partial<ProofListQuery>) => {\n const { core, organisationId } = useONECore();\n\n const queryKey = [PROOF_LIST_QUERY_KEY, ...getQueryKeyFromProofListQueryParams(queryParams)];\n\n return useQuery(\n queryKey,\n ({ pageParam = 0 }) =>\n core.listProofs({\n organisationId,\n page: pageParam,\n pageSize: PAGE_SIZE,\n ...queryParams,\n }),\n {\n keepPreviousData: false,\n },\n );\n};\n\nexport const useProofCreate = () => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async (data: CreateProofRequest) => core.createProof(data), {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nconst getIdentifierFilterForProofSchema = (\n proofSchema: ProofSchemaDetail,\n config: CoreConfig,\n): Partial<IdentifierListQuery> => {\n const requestedFormats = proofSchema.proofInputSchemas.map((schema) => schema.credentialSchema.format);\n const requestedFormatsCapabilities = requestedFormats\n .map((format) => config.format[format]?.capabilities)\n .filter((x) => x);\n\n // key algorithms must be supported by all requested formats\n const keyAlgorithms = requestedFormatsCapabilities.reduce<string[] | undefined>((others, capabilities) => {\n const current = capabilities.verificationKeyAlgorithms;\n return others?.filter((item) => current.includes(item)) ?? current;\n }, undefined);\n\n // key storages must be supported by all requested formats\n const keyStorages = requestedFormatsCapabilities.reduce<string[] | undefined>((others, capabilities) => {\n const current = capabilities.verificationKeyStorages;\n return others?.filter((item) => current.includes(item)) ?? current;\n }, undefined);\n\n return { keyAlgorithms, keyStorages };\n};\n\nexport const useProofForSchemaIdWithTransport = (\n proofSchemaId: string,\n transport: Transport[] | undefined,\n enabled: boolean,\n) => {\n const { data: proofSchema } = useProofSchemaDetail(proofSchemaId, enabled);\n const { data: config } = useCoreConfig();\n\n const identifierFilter = useMemo(\n () => (proofSchema && config ? getIdentifierFilterForProofSchema(proofSchema, config) : undefined),\n [config, proofSchema],\n );\n\n const { data: identifiers } = useIdentifiers(identifierFilter);\n const { mutateAsync: createProof } = useProofCreate();\n const { mutateAsync: deleteProof } = useProofDelete();\n\n const [deleting, setDeleting] = useState(false);\n const [proofId, setProofIdState] = useState<string | undefined>(undefined);\n const proofIdRef = useRef<string>();\n\n const { data: proofState } = useProofState(deleting ? undefined : proofId, enabled);\n\n const setProofId = useCallback((id: string | undefined) => {\n proofIdRef.current = id;\n setProofIdState(id);\n }, []);\n\n const retract = useCallback(async () => {\n const id = proofIdRef.current;\n if (!id) {\n return;\n }\n setProofId(undefined);\n await deleteProof(id).catch(() => {});\n }, [deleteProof, setProofId]);\n\n useEffect(() => {\n if (!proofIdRef.current) {\n return;\n }\n setDeleting(true);\n deleteProof(proofIdRef.current)\n .then(() => {\n setProofId(undefined);\n setDeleting(false);\n })\n .catch(() => {});\n }, [proofIdRef, deleteProof, proofSchemaId, transport, setProofId]);\n\n useEffect(() => {\n if (enabled) {\n return;\n }\n\n if (proofState?.state !== ProofState.CREATED && proofState?.state !== ProofState.PENDING) {\n setProofId(undefined);\n } else {\n setDeleting(true);\n deleteProof(proofIdRef.current || '')\n .then(() => {\n setProofId(undefined);\n setDeleting(false);\n })\n .catch(() => {});\n }\n }, [deleteProof, enabled, proofId, proofState, setProofId]);\n\n useEffect(() => {\n if (\n deleting ||\n !enabled ||\n proofId ||\n !identifiers ||\n !identifierFilter ||\n !identifiers.values.length ||\n !transport ||\n transport.length === 0\n ) {\n return;\n }\n\n createProof({\n protocol: VerificationProtocol.OPENID4VP_PROXIMITY_DRAFT00,\n proofSchemaId,\n transport,\n verifierIdentifierId: identifiers.values[0].id,\n })\n .then((id) => {\n setProofId(id);\n })\n .catch(() => {});\n }, [proofSchemaId, identifiers, identifierFilter, createProof, enabled, transport, proofId, setProofId, deleting]);\n\n return { proofId: deleting ? undefined : proofId, retract };\n};\n\nexport const useCleanupUnusedProofs = () => {\n const { mutateAsync: deleteProof } = useProofDelete();\n const { data: proofs } = useProofs({\n page: 0,\n pageSize: 100,\n proofStates: [ProofState.CREATED, ProofState.PENDING],\n });\n const [cleaned, setCleaned] = useState(false);\n\n useEffect(() => {\n if (cleaned || !proofs) {\n return;\n }\n setCleaned(true);\n proofs.values.forEach((proof) => deleteProof(proof.id));\n }, [cleaned, deleteProof, proofs]);\n};\n\nexport const useShareProof = (proofUrlProps: ProofUrlHookParams | undefined, enabled: boolean) => {\n const { mutateAsync: shareProof } = useProofUrl();\n const { data: proofState } = useProofState(proofUrlProps?.proofId, enabled);\n\n const [sharedProof, setSharedProof] = useState<{\n bleAdapterDisabled: boolean;\n url?: string;\n error?: unknown;\n }>();\n\n // reset when proofId changes or the proof was retracted\n useEffect(() => {\n if (!proofUrlProps?.proofId || proofState?.state === ProofState.CREATED) {\n setSharedProof(undefined);\n }\n }, [proofUrlProps?.proofId, proofState]);\n\n useEffect(() => {\n if (!proofUrlProps || !enabled || sharedProof) {\n return;\n }\n\n shareProof(proofUrlProps)\n .then((url) => {\n setSharedProof({\n bleAdapterDisabled: false,\n url,\n });\n })\n .catch((error: unknown) => {\n if (error instanceof OneError && error.cause?.includes('BLE adapter not enabled')) {\n setSharedProof({\n bleAdapterDisabled: true,\n });\n } else {\n setSharedProof({ error, bleAdapterDisabled: false });\n }\n });\n }, [enabled, proofUrlProps, shareProof, sharedProof]);\n\n return sharedProof;\n};\n\nexport const useRetainProofCheck = (proofId?: string) => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async () => core.runTask('RETAIN_PROOF_CHECK', undefined), {\n onSuccess: async () => {\n if (proofId) {\n await queryClient.removeQueries([PROOF_DETAIL_QUERY_KEY, proofId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n }\n },\n });\n};\n\nexport const useDeleteProofData = (proofId: string) => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async () => core.deleteProofClaims(proofId), {\n onSuccess: async () => {\n await queryClient.removeQueries([PROOF_DETAIL_QUERY_KEY, proofId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useDeleteAllProofsData = (schemaId: string) => {\n const queryClient = useQueryClient();\n\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async () =>\n core\n .listProofs({\n organisationId,\n page: 0,\n pageSize: 1000,\n proofSchemaIds: [schemaId],\n proofStates: [ProofState.ACCEPTED],\n })\n .then((result) => Promise.all(result.values.reverse().map((proof) => core.deleteProofClaims(proof.id)))),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["HistoryAction","HistoryEntityType","OneError","ProofState","useCallback","useEffect","useMemo","useRef","useState","useMutation","useQuery","useQueryClient","getQueryKeyFromProofListQueryParams","reportException","useCoreConfig","useONECore","OneErrorCode","HISTORY_LIST_QUERY_KEY","useIdentifiers","useProofSchemaDetail","PAGE_SIZE","PROOF_DETAIL_QUERY_KEY","PROOF_STATE_QUERY_KEY","PROOF_LIST_QUERY_KEY","PROOF_REQUEST_TRUST_INFORMATION_QUERY_KEY","useProofDetail","proofId","core","getProof","undefined","enabled","Boolean","keepPreviousData","useProofState","isPolling","organisationId","state","then","proof","metadata","ERROR","listHistory","page","pageSize","entityIds","entityTypes","PROOF","actions","ERRORED","result","_result$values$","values","value","refetchInterval","useProofUrl","queryClient","request","shareProof","url","onSuccess","invalidateQueries","useProofAccept","interactionId","credentials","holderSubmitProof","onError","err","useProofReject","holderRejectProof","catch","e","code","OperationNotSupported","IssuanceProtocol","VerificationProtocol","VerificationEngagement","useProposeProof","proposeProof","useProofDelete","deleteProof","useProofs","queryParams","queryKey","pageParam","listProofs","useProofCreate","data","createProof","getIdentifierFilterForProofSchema","proofSchema","config","requestedFormats","proofInputSchemas","map","schema","credentialSchema","format","requestedFormatsCapabilities","_config$format$format","capabilities","filter","x","keyAlgorithms","reduce","others","_others$filter","current","verificationKeyAlgorithms","item","includes","keyStorages","_others$filter2","verificationKeyStorages","useProofForSchemaIdWithTransport","proofSchemaId","transport","identifierFilter","identifiers","mutateAsync","deleting","setDeleting","setProofIdState","proofIdRef","proofState","setProofId","id","retract","CREATED","PENDING","length","protocol","OPENID4VP_PROXIMITY_DRAFT00","verifierIdentifierId","useCleanupUnusedProofs","proofs","proofStates","cleaned","setCleaned","forEach","useShareProof","proofUrlProps","sharedProof","setSharedProof","bleAdapterDisabled","error","_error$cause","cause","useRetainProofCheck","runTask","removeQueries","useDeleteProofData","deleteProofClaims","useDeleteAllProofsData","schemaId","proofSchemaIds","ACCEPTED","Promise","all","reverse","useProofRequestTrustInformation","credentialId","getProofTrustInformation"],"sources":["proofs.ts"],"sourcesContent":["import {\n CoreConfig,\n CreateProofRequest,\n HistoryAction,\n HistoryEntityType,\n HistoryErrorMetadata,\n IdentifierListQuery,\n OneError,\n PresentationSubmitCredentialRequest,\n ProofListQuery,\n ProofSchemaDetail,\n ProofState,\n ProposeProofRequest,\n ShareProofRequest,\n} from '@procivis/react-native-one-core';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { getQueryKeyFromProofListQueryParams } from '../../parsers/query';\nimport { reportException } from '../../reporting';\nimport { Transport } from '../connectivity/connectivity';\nimport { useCoreConfig } from './core-config';\nimport { useONECore } from './core-context';\nimport { OneErrorCode } from './error-code';\nimport { HISTORY_LIST_QUERY_KEY } from './history';\nimport { useIdentifiers } from './identifiers';\nimport { useProofSchemaDetail } from './proof-schemas';\n\nconst PAGE_SIZE = 10;\nexport const PROOF_DETAIL_QUERY_KEY = 'proof-detail';\nexport const PROOF_STATE_QUERY_KEY = 'proof-state';\nexport const PROOF_LIST_QUERY_KEY = 'proof-list';\nexport const PROOF_REQUEST_TRUST_INFORMATION_QUERY_KEY = 'proof-request-trust-information';\n\nexport const useProofDetail = (proofId: string | undefined) => {\n const { core } = useONECore();\n\n return useQuery([PROOF_DETAIL_QUERY_KEY, proofId], () => (proofId ? core.getProof(proofId) : undefined), {\n enabled: Boolean(proofId),\n keepPreviousData: true,\n });\n};\n\nexport const useProofState = (proofId: string | undefined, isPolling: boolean) => {\n const { core, organisationId } = useONECore();\n\n return useQuery(\n [PROOF_STATE_QUERY_KEY, proofId],\n async () => {\n if (!proofId) {\n return undefined;\n }\n\n const state = await core.getProof(proofId).then((proof) => proof.state);\n let metadata: HistoryErrorMetadata | undefined;\n if (state === ProofState.ERROR) {\n metadata = await core\n .listHistory({\n organisationId,\n page: 0,\n pageSize: 1,\n entityIds: [proofId],\n entityTypes: [HistoryEntityType.PROOF],\n actions: [HistoryAction.ERRORED],\n })\n .then((result) => result.values[0]?.metadata?.value as HistoryErrorMetadata);\n }\n return { state, metadata };\n },\n {\n enabled: Boolean(proofId),\n refetchInterval: isPolling ? 1000 : false,\n },\n );\n};\n\ntype ProofUrlHookParams = { proofId: string; request?: ShareProofRequest };\n\nexport const useProofUrl = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({ proofId, request }: ProofUrlHookParams) =>\n core.shareProof(proofId, request ?? {}).then((proof) => proof.url),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_STATE_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofAccept = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({\n interactionId,\n credentials,\n }: {\n credentials: Record<string, PresentationSubmitCredentialRequest[]>;\n interactionId: string;\n }) => core.holderSubmitProof(interactionId, credentials),\n {\n onError: async (err) => {\n reportException(err, 'Proof submission failure');\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofReject = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (interactionId: string) =>\n core.holderRejectProof(interactionId).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.OperationNotSupported) {\n return;\n }\n throw e;\n }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport enum IssuanceProtocol {\n OPENID4VCI_DRAFT13 = 'OPENID4VCI_DRAFT13',\n}\n\nexport enum VerificationProtocol {\n ISO_MDL = 'ISO_MDL',\n OPENID4VP_DRAFT20 = 'OPENID4VP_DRAFT20',\n OPENID4VP_DRAFT25 = 'OPENID4VP_DRAFT25',\n OPENID4VP_PROXIMITY_DRAFT00 = 'OPENID4VP_PROXIMITY_DRAFT00',\n}\n\nexport enum VerificationEngagement {\n QR_CODE = 'QR_CODE',\n NFC = 'NFC',\n}\n\nexport const useProposeProof = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async (request: Omit<ProposeProofRequest, 'organisationId'>) => core.proposeProof({ organisationId, ...request }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofDelete = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (proofId: string) => {\n return core.deleteProof(proofId).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.OperationNotSupported) {\n return;\n }\n throw e;\n });\n },\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_STATE_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofs = (queryParams?: Partial<ProofListQuery>) => {\n const { core, organisationId } = useONECore();\n\n const queryKey = [PROOF_LIST_QUERY_KEY, ...getQueryKeyFromProofListQueryParams(queryParams)];\n\n return useQuery(\n queryKey,\n ({ pageParam = 0 }) =>\n core.listProofs({\n organisationId,\n page: pageParam,\n pageSize: PAGE_SIZE,\n ...queryParams,\n }),\n {\n keepPreviousData: false,\n },\n );\n};\n\nexport const useProofCreate = () => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async (data: CreateProofRequest) => core.createProof(data), {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nconst getIdentifierFilterForProofSchema = (\n proofSchema: ProofSchemaDetail,\n config: CoreConfig,\n): Partial<IdentifierListQuery> => {\n const requestedFormats = proofSchema.proofInputSchemas.map((schema) => schema.credentialSchema.format);\n const requestedFormatsCapabilities = requestedFormats\n .map((format) => config.format[format]?.capabilities)\n .filter((x) => x);\n\n // key algorithms must be supported by all requested formats\n const keyAlgorithms = requestedFormatsCapabilities.reduce<string[] | undefined>((others, capabilities) => {\n const current = capabilities.verificationKeyAlgorithms;\n return others?.filter((item) => current.includes(item)) ?? current;\n }, undefined);\n\n // key storages must be supported by all requested formats\n const keyStorages = requestedFormatsCapabilities.reduce<string[] | undefined>((others, capabilities) => {\n const current = capabilities.verificationKeyStorages;\n return others?.filter((item) => current.includes(item)) ?? current;\n }, undefined);\n\n return { keyAlgorithms, keyStorages };\n};\n\nexport const useProofForSchemaIdWithTransport = (\n proofSchemaId: string,\n transport: Transport[] | undefined,\n enabled: boolean,\n) => {\n const { data: proofSchema } = useProofSchemaDetail(proofSchemaId, enabled);\n const { data: config } = useCoreConfig();\n\n const identifierFilter = useMemo(\n () => (proofSchema && config ? getIdentifierFilterForProofSchema(proofSchema, config) : undefined),\n [config, proofSchema],\n );\n\n const { data: identifiers } = useIdentifiers(identifierFilter);\n const { mutateAsync: createProof } = useProofCreate();\n const { mutateAsync: deleteProof } = useProofDelete();\n\n const [deleting, setDeleting] = useState(false);\n const [proofId, setProofIdState] = useState<string | undefined>(undefined);\n const proofIdRef = useRef<string>();\n\n const { data: proofState } = useProofState(deleting ? undefined : proofId, enabled);\n\n const setProofId = useCallback((id: string | undefined) => {\n proofIdRef.current = id;\n setProofIdState(id);\n }, []);\n\n const retract = useCallback(async () => {\n const id = proofIdRef.current;\n if (!id) {\n return;\n }\n setProofId(undefined);\n await deleteProof(id).catch(() => {});\n }, [deleteProof, setProofId]);\n\n useEffect(() => {\n if (!proofIdRef.current) {\n return;\n }\n setDeleting(true);\n deleteProof(proofIdRef.current)\n .then(() => {\n setProofId(undefined);\n setDeleting(false);\n })\n .catch(() => {});\n }, [proofIdRef, deleteProof, proofSchemaId, transport, setProofId]);\n\n useEffect(() => {\n if (enabled) {\n return;\n }\n\n if (proofState?.state !== ProofState.CREATED && proofState?.state !== ProofState.PENDING) {\n setProofId(undefined);\n } else {\n setDeleting(true);\n deleteProof(proofIdRef.current || '')\n .then(() => {\n setProofId(undefined);\n setDeleting(false);\n })\n .catch(() => {});\n }\n }, [deleteProof, enabled, proofId, proofState, setProofId]);\n\n useEffect(() => {\n if (\n deleting ||\n !enabled ||\n proofId ||\n !identifiers ||\n !identifierFilter ||\n !identifiers.values.length ||\n !transport ||\n transport.length === 0\n ) {\n return;\n }\n\n createProof({\n protocol: VerificationProtocol.OPENID4VP_PROXIMITY_DRAFT00,\n proofSchemaId,\n transport,\n verifierIdentifierId: identifiers.values[0].id,\n })\n .then((id) => {\n setProofId(id);\n })\n .catch(() => {});\n }, [proofSchemaId, identifiers, identifierFilter, createProof, enabled, transport, proofId, setProofId, deleting]);\n\n return { proofId: deleting ? undefined : proofId, retract };\n};\n\nexport const useCleanupUnusedProofs = () => {\n const { mutateAsync: deleteProof } = useProofDelete();\n const { data: proofs } = useProofs({\n page: 0,\n pageSize: 100,\n proofStates: [ProofState.CREATED, ProofState.PENDING],\n });\n const [cleaned, setCleaned] = useState(false);\n\n useEffect(() => {\n if (cleaned || !proofs) {\n return;\n }\n setCleaned(true);\n proofs.values.forEach((proof) => deleteProof(proof.id));\n }, [cleaned, deleteProof, proofs]);\n};\n\nexport const useShareProof = (proofUrlProps: ProofUrlHookParams | undefined, enabled: boolean) => {\n const { mutateAsync: shareProof } = useProofUrl();\n const { data: proofState } = useProofState(proofUrlProps?.proofId, enabled);\n\n const [sharedProof, setSharedProof] = useState<{\n bleAdapterDisabled: boolean;\n url?: string;\n error?: unknown;\n }>();\n\n // reset when proofId changes or the proof was retracted\n useEffect(() => {\n if (!proofUrlProps?.proofId || proofState?.state === ProofState.CREATED) {\n setSharedProof(undefined);\n }\n }, [proofUrlProps?.proofId, proofState]);\n\n useEffect(() => {\n if (!proofUrlProps || !enabled || sharedProof) {\n return;\n }\n\n shareProof(proofUrlProps)\n .then((url) => {\n setSharedProof({\n bleAdapterDisabled: false,\n url,\n });\n })\n .catch((error: unknown) => {\n if (error instanceof OneError && error.cause?.includes('BLE adapter not enabled')) {\n setSharedProof({\n bleAdapterDisabled: true,\n });\n } else {\n setSharedProof({ error, bleAdapterDisabled: false });\n }\n });\n }, [enabled, proofUrlProps, shareProof, sharedProof]);\n\n return sharedProof;\n};\n\nexport const useRetainProofCheck = (proofId?: string) => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async () => core.runTask('RETAIN_PROOF_CHECK', undefined), {\n onSuccess: async () => {\n if (proofId) {\n await queryClient.removeQueries([PROOF_DETAIL_QUERY_KEY, proofId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n }\n },\n });\n};\n\nexport const useDeleteProofData = (proofId: string) => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async () => core.deleteProofClaims(proofId), {\n onSuccess: async () => {\n await queryClient.removeQueries([PROOF_DETAIL_QUERY_KEY, proofId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useDeleteAllProofsData = (schemaId: string) => {\n const queryClient = useQueryClient();\n\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async () =>\n core\n .listProofs({\n organisationId,\n page: 0,\n pageSize: 1000,\n proofSchemaIds: [schemaId],\n proofStates: [ProofState.ACCEPTED],\n })\n .then((result) => Promise.all(result.values.reverse().map((proof) => core.deleteProofClaims(proof.id)))),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofRequestTrustInformation = (credentialId: string | undefined) => {\n const { core } = useONECore();\n\n return useQuery(\n [PROOF_REQUEST_TRUST_INFORMATION_QUERY_KEY, credentialId],\n () => (credentialId ? core.getProofTrustInformation(credentialId) : undefined),\n {\n enabled: Boolean(credentialId),\n keepPreviousData: true,\n },\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -4,3 +4,4 @@ export * from './entity';
4
4
  export * from './history';
5
5
  export * from './navigation';
6
6
  export * from './proof-request';
7
+ export * from './trust-info';
@@ -0,0 +1,3 @@
1
+ import TrustInfo from './trust-info';
2
+ export * from './trust-info';
3
+ export { TrustInfo };
@@ -0,0 +1,19 @@
1
+ import { FC } from 'react';
2
+ import { StyleProp, ViewStyle } from 'react-native';
3
+ export type TrustInfoLabels = {
4
+ unknown: string;
5
+ unknownSubline: string;
6
+ };
7
+ export type TrustInfoProps = {
8
+ labels: TrustInfoLabels;
9
+ onPress?: () => void;
10
+ style?: StyleProp<ViewStyle>;
11
+ sublineColor?: string;
12
+ testID?: string;
13
+ textColor?: string;
14
+ trustInformation?: {
15
+ name: string;
16
+ };
17
+ };
18
+ declare const TrustInfo: FC<TrustInfoProps>;
19
+ export default TrustInfo;
@@ -1,6 +1,8 @@
1
1
  import { FC, ReactNode } from 'react';
2
2
  import { StyleProp, ViewProps, ViewStyle } from 'react-native';
3
+ import { BackButtonIcon } from '../buttons';
3
4
  export interface HeaderProps extends ViewProps {
5
+ backIcon?: BackButtonIcon;
4
6
  onBack?: () => void;
5
7
  rightButtons?: ReactNode[];
6
8
  style?: StyleProp<ViewStyle>;
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { SvgProps } from 'react-native-svg';
3
+ export declare const MailIcon: FC<SvgProps>;
4
+ export declare const PhoneIcon: FC<SvgProps>;
@@ -1,4 +1,5 @@
1
1
  export * from './connectivity';
2
+ export * from './contact';
2
3
  export * from './credential';
3
4
  export * from './entity';
4
5
  export * from './history';
@@ -10,9 +10,12 @@ import type { ScrollViewScreenProps } from './scroll-view-screen';
10
10
  import ScrollViewScreen from './scroll-view-screen';
11
11
  import type { SectionListScreenProps } from './section-list-screen';
12
12
  import SectionListScreen from './section-list-screen';
13
+ import type { TrustInfoDetailsScreenLabels, TrustInfoDetailsScreenProps } from './trust-info-details-screen';
14
+ import TrustInfoDetailsScreen from './trust-info-details-screen';
13
15
  export { BackupScreen, BackupScreenMode, BackupScreenProps };
14
16
  export { ImagePreviewScreen, ImagePreviewScreenProps };
15
17
  export { NerdModeScreen, NerdModeScreenProps, NerdModeSection };
16
18
  export { QRCodeScannerScreen, QRCodeScannerScreenProps };
17
19
  export { ScrollViewScreen, ScrollViewScreenProps };
18
20
  export { SectionListScreen, SectionListScreenProps };
21
+ export { TrustInfoDetailsScreen, TrustInfoDetailsScreenLabels, TrustInfoDetailsScreenProps };
@@ -1,5 +1,6 @@
1
- import { IdentifierListItem } from '@procivis/react-native-one-core';
1
+ import { IdentifierListItem, TrustInformationDetail } from '@procivis/react-native-one-core';
2
2
  import { FunctionComponent } from 'react';
3
+ import { TrustInfoLabels } from '../../components';
3
4
  import { ContextRole } from '../../components/entity/entity-details-with-buttons';
4
5
  import SectionEntityCluster from '../entity/entity-cluster';
5
6
  import { NerdModeItemProps } from '../nerd-view/nerd-mode-item';
@@ -23,8 +24,11 @@ interface SectionEntityCluster {
23
24
  identifier?: IdentifierListItem;
24
25
  subline?: string;
25
26
  entityLabels: EntityLabels;
27
+ legacyTrustManagementEnabled: boolean;
26
28
  role: ContextRole;
27
29
  testID?: string;
30
+ trustInfoLabels: TrustInfoLabels;
31
+ trustInformation?: TrustInformationDetail;
28
32
  }
29
33
  type SectionAttribute = Omit<NerdModeItemProps, 'labels' | 'onCopyToClipboard'>;
30
34
  type NerdModeSectionItem = SectionAttribute | SectionEntityCluster;
@@ -37,6 +41,7 @@ export type NerdModeScreenProps = {
37
41
  labels: AttributesLabels;
38
42
  onClose: () => void;
39
43
  onCopyToClipboard: (value: string) => void;
44
+ onOpenTrustInfoDetails?: (trustInformation: TrustInformationDetail) => void;
40
45
  sections: NerdModeSection[];
41
46
  testID: string;
42
47
  title: string;
@@ -0,0 +1,32 @@
1
+ import { TrustInformationDetail } from '@procivis/react-native-one-core';
2
+ import { FC } from 'react';
3
+ import { TrustInfoLabels } from '../../components/trust-info/trust-info';
4
+ export type TrustInfoDetailsScreenLabels = TrustInfoLabels & {
5
+ collapse: string;
6
+ country: string;
7
+ email: string;
8
+ expand: string;
9
+ identifier: string;
10
+ isPublicSector: string;
11
+ phone: string;
12
+ privacyPolicy: string;
13
+ serviceDescription: string;
14
+ supervisoryAuthority: string;
15
+ support: string;
16
+ title: string;
17
+ true: string;
18
+ website: string;
19
+ };
20
+ export type TrustInfoDetailsScreenProps = {
21
+ countries: {
22
+ display: Record<string, string>;
23
+ value: string;
24
+ }[];
25
+ labels: TrustInfoDetailsScreenLabels;
26
+ language: string;
27
+ onClose: () => void;
28
+ testID: string;
29
+ trustInformation: TrustInformationDetail;
30
+ };
31
+ declare const TrustInfoDetailsScreen: FC<TrustInfoDetailsScreenProps>;
32
+ export default TrustInfoDetailsScreen;
@@ -2,6 +2,7 @@ import { CredentialListQuery, HandleInvitationRequest, HandleInvitationResponse,
2
2
  export declare const CREDENTIAL_LIST_QUERY_KEY = "credential-list";
3
3
  export declare const CREDENTIAL_LIST_PAGED_QUERY_KEY = "credential-list-paged";
4
4
  export declare const CREDENTIAL_DETAIL_QUERY_KEY = "credential-detail";
5
+ export declare const CREDENTIAL_TRUST_INFORMATION_QUERY_KEY = "credential-trust-information";
5
6
  export declare const useCredentials: (queryParams?: Partial<CredentialListQuery>) => import("react-query").UseQueryResult<import("@procivis/react-native-one-core").CredentialListItem[], unknown>;
6
7
  export declare const usePagedCredentials: (queryParams?: Partial<CredentialListQuery>) => import("react-query").UseInfiniteQueryResult<import("@procivis/react-native-one-core").CredentialList, unknown>;
7
8
  export declare const useCredentialDetail: (credentialId: string | undefined, active?: boolean) => import("react-query").UseQueryResult<import("@procivis/react-native-one-core").CredentialDetail | undefined, unknown>;
@@ -13,3 +14,5 @@ export declare const useCredentialDelete: () => import("react-query").UseMutatio
13
14
  export declare const useInvalidateCredentialDetails: () => (credentialId: string | undefined) => Promise<void>;
14
15
  export declare const useInitiateIssuance: () => import("react-query").UseMutationResult<import("@procivis/react-native-one-core").InitiateIssuanceResponse, unknown, Omit<InitiateIssuanceRequest, "organisationId">, unknown>;
15
16
  export declare const useContinueIssuance: () => import("react-query").UseMutationResult<import("@procivis/react-native-one-core").ContinueIssuanceResponse, unknown, string, unknown>;
17
+ export declare const useCredentialTrustInformation: (credentialId: string | undefined) => import("react-query").UseQueryResult<import("@procivis/react-native-one-core").TrustInformationDetail | undefined, unknown>;
18
+ export declare const useCredentialsTrustInformation: (credentialIds: string[]) => import("react-query").UseQueryResult<import("@procivis/react-native-one-core").TrustInformationDetail, unknown>[];
@@ -3,6 +3,7 @@ import { Transport } from '../connectivity/connectivity';
3
3
  export declare const PROOF_DETAIL_QUERY_KEY = "proof-detail";
4
4
  export declare const PROOF_STATE_QUERY_KEY = "proof-state";
5
5
  export declare const PROOF_LIST_QUERY_KEY = "proof-list";
6
+ export declare const PROOF_REQUEST_TRUST_INFORMATION_QUERY_KEY = "proof-request-trust-information";
6
7
  export declare const useProofDetail: (proofId: string | undefined) => import("react-query").UseQueryResult<import("@procivis/react-native-one-core").ProofDetail | undefined, unknown>;
7
8
  export declare const useProofState: (proofId: string | undefined, isPolling: boolean) => import("react-query").UseQueryResult<{
8
9
  state: ProofState;
@@ -48,4 +49,5 @@ export declare const useShareProof: (proofUrlProps: ProofUrlHookParams | undefin
48
49
  export declare const useRetainProofCheck: (proofId?: string) => import("react-query").UseMutationResult<string, unknown, void, unknown>;
49
50
  export declare const useDeleteProofData: (proofId: string) => import("react-query").UseMutationResult<void, unknown, void, unknown>;
50
51
  export declare const useDeleteAllProofsData: (schemaId: string) => import("react-query").UseMutationResult<void[], unknown, void, unknown>;
52
+ export declare const useProofRequestTrustInformation: (credentialId: string | undefined) => import("react-query").UseQueryResult<import("@procivis/react-native-one-core").TrustInformationDetail | undefined, unknown>;
51
53
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procivis/one-react-native-components",
3
- "version": "0.3.115",
3
+ "version": "0.3.121",
4
4
  "author": "Procivis AG (https://procivis.ch)",
5
5
  "license": "Apache-2.0",
6
6
  "description": "Common Procivis ONE UI components for react-native",
@@ -53,7 +53,7 @@
53
53
  "@babel/runtime": "^7.25.0",
54
54
  "@commitlint/config-conventional": "^11.0.0",
55
55
  "@gorhom/bottom-sheet": "^5.1.2",
56
- "@procivis/react-native-one-core": "1.98296.0",
56
+ "@procivis/react-native-one-core": "1.100642.0",
57
57
  "@procivis/react-native-picker": "5.0.3",
58
58
  "@react-native-async-storage/async-storage": "^1.17.3",
59
59
  "@react-native-community/blur": "^4.4.0",
@@ -93,7 +93,7 @@
93
93
  "@types/react": "^18.2.6",
94
94
  "@typescript-eslint/eslint-plugin": "^5.17.0",
95
95
  "@typescript-eslint/parser": "^5.17.0",
96
- "apisauce": "3.2.0",
96
+ "apisauce": "3.2.2",
97
97
  "babel-jest": "^29.6.3",
98
98
  "babel-loader": "^8.2.4",
99
99
  "babel-plugin-react-native-web": "^0.19.13",
@@ -107,7 +107,7 @@
107
107
  "eslint-plugin-simple-import-sort": "^8.0.0",
108
108
  "husky": "^6.0.0",
109
109
  "jest": "^29.6.3",
110
- "lodash": "^4.17.21",
110
+ "lodash": "^4.18.0",
111
111
  "lottie-react-native": "^7.2.2",
112
112
  "metro-react-native-babel-preset": "0.73.10",
113
113
  "moment": "^2.29.4",
@@ -139,18 +139,18 @@
139
139
  "storybook": "^8.6.7",
140
140
  "timeago.js": "^4.0.2",
141
141
  "typescript": "5.0.4",
142
- "vite": "^6.2.2"
142
+ "vite": "^6.4.2"
143
143
  },
144
144
  "peerDependencies": {
145
- "@procivis/react-native-one-core": "^1.98296.0",
145
+ "@procivis/react-native-one-core": "^1.100642.0",
146
146
  "@procivis/react-native-picker": "*",
147
147
  "@react-native-community/blur": "*",
148
148
  "@react-native-community/netinfo": "^11.4.1",
149
149
  "@react-native/normalize-color": "*",
150
150
  "@react-navigation/native": "*",
151
151
  "@sentry/react-native": "^5.24.1",
152
- "apisauce": "3.2.0",
153
- "lodash": "^4.17.21",
152
+ "apisauce": "3.2.2",
153
+ "lodash": "^4.18.0",
154
154
  "lottie-react-native": "^7.2.2",
155
155
  "moment": "^2.29.4",
156
156
  "parse-url": "^9.2.0",
@@ -60,6 +60,7 @@ const defaultIcons: {
60
60
  DELIVERED: HistoryStatusAcceptedIcon,
61
61
  WRP_AC_RECEIVED: HistoryStatusAcceptedIcon,
62
62
  WRP_RC_RECEIVED: HistoryStatusAcceptedIcon,
63
+ WRP_NR_RECEIVED: HistoryStatusAcceptedIcon,
63
64
  },
64
65
  entityTypes: {
65
66
  BACKUP: HistoryRevokeIcon,
@@ -4,3 +4,4 @@ export * from './entity';
4
4
  export * from './history';
5
5
  export * from './navigation';
6
6
  export * from './proof-request';
7
+ export * from './trust-info';
@@ -0,0 +1,4 @@
1
+ import TrustInfo from './trust-info';
2
+
3
+ export * from './trust-info';
4
+ export { TrustInfo };
@@ -0,0 +1,90 @@
1
+ import React, { FC, useMemo } from 'react';
2
+ import { StyleProp, StyleSheet, ViewStyle } from 'react-native';
3
+
4
+ import { AvatarProps, TouchableOpacity } from '../../ui-components';
5
+ import EntityCluster from '../../ui-components/entity/entity-cluster';
6
+ import { EntityNotTrustedIcon, EntityTrustedIcon, UpIcon } from '../../ui-components/icons';
7
+ import { concatTestID } from '../../utils';
8
+
9
+ export type TrustInfoLabels = {
10
+ unknown: string;
11
+ unknownSubline: string;
12
+ };
13
+
14
+ export type TrustInfoProps = {
15
+ labels: TrustInfoLabels;
16
+ onPress?: () => void;
17
+ style?: StyleProp<ViewStyle>;
18
+ sublineColor?: string;
19
+ testID?: string;
20
+ textColor?: string;
21
+ trustInformation?: {
22
+ name: string;
23
+ };
24
+ };
25
+
26
+ const TrustInfo: FC<TrustInfoProps> = ({
27
+ labels,
28
+ onPress,
29
+ style,
30
+ sublineColor,
31
+ testID,
32
+ textColor,
33
+ trustInformation,
34
+ }) => {
35
+ const avatarProps: AvatarProps | undefined = useMemo(() => {
36
+ const placeholderText = trustInformation?.name.substring(0, 1) ?? labels.unknown.substring(0, 1);
37
+
38
+ const statusIcon = trustInformation ? (
39
+ <EntityTrustedIcon testID={concatTestID(testID, 'statusIcon', 'trusted')} />
40
+ ) : (
41
+ <EntityNotTrustedIcon testID={concatTestID(testID, 'statusIcon', 'notTrusted')} />
42
+ );
43
+
44
+ return {
45
+ placeholderText,
46
+ statusIcon,
47
+ };
48
+ }, [labels, testID, trustInformation]);
49
+
50
+ const trustEntityName = useMemo(() => trustInformation?.name ?? labels.unknown, [labels.unknown, trustInformation]);
51
+
52
+ return (
53
+ <TouchableOpacity disabled={!onPress || !trustInformation} onPress={onPress} style={[styles.button, style]}>
54
+ <EntityCluster
55
+ avatar={avatarProps}
56
+ entityName={trustEntityName}
57
+ style={styles.cluster}
58
+ subline={trustInformation ? undefined : labels.unknownSubline}
59
+ sublineColor={sublineColor}
60
+ testID={testID}
61
+ textColor={textColor}
62
+ />
63
+ {onPress && trustInformation && <UpIcon color={textColor} style={styles.chevron} />}
64
+ </TouchableOpacity>
65
+ );
66
+ };
67
+
68
+ const styles = StyleSheet.create({
69
+ button: {
70
+ alignItems: 'center',
71
+ flexDirection: 'row',
72
+ flexWrap: 'nowrap',
73
+ width: '100%',
74
+ },
75
+ chevron: {
76
+ marginLeft: 10,
77
+ marginRight: 18,
78
+ transform: [
79
+ {
80
+ rotate: '90deg',
81
+ },
82
+ ],
83
+ },
84
+ cluster: {
85
+ flex: 1,
86
+ flexShrink: 1,
87
+ },
88
+ });
89
+
90
+ export default TrustInfo;