@procivis/one-react-native-components 0.3.94 → 0.3.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/backup/preview-credentials.js.map +1 -1
- package/lib/commonjs/components/credential/credential.js.map +1 -1
- package/lib/commonjs/components/entity/EntityButtons.js.map +1 -1
- package/lib/commonjs/components/entity/entity-attributes.js.map +1 -1
- package/lib/commonjs/components/entity/entity-details-with-buttons.js +2 -2
- package/lib/commonjs/components/entity/entity-details-with-buttons.js.map +1 -1
- package/lib/commonjs/components/entity/entity-details.js +3 -3
- package/lib/commonjs/components/entity/entity-details.js.map +1 -1
- package/lib/commonjs/components/history/history-details-screen.js +10 -10
- package/lib/commonjs/components/history/history-details-screen.js.map +1 -1
- package/lib/commonjs/components/history/history-list-item-icon.js +12 -8
- package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
- package/lib/commonjs/components/history/history-list-item.js.map +1 -1
- package/lib/commonjs/components/history/history-list-screen.js.map +1 -1
- package/lib/commonjs/components/history/history-list-section-header.js +1 -1
- package/lib/commonjs/components/history/history-list-section-header.js.map +1 -1
- package/lib/commonjs/components/history/history-list.js.map +1 -1
- package/lib/commonjs/components/proof-request/share-credential-card-notice.js.map +1 -1
- package/lib/commonjs/components/proof-request/v1/select-credential.js.map +1 -1
- package/lib/commonjs/components/proof-request/v1/share-credential.js +1 -1
- package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/select-credential-v2.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +2 -2
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +2 -2
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
- package/lib/commonjs/ui-components/accessibility/accessibilityHistoryWrappers.js.map +1 -1
- package/lib/commonjs/ui-components/accessibility/locale/fi.json +1 -1
- package/lib/commonjs/ui-components/entity/entity-cluster.js.map +1 -1
- package/lib/commonjs/ui-components/header/foldable-header.js.map +1 -1
- package/lib/commonjs/ui-components/history/history-section-header.js +1 -1
- package/lib/commonjs/ui-components/history/history-section-header.js.map +1 -1
- package/lib/commonjs/ui-components/history/history-section-list-item.js +1 -1
- package/lib/commonjs/ui-components/history/history-section-list-item.js.map +1 -1
- package/lib/commonjs/ui-components/icons/entity.js.map +1 -1
- package/lib/commonjs/ui-components/screens/nerd-mode-screen.js.map +1 -1
- package/lib/commonjs/ui-components/screens/section-list-screen.js.map +1 -1
- package/lib/commonjs/ui-components/settings/button-setting.js +3 -1
- package/lib/commonjs/ui-components/settings/button-setting.js.map +1 -1
- package/lib/commonjs/ui-components/settings/setting-item.js +4 -2
- package/lib/commonjs/ui-components/settings/setting-item.js.map +1 -1
- package/lib/commonjs/ui-components/settings/switch-setting.js +4 -2
- package/lib/commonjs/ui-components/settings/switch-setting.js.map +1 -1
- package/lib/commonjs/utils/date.js.map +1 -1
- package/lib/commonjs/utils/history.js +1 -41
- package/lib/commonjs/utils/history.js.map +1 -1
- package/lib/commonjs/utils/hooks/connectivity/connectivity.test.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/backup.js +3 -3
- package/lib/commonjs/utils/hooks/core/backup.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/cache.js +10 -10
- package/lib/commonjs/utils/hooks/core/cache.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/core-context.js +5 -5
- package/lib/commonjs/utils/hooks/core/core-context.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/credential-schemas.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/credentials.js +3 -3
- package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/dids.js +1 -1
- package/lib/commonjs/utils/hooks/core/dids.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/history.js +1 -1
- package/lib/commonjs/utils/hooks/core/history.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/identifiers.js +3 -3
- package/lib/commonjs/utils/hooks/core/identifiers.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/proof-schemas.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/proofs.js +9 -9
- package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/trust-entity.js +5 -5
- package/lib/commonjs/utils/hooks/core/trust-entity.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/wallet-unit.js +1 -1
- package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -1
- package/lib/commonjs/utils/hooks/navigation/open-settings.js.map +1 -1
- package/lib/commonjs/utils/hooks/revocation/credential-status.js +1 -1
- package/lib/commonjs/utils/hooks/revocation/credential-status.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-images.js +11 -10
- package/lib/commonjs/utils/parsers/credential-images.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js +14 -33
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing.js +4 -12
- package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential.js +31 -32
- package/lib/commonjs/utils/parsers/credential.js.map +1 -1
- package/lib/commonjs/utils/parsers/query.js.map +1 -1
- package/lib/commonjs/utils/url.js.map +1 -1
- package/lib/module/components/backup/preview-credentials.js.map +1 -1
- package/lib/module/components/credential/credential.js.map +1 -1
- package/lib/module/components/entity/EntityButtons.js.map +1 -1
- package/lib/module/components/entity/entity-attributes.js.map +1 -1
- package/lib/module/components/entity/entity-details-with-buttons.js +3 -3
- package/lib/module/components/entity/entity-details-with-buttons.js.map +1 -1
- package/lib/module/components/entity/entity-details.js +4 -4
- package/lib/module/components/entity/entity-details.js.map +1 -1
- package/lib/module/components/history/history-details-screen.js +11 -11
- package/lib/module/components/history/history-details-screen.js.map +1 -1
- package/lib/module/components/history/history-list-item-icon.js +13 -9
- package/lib/module/components/history/history-list-item-icon.js.map +1 -1
- package/lib/module/components/history/history-list-item.js.map +1 -1
- package/lib/module/components/history/history-list-screen.js.map +1 -1
- package/lib/module/components/history/history-list-section-header.js +1 -1
- package/lib/module/components/history/history-list-section-header.js.map +1 -1
- package/lib/module/components/history/history-list.js.map +1 -1
- package/lib/module/components/proof-request/share-credential-card-notice.js.map +1 -1
- package/lib/module/components/proof-request/v1/select-credential.js.map +1 -1
- package/lib/module/components/proof-request/v1/share-credential.js +2 -2
- package/lib/module/components/proof-request/v1/share-credential.js.map +1 -1
- package/lib/module/components/proof-request/v2/select-credential-v2.js.map +1 -1
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js +2 -2
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
- package/lib/module/components/proof-request/v2/share-credential-v2.js +2 -2
- package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
- package/lib/module/ui-components/accessibility/accessibilityHistoryWrappers.js.map +1 -1
- package/lib/module/ui-components/accessibility/locale/fi.json +1 -1
- package/lib/module/ui-components/entity/entity-cluster.js.map +1 -1
- package/lib/module/ui-components/header/foldable-header.js.map +1 -1
- package/lib/module/ui-components/history/history-section-header.js +1 -1
- package/lib/module/ui-components/history/history-section-header.js.map +1 -1
- package/lib/module/ui-components/history/history-section-list-item.js +1 -1
- package/lib/module/ui-components/history/history-section-list-item.js.map +1 -1
- package/lib/module/ui-components/icons/entity.js.map +1 -1
- package/lib/module/ui-components/screens/nerd-mode-screen.js.map +1 -1
- package/lib/module/ui-components/screens/section-list-screen.js.map +1 -1
- package/lib/module/ui-components/settings/button-setting.js +3 -1
- package/lib/module/ui-components/settings/button-setting.js.map +1 -1
- package/lib/module/ui-components/settings/setting-item.js +4 -2
- package/lib/module/ui-components/settings/setting-item.js.map +1 -1
- package/lib/module/ui-components/settings/switch-setting.js +4 -2
- package/lib/module/ui-components/settings/switch-setting.js.map +1 -1
- package/lib/module/utils/date.js.map +1 -1
- package/lib/module/utils/history.js +0 -38
- package/lib/module/utils/history.js.map +1 -1
- package/lib/module/utils/hooks/connectivity/connectivity.test.js.map +1 -1
- package/lib/module/utils/hooks/core/backup.js +4 -4
- package/lib/module/utils/hooks/core/backup.js.map +1 -1
- package/lib/module/utils/hooks/core/cache.js +11 -11
- package/lib/module/utils/hooks/core/cache.js.map +1 -1
- package/lib/module/utils/hooks/core/core-context.js +5 -5
- package/lib/module/utils/hooks/core/core-context.js.map +1 -1
- package/lib/module/utils/hooks/core/credential-schemas.js.map +1 -1
- package/lib/module/utils/hooks/core/credentials.js +4 -4
- package/lib/module/utils/hooks/core/credentials.js.map +1 -1
- package/lib/module/utils/hooks/core/dids.js +2 -2
- package/lib/module/utils/hooks/core/dids.js.map +1 -1
- package/lib/module/utils/hooks/core/history.js +1 -1
- package/lib/module/utils/hooks/core/history.js.map +1 -1
- package/lib/module/utils/hooks/core/identifiers.js +4 -4
- package/lib/module/utils/hooks/core/identifiers.js.map +1 -1
- package/lib/module/utils/hooks/core/proof-schemas.js.map +1 -1
- package/lib/module/utils/hooks/core/proofs.js +10 -10
- package/lib/module/utils/hooks/core/proofs.js.map +1 -1
- package/lib/module/utils/hooks/core/trust-entity.js +6 -6
- package/lib/module/utils/hooks/core/trust-entity.js.map +1 -1
- package/lib/module/utils/hooks/core/wallet-unit.js +2 -2
- package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -1
- package/lib/module/utils/hooks/navigation/open-settings.js.map +1 -1
- package/lib/module/utils/hooks/revocation/credential-status.js +2 -2
- package/lib/module/utils/hooks/revocation/credential-status.js.map +1 -1
- package/lib/module/utils/parsers/credential-images.js +12 -11
- package/lib/module/utils/parsers/credential-images.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing-v2.js +14 -33
- package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing.js +4 -12
- package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/module/utils/parsers/credential.js +32 -33
- package/lib/module/utils/parsers/credential.js.map +1 -1
- package/lib/module/utils/parsers/query.js.map +1 -1
- package/lib/module/utils/url.js.map +1 -1
- package/lib/typescript/components/backup/preview-credentials.d.ts +2 -2
- package/lib/typescript/components/credential/credential.d.ts +2 -2
- package/lib/typescript/components/entity/EntityButtons.d.ts +2 -2
- package/lib/typescript/components/entity/entity-attributes.d.ts +2 -2
- package/lib/typescript/components/entity/entity-details-with-buttons.d.ts +3 -3
- package/lib/typescript/components/entity/entity-details.d.ts +5 -5
- package/lib/typescript/components/history/history-details-screen.d.ts +2 -2
- package/lib/typescript/components/history/history-list-item-icon.d.ts +3 -3
- package/lib/typescript/components/history/history-list-item.d.ts +5 -5
- package/lib/typescript/components/history/history-list-screen.d.ts +4 -4
- package/lib/typescript/components/history/history-list.d.ts +5 -5
- package/lib/typescript/components/proof-request/v1/select-credential.d.ts +2 -2
- package/lib/typescript/components/proof-request/v1/share-credential.d.ts +6 -6
- package/lib/typescript/components/proof-request/v2/select-credential-v2.d.ts +3 -3
- package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +4 -4
- package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +5 -5
- package/lib/typescript/ui-components/screens/nerd-mode-screen.d.ts +2 -2
- package/lib/typescript/ui-components/settings/setting-item.d.ts +1 -0
- package/lib/typescript/utils/history.d.ts +3 -5
- package/lib/typescript/utils/hooks/core/backup.d.ts +3 -3
- package/lib/typescript/utils/hooks/core/cache.d.ts +2 -2
- package/lib/typescript/utils/hooks/core/core-context.d.ts +1 -1
- package/lib/typescript/utils/hooks/core/credential-schemas.d.ts +6 -6
- package/lib/typescript/utils/hooks/core/credentials.d.ts +8 -8
- package/lib/typescript/utils/hooks/core/dids.d.ts +2 -2
- package/lib/typescript/utils/hooks/core/history.d.ts +2 -2
- package/lib/typescript/utils/hooks/core/identifiers.d.ts +3 -3
- package/lib/typescript/utils/hooks/core/proof-schemas.d.ts +7 -7
- package/lib/typescript/utils/hooks/core/proofs.d.ts +9 -9
- package/lib/typescript/utils/hooks/core/trust-entity.d.ts +6 -6
- package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +5 -5
- package/lib/typescript/utils/parsers/credential-images.d.ts +2 -2
- package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +7 -7
- package/lib/typescript/utils/parsers/credential-sharing.d.ts +8 -9
- package/lib/typescript/utils/parsers/credential.d.ts +15 -35
- package/lib/typescript/utils/parsers/query.d.ts +8 -8
- package/package.json +6 -4
- package/src/components/backup/preview-credentials.tsx +2 -2
- package/src/components/credential/credential.tsx +2 -2
- package/src/components/entity/EntityButtons.tsx +2 -2
- package/src/components/entity/entity-attributes.tsx +4 -4
- package/src/components/entity/entity-details-with-buttons.tsx +11 -6
- package/src/components/entity/entity-details.tsx +17 -16
- package/src/components/history/history-details-screen.tsx +13 -16
- package/src/components/history/history-list-item-icon.tsx +19 -11
- package/src/components/history/history-list-item.tsx +9 -5
- package/src/components/history/history-list-screen.tsx +4 -4
- package/src/components/history/history-list-section-header.tsx +1 -1
- package/src/components/history/history-list.tsx +6 -6
- package/src/components/proof-request/share-credential-card-notice.tsx +1 -1
- package/src/components/proof-request/v1/select-credential.tsx +2 -2
- package/src/components/proof-request/v1/share-credential.tsx +13 -11
- package/src/components/proof-request/v2/select-credential-v2.tsx +6 -3
- package/src/components/proof-request/v2/share-credential-v2-group.tsx +12 -12
- package/src/components/proof-request/v2/share-credential-v2.tsx +11 -11
- package/src/ui-components/accessibility/accessibilityHistoryWrappers.tsx +4 -1
- package/src/ui-components/accessibility/locale/fi.json +1 -1
- package/src/ui-components/buttons/ghost-button.stories.tsx +0 -1
- package/src/ui-components/control/checkbox.stories.tsx +1 -1
- package/src/ui-components/control/switch.stories.tsx +1 -1
- package/src/ui-components/credential/card/credential-header.stories.tsx +0 -1
- package/src/ui-components/entity/entity-cluster.tsx +7 -6
- package/src/ui-components/header/foldable-header.tsx +8 -11
- package/src/ui-components/history/history-section-header.tsx +1 -1
- package/src/ui-components/history/history-section-list-item.tsx +1 -1
- package/src/ui-components/icons/entity.tsx +2 -2
- package/src/ui-components/pin/pin-code-screen.stories.tsx +1 -1
- package/src/ui-components/screens/image-preview-screen.stories.tsx +1 -1
- package/src/ui-components/screens/nerd-mode-screen.tsx +2 -2
- package/src/ui-components/screens/qr-code-scanner-screen.stories.tsx +1 -1
- package/src/ui-components/screens/section-list-screen.tsx +10 -1
- package/src/ui-components/searchbar/search-bar.stories.tsx +0 -1
- package/src/ui-components/settings/button-setting.tsx +2 -1
- package/src/ui-components/settings/setting-item.tsx +9 -2
- package/src/ui-components/settings/switch-setting.tsx +9 -2
- package/src/ui-components/text/typography.stories.tsx +2 -2
- package/src/utils/date.ts +2 -2
- package/src/utils/history.ts +4 -45
- package/src/utils/hooks/connectivity/connectivity.test.ts +2 -2
- package/src/utils/hooks/core/backup.ts +4 -4
- package/src/utils/hooks/core/cache.ts +13 -13
- package/src/utils/hooks/core/core-context.tsx +6 -6
- package/src/utils/hooks/core/credential-schemas.ts +7 -4
- package/src/utils/hooks/core/credentials.ts +21 -13
- package/src/utils/hooks/core/dids.ts +3 -3
- package/src/utils/hooks/core/history.ts +3 -3
- package/src/utils/hooks/core/identifiers.ts +9 -5
- package/src/utils/hooks/core/proof-schemas.ts +21 -16
- package/src/utils/hooks/core/proofs.ts +31 -27
- package/src/utils/hooks/core/trust-entity.ts +19 -12
- package/src/utils/hooks/core/wallet-unit.ts +21 -11
- package/src/utils/hooks/navigation/open-settings.ts +1 -1
- package/src/utils/hooks/revocation/credential-status.ts +2 -2
- package/src/utils/parsers/credential-images.tsx +19 -13
- package/src/utils/parsers/credential-sharing-v2.tsx +32 -48
- package/src/utils/parsers/credential-sharing.tsx +26 -36
- package/src/utils/parsers/credential.ts +64 -61
- package/src/utils/parsers/query.ts +16 -14
- package/src/utils/url.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","Dimensions","CredentialDetailsCardListItem","useCoreConfig","useCredentialDetail","selectCredentialCardFromCredential","SelectCredential","credentialId","labels","lastItem","onImagePreview","onPress","request","selected","testID","data","credential","config","cardWidth","get","width","card","attributes","createElement","onHeaderPress","expanded"],"sources":["select-credential.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"names":["React","useMemo","Dimensions","CredentialDetailsCardListItem","useCoreConfig","useCredentialDetail","selectCredentialCardFromCredential","SelectCredential","credentialId","labels","lastItem","onImagePreview","onPress","request","selected","testID","data","credential","config","cardWidth","get","width","card","attributes","createElement","onHeaderPress","expanded"],"sources":["select-credential.tsx"],"sourcesContent":["import { PresentationDefinitionRequestedCredentialBindingDto } from '@procivis/react-native-one-core';\nimport React, { FC, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType } from 'react-native';\n\nimport { CredentialDetailsCardListItem } from '../../../ui-components';\nimport { useCoreConfig } from '../../../utils/hooks/core/core-config';\nimport { useCredentialDetail } from '../../../utils/hooks/core/credentials';\nimport {\n selectCredentialCardFromCredential,\n ShareCredentialCardLabels,\n} from '../../../utils/parsers/credential-sharing';\n\nexport const SelectCredential: FC<{\n credentialId: string;\n labels: ShareCredentialCardLabels;\n lastItem: boolean;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onPress?: () => void;\n request: PresentationDefinitionRequestedCredentialBindingDto;\n selected: boolean;\n testID: string;\n}> = ({ credentialId, labels, lastItem, onImagePreview, onPress, request, selected, testID }) => {\n const { data: credential } = useCredentialDetail(credentialId);\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n if (!credential || !config) {\n return null;\n }\n\n const { card, attributes } = selectCredentialCardFromCredential(\n credential,\n selected,\n request,\n config,\n testID,\n labels,\n );\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n onHeaderPress: onPress,\n width: cardWidth,\n }}\n expanded={selected}\n lastItem={lastItem}\n onImagePreview={onImagePreview}\n />\n );\n};\n"],"mappings":"AACA,OAAOA,KAAK,IAAQC,OAAO,QAAQ,OAAO;AAC1C,SAASC,UAAU,QAA6B,cAAc;AAE9D,SAASC,6BAA6B,QAAQ,wBAAwB;AACtE,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SAASC,mBAAmB,QAAQ,uCAAuC;AAC3E,SACEC,kCAAkC,QAE7B,2CAA2C;AAElD,OAAO,MAAMC,gBASX,GAAGA,CAAC;EAAEC,YAAY;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,cAAc;EAAEC,OAAO;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAO,CAAC,KAAK;EAC/F,MAAM;IAAEC,IAAI,EAAEC;EAAW,CAAC,GAAGZ,mBAAmB,CAACG,YAAY,CAAC;EAC9D,MAAM;IAAEQ,IAAI,EAAEE;EAAO,CAAC,GAAGd,aAAa,CAAC,CAAC;EACxC,MAAMe,SAAS,GAAGlB,OAAO,CAAC,MAAMC,UAAU,CAACkB,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;EAExE,IAAI,CAACJ,UAAU,IAAI,CAACC,MAAM,EAAE;IAC1B,OAAO,IAAI;EACb;EAEA,MAAM;IAAEI,IAAI;IAAEC;EAAW,CAAC,GAAGjB,kCAAkC,CAC7DW,UAAU,EACVH,QAAQ,EACRD,OAAO,EACPK,MAAM,EACNH,MAAM,EACNN,MACF,CAAC;EAED,oBACET,KAAA,CAAAwB,aAAA,CAACrB,6BAA6B;IAC5BoB,UAAU,EAAEA,UAAW;IACvBD,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPG,aAAa,EAAEb,OAAO;MACtBS,KAAK,EAAEF;IACT,CAAE;IACFO,QAAQ,EAAEZ,QAAS;IACnBJ,QAAQ,EAAEA,QAAS;IACnBC,cAAc,EAAEA;EAAe,CAChC,CAAC;AAEN,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CredentialStateBindingEnum } from '@procivis/react-native-one-core';
|
|
2
2
|
import React, { useMemo } from 'react';
|
|
3
3
|
import { Dimensions, StyleSheet } from 'react-native';
|
|
4
4
|
import { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';
|
|
@@ -33,7 +33,7 @@ export const ShareCredential = ({
|
|
|
33
33
|
const selectionOptions = useMemo(() => request.applicableCredentials.filter(applicableCredentialId => allCredentials.some(({
|
|
34
34
|
id,
|
|
35
35
|
state
|
|
36
|
-
}) => id === applicableCredentialId && state ===
|
|
36
|
+
}) => id === applicableCredentialId && state === CredentialStateBindingEnum.ACCEPTED)), [allCredentials, request]);
|
|
37
37
|
const multipleCredentialsAvailable = selectionOptions.length > 1;
|
|
38
38
|
const validityState = getValidityState(credential ? {
|
|
39
39
|
...credential,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CredentialStateEnum","React","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","useCoreConfig","getValidityState","ValidityState","shareCredentialCardFromCredential","SelectShareCredentialCardNotice","ShareCredentialCardNotice","ShareCredential","allCredentials","expanded","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","request","selectedCredentialId","selectedFields","style","testID","_credential$issuer","colorScheme","credential","find","c","id","data","config","cardWidth","get","width","selectionOptions","applicableCredentials","filter","applicableCredentialId","some","state","ACCEPTED","multipleCredentialsAvailable","length","validityState","issuer","undefined","invalid","lvvcIssuanceDate","validityCredentialNbf","Date","footer","Revoked","createElement","text","revokedCredentialNotice","Suspended","suspendedCredentialNotice","invalidCredentialNotice","buttonTitle","multipleCredentialsSelect","onPress","multipleCredentialsNotice","card","attributes","Boolean","credentialId","onAttributeSelected","styles","borderColor","background","create","borderRadius","borderWidth","marginBottom"],"sources":["share-credential.tsx"],"sourcesContent":["import {\n CredentialDetail,\n CredentialListItem,\n CredentialStateEnum,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';\nimport { concatTestID } from '../../../utils';\nimport { useCoreConfig } from '../../../utils/hooks/core/core-config';\nimport { getValidityState, ValidityState } from '../../../utils/parsers/credential';\nimport {\n shareCredentialCardFromCredential,\n ShareCredentialCardLabels,\n} from '../../../utils/parsers/credential-sharing';\nimport { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';\nimport { ShareCredentialCardNotice } from '../share-credential-card-notice';\n\nexport type ShareCredentialLabels = ShareCredentialCardLabels & {\n invalidCredentialNotice: string;\n multipleCredentialsNotice: string;\n multipleCredentialsSelect: string;\n revokedCredentialNotice: string;\n suspendedCredentialNotice: string;\n};\n\nexport const ShareCredential: FunctionComponent<{\n allCredentials: CredentialDetail[];\n expanded?: boolean;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (_id: PresentationDefinitionField['id'], _selected: boolean) => void;\n request: PresentationDefinitionRequestedCredential;\n selectedCredentialId?: CredentialListItem['id'];\n selectedFields?: Array<PresentationDefinitionField['id']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n}> = ({\n allCredentials,\n expanded,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n request,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const credential = allCredentials.find((c) => c.id === selectedCredentialId);\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n const selectionOptions = useMemo(\n () =>\n request.applicableCredentials.filter((applicableCredentialId) =>\n allCredentials.some(({ id, state }) => id === applicableCredentialId && state === CredentialStateEnum.ACCEPTED),\n ),\n [allCredentials, request],\n );\n const multipleCredentialsAvailable = selectionOptions.length > 1;\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const invalid = useMemo(() => {\n if (!credential?.lvvcIssuanceDate || !request.validityCredentialNbf) {\n return false;\n }\n return new Date(credential.lvvcIssuanceDate) < new Date(request.validityCredentialNbf);\n }, [credential, request]);\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 (invalid) {\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 }, [expanded, invalid, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);\n\n if (!config) {\n return null;\n }\n\n const { card, attributes } = shareCredentialCardFromCredential(\n credential,\n invalid,\n Boolean(expanded),\n multipleCredentialsAvailable,\n request,\n selectedFields,\n config,\n testID,\n labels,\n );\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId: request.id,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onSelectField}\n onImagePreview={onImagePreview}\n style={[styles.credential, { borderColor: colorScheme.background }, style]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n credential: {\n borderRadius: 10,\n borderWidth: 1,\n marginBottom: 8,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CredentialStateBindingEnum","React","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","useCoreConfig","getValidityState","ValidityState","shareCredentialCardFromCredential","SelectShareCredentialCardNotice","ShareCredentialCardNotice","ShareCredential","allCredentials","expanded","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","request","selectedCredentialId","selectedFields","style","testID","_credential$issuer","colorScheme","credential","find","c","id","data","config","cardWidth","get","width","selectionOptions","applicableCredentials","filter","applicableCredentialId","some","state","ACCEPTED","multipleCredentialsAvailable","length","validityState","issuer","undefined","invalid","lvvcIssuanceDate","validityCredentialNbf","Date","footer","Revoked","createElement","text","revokedCredentialNotice","Suspended","suspendedCredentialNotice","invalidCredentialNotice","buttonTitle","multipleCredentialsSelect","onPress","multipleCredentialsNotice","card","attributes","Boolean","credentialId","onAttributeSelected","styles","borderColor","background","create","borderRadius","borderWidth","marginBottom"],"sources":["share-credential.tsx"],"sourcesContent":["import {\n CredentialDetailBindingDto,\n CredentialListItemBindingDto,\n CredentialStateBindingEnum,\n PresentationDefinitionFieldBindingDto,\n PresentationDefinitionRequestedCredentialBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';\nimport { concatTestID } from '../../../utils';\nimport { useCoreConfig } from '../../../utils/hooks/core/core-config';\nimport { getValidityState, ValidityState } from '../../../utils/parsers/credential';\nimport {\n shareCredentialCardFromCredential,\n ShareCredentialCardLabels,\n} from '../../../utils/parsers/credential-sharing';\nimport { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';\nimport { ShareCredentialCardNotice } from '../share-credential-card-notice';\n\nexport type ShareCredentialLabels = ShareCredentialCardLabels & {\n invalidCredentialNotice: string;\n multipleCredentialsNotice: string;\n multipleCredentialsSelect: string;\n revokedCredentialNotice: string;\n suspendedCredentialNotice: string;\n};\n\nexport const ShareCredential: FunctionComponent<{\n allCredentials: CredentialDetailBindingDto[];\n expanded?: boolean;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (_id: PresentationDefinitionFieldBindingDto['id'], _selected: boolean) => void;\n request: PresentationDefinitionRequestedCredentialBindingDto;\n selectedCredentialId?: CredentialListItemBindingDto['id'];\n selectedFields?: Array<PresentationDefinitionFieldBindingDto['id']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n}> = ({\n allCredentials,\n expanded,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n request,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const credential = allCredentials.find((c) => c.id === selectedCredentialId);\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n const selectionOptions = useMemo(\n () =>\n request.applicableCredentials.filter((applicableCredentialId) =>\n allCredentials.some(\n ({ id, state }) => id === applicableCredentialId && state === CredentialStateBindingEnum.ACCEPTED,\n ),\n ),\n [allCredentials, request],\n );\n const multipleCredentialsAvailable = selectionOptions.length > 1;\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const invalid = useMemo(() => {\n if (!credential?.lvvcIssuanceDate || !request.validityCredentialNbf) {\n return false;\n }\n return new Date(credential.lvvcIssuanceDate) < new Date(request.validityCredentialNbf);\n }, [credential, request]);\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 (invalid) {\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 }, [expanded, invalid, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);\n\n if (!config) {\n return null;\n }\n\n const { card, attributes } = shareCredentialCardFromCredential(\n credential,\n invalid,\n Boolean(expanded),\n multipleCredentialsAvailable,\n request,\n selectedFields,\n config,\n testID,\n labels,\n );\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId: request.id,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onSelectField}\n onImagePreview={onImagePreview}\n style={[styles.credential, { borderColor: colorScheme.background }, style]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n credential: {\n borderRadius: 10,\n borderWidth: 1,\n marginBottom: 8,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useMemo","Dimensions","CredentialDetailsCardListItem","useCoreConfig","selectCredentialCardFromV2Credential","SelectCredentialV2","credential","labels","lastItem","multiple","onImagePreview","onSelected","selected","testID","data","config","cardWidth","get","width","onHeaderPress","id","card","attributes","createElement","expanded"],"sources":["select-credential-v2.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","Dimensions","CredentialDetailsCardListItem","useCoreConfig","selectCredentialCardFromV2Credential","SelectCredentialV2","credential","labels","lastItem","multiple","onImagePreview","onSelected","selected","testID","data","config","cardWidth","get","width","onHeaderPress","id","card","attributes","createElement","expanded"],"sources":["select-credential-v2.tsx"],"sourcesContent":["import {\n CredentialListItemBindingDto,\n PresentationDefinitionV2CredentialDetailBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FC, useCallback, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType } from 'react-native';\n\nimport { CredentialDetailsCardListItem } from '../../../ui-components';\nimport { ShareCredentialCardLabels, useCoreConfig } from '../../../utils';\nimport { selectCredentialCardFromV2Credential } from '../../../utils/parsers/credential-sharing-v2';\n\nexport const SelectCredentialV2: FC<{\n credential: PresentationDefinitionV2CredentialDetailBindingDto;\n labels: ShareCredentialCardLabels;\n lastItem: boolean;\n multiple: boolean;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelected?: (credentialId: CredentialListItemBindingDto['id'], selected: boolean) => void;\n selected: boolean;\n testID: string;\n}> = ({ credential, labels, lastItem, multiple, onImagePreview, onSelected, selected, testID }) => {\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n const onHeaderPress = useCallback(() => {\n onSelected?.(credential.id, !selected);\n }, [credential.id, onSelected, selected]);\n\n if (!credential || !config) {\n return null;\n }\n\n const { card, attributes } = selectCredentialCardFromV2Credential(\n credential,\n selected,\n multiple,\n config,\n testID,\n labels,\n );\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={selected}\n lastItem={lastItem}\n onImagePreview={onImagePreview}\n />\n );\n};\n"],"mappings":"AAIA,OAAOA,KAAK,IAAQC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACvD,SAASC,UAAU,QAA6B,cAAc;AAE9D,SAASC,6BAA6B,QAAQ,wBAAwB;AACtE,SAAoCC,aAAa,QAAQ,gBAAgB;AACzE,SAASC,oCAAoC,QAAQ,8CAA8C;AAEnG,OAAO,MAAMC,kBASX,GAAGA,CAAC;EAAEC,UAAU;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,QAAQ;EAAEC,cAAc;EAAEC,UAAU;EAAEC,QAAQ;EAAEC;AAAO,CAAC,KAAK;EACjG,MAAM;IAAEC,IAAI,EAAEC;EAAO,CAAC,GAAGZ,aAAa,CAAC,CAAC;EACxC,MAAMa,SAAS,GAAGhB,OAAO,CAAC,MAAMC,UAAU,CAACgB,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;EAExE,MAAMC,aAAa,GAAGpB,WAAW,CAAC,MAAM;IACtCY,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAGL,UAAU,CAACc,EAAE,EAAE,CAACR,QAAQ,CAAC;EACxC,CAAC,EAAE,CAACN,UAAU,CAACc,EAAE,EAAET,UAAU,EAAEC,QAAQ,CAAC,CAAC;EAEzC,IAAI,CAACN,UAAU,IAAI,CAACS,MAAM,EAAE;IAC1B,OAAO,IAAI;EACb;EAEA,MAAM;IAAEM,IAAI;IAAEC;EAAW,CAAC,GAAGlB,oCAAoC,CAC/DE,UAAU,EACVM,QAAQ,EACRH,QAAQ,EACRM,MAAM,EACNF,MAAM,EACNN,MACF,CAAC;EAED,oBACET,KAAA,CAAAyB,aAAA,CAACrB,6BAA6B;IAC5BoB,UAAU,EAAEA,UAAW;IACvBD,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPF,aAAa;MACbD,KAAK,EAAEF;IACT,CAAE;IACFQ,QAAQ,EAAEZ,QAAS;IACnBJ,QAAQ,EAAEA,QAAS;IACnBE,cAAc,EAAEA;EAAe,CAChC,CAAC;AAEN,CAAC","ignoreList":[]}
|
|
@@ -54,9 +54,9 @@ export const ShareCredentialV2Group = ({
|
|
|
54
54
|
length: credentialRequestsLength
|
|
55
55
|
}) => {
|
|
56
56
|
const lastQuery = credentialRequestIndex === credentialRequestsLength - 1;
|
|
57
|
-
const credentialQuery = presentationDefinition.credentialQueries[credentialRequestId];
|
|
57
|
+
const credentialQuery = presentationDefinition.credentialQueries[credentialRequestId].credentialOrFailureHint;
|
|
58
58
|
let defaultSelection;
|
|
59
|
-
if ('
|
|
59
|
+
if (credentialQuery.type_ === 'APPLICABLE_CREDENTIALS') {
|
|
60
60
|
var _credentialQuery$appl;
|
|
61
61
|
defaultSelection = (_credentialQuery$appl = credentialQuery.applicableCredentials) !== null && _credentialQuery$appl !== void 0 && _credentialQuery$appl[0] ? {
|
|
62
62
|
credentialId: credentialQuery.applicableCredentials[0].id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useMemo","StyleSheet","Animated","LinearTransition","BlurView","CredentialCardShadow","DownIcon","Selector","SelectorStatus","TouchableOpacity","UpIcon","CredentialGroupHeader","concatTestID","useCredentialListExpandedCard","GroupedShareCredentialV2Padding","ShareCredentialV2","multipleCredentialsSelected","selectedCredentials","credentialRequestId","Array","isArray","length","numberOfCardsForRequest","selection","heightForNumberOfCards","numberOfCards","ShareCredentialV2Group","labels","lastGroup","onGroupSelect","onImagePreview","onSelectCredential","onSelectField","presentationDefinition","requestGroup","selected","style","testID","valid","expandedCredential","onHeaderPress","reduce","acc","groupId","singleCredentialGroup","headerPressHandler","onNestedCardHeaderPress","credentialId","credentialCards","flatMap","credentialRequestIndex","credentialRequestsLength","lastQuery","credentialQuery","credentialQueries","defaultSelection","_credentialQuery$appl","applicableCredentials","id","userSelections","request","credentialSelections","credentialRequest","credentialIndex","credentialsLength","selectedFields","cardId","lastItem","cardExpanded","headerAccessory","createElement","status","SelectedRadio","Empty","expanded","grouped","key","selectedCredentialId","styles","requestedCredential","requestedCredentialLast","groupHeaderAccessory","View","layout","animatedWrapper","height","undefined","groupedCredentialsWrapper","blurStyle","darkMode","absoluteFill","onPress","accessory","name","groupHeader","header","create","borderRadius","overflow","paddingBottom","marginBottom"],"sources":["share-credential-v2-group.tsx"],"sourcesContent":["import {\n CredentialListItem,\n PresentationDefinitionV2,\n PresentationDefinitionV2CredentialClaim,\n PresentationSubmitV2CredentialRequest,\n} from '@procivis/react-native-one-core';\nimport React, { FC, useCallback, useMemo } from 'react';\nimport { ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\nimport Animated, { LinearTransition } from 'react-native-reanimated';\n\nimport {\n BlurView,\n CredentialCardShadow,\n DownIcon,\n Selector,\n SelectorStatus,\n TouchableOpacity,\n UpIcon,\n} from '../../../ui-components';\nimport CredentialGroupHeader from '../../../ui-components/credential/group/credential-group-header';\nimport { concatTestID, useCredentialListExpandedCard } from '../../../utils';\nimport { ShareCredentialLabels } from '../v1/share-credential';\nimport { GroupedShareCredentialV2Padding, ShareCredentialV2 } from './share-credential-v2';\n\nexport type CredentialQuerySelection = Record<\n string,\n PresentationSubmitV2CredentialRequest | PresentationSubmitV2CredentialRequest[]\n>;\n\nexport type ShareCredentialGroupLabels = ShareCredentialLabels & {\n groupHeader: string;\n};\n\nexport type ShareCredentialV2GroupProps = {\n labels: ShareCredentialGroupLabels;\n lastGroup: boolean;\n onGroupSelect?: (selected: boolean) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential: (requestCredentialId: string) => () => void;\n onSelectField: (\n requestCredentialId: string,\n ) => (\n credentialId: CredentialListItem['id'],\n fieldPath: PresentationDefinitionV2CredentialClaim['path'],\n selected: boolean,\n ) => void;\n presentationDefinition: PresentationDefinitionV2;\n requestGroup: string[];\n selected?: boolean;\n selectedCredentials?: CredentialQuerySelection;\n style?: StyleProp<ViewStyle>;\n testID: string;\n valid: boolean;\n};\n\nconst multipleCredentialsSelected = (\n selectedCredentials: CredentialQuerySelection | undefined,\n credentialRequestId: string,\n) => {\n return (\n selectedCredentials &&\n selectedCredentials[credentialRequestId] &&\n Array.isArray(selectedCredentials[credentialRequestId]) &&\n (selectedCredentials[credentialRequestId] as PresentationSubmitV2CredentialRequest[]).length > 1\n );\n};\n\nconst numberOfCardsForRequest = (\n selectedCredentials: CredentialQuerySelection | undefined,\n credentialRequestId: string,\n) => {\n if (!selectedCredentials || !selectedCredentials[credentialRequestId]) {\n return 1;\n }\n const selection = selectedCredentials[credentialRequestId];\n if (Array.isArray(selection)) {\n return selection.length;\n }\n return 1;\n};\n\nconst heightForNumberOfCards = (numberOfCards: number) => 60 * (numberOfCards + 1) + 12 * numberOfCards;\n\nexport const ShareCredentialV2Group: FC<ShareCredentialV2GroupProps> = ({\n labels,\n lastGroup,\n onGroupSelect,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n presentationDefinition,\n requestGroup,\n selected,\n selectedCredentials = {},\n style,\n testID,\n valid,\n}) => {\n const { expandedCredential, onHeaderPress } = useCredentialListExpandedCard();\n const numberOfCards = requestGroup.reduce(\n (acc, groupId) => acc + numberOfCardsForRequest(selectedCredentials, groupId),\n 0,\n );\n const singleCredentialGroup =\n requestGroup.length === 1 && !multipleCredentialsSelected(selectedCredentials, requestGroup[0]);\n\n const headerPressHandler = useCallback(() => {\n onGroupSelect?.(!selected);\n }, [selected, onGroupSelect]);\n\n const onNestedCardHeaderPress = useCallback(\n (credentialId: string) => () => {\n if (!selected) {\n onGroupSelect?.(true);\n }\n onHeaderPress(credentialId);\n },\n [selected, onGroupSelect, onHeaderPress],\n );\n\n const credentialCards = useMemo(() => {\n return requestGroup.flatMap((credentialRequestId, credentialRequestIndex, { length: credentialRequestsLength }) => {\n const lastQuery = credentialRequestIndex === credentialRequestsLength - 1;\n\n const credentialQuery = presentationDefinition.credentialQueries[credentialRequestId];\n let defaultSelection: PresentationSubmitV2CredentialRequest;\n if ('applicableCredentials' in credentialQuery) {\n defaultSelection = credentialQuery.applicableCredentials?.[0]\n ? {\n credentialId: credentialQuery.applicableCredentials[0].id,\n userSelections: [],\n }\n : {\n credentialId: '',\n userSelections: [],\n };\n } else {\n defaultSelection = {\n credentialId: '',\n userSelections: [],\n };\n }\n const request = selectedCredentials[credentialRequestId];\n const credentialSelections = request ? (Array.isArray(request) ? request : [request]) : [defaultSelection];\n\n return credentialSelections?.flatMap((credentialRequest, credentialIndex, { length: credentialsLength }) => {\n const selectedFields = credentialRequest.userSelections;\n const cardId = `${credentialRequestId}-${credentialRequest.credentialId}`;\n const lastItem = singleCredentialGroup ? lastGroup : lastQuery && credentialIndex === credentialsLength - 1;\n const cardExpanded = selected && (singleCredentialGroup || expandedCredential === cardId);\n const headerAccessory =\n singleCredentialGroup && valid ? (\n <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />\n ) : cardExpanded ? (\n UpIcon\n ) : (\n DownIcon\n );\n return (\n <ShareCredentialV2\n credentialQuery={credentialQuery}\n credentialRequestId={credentialRequestId}\n expanded={cardExpanded}\n grouped={!singleCredentialGroup}\n headerAccessory={headerAccessory}\n key={credentialRequestId}\n labels={labels}\n lastItem={lastItem}\n onHeaderPress={singleCredentialGroup ? headerPressHandler : onNestedCardHeaderPress(cardId)}\n onImagePreview={onImagePreview}\n onSelectCredential={onSelectCredential?.(credentialRequestId)}\n onSelectField={onSelectField(credentialRequestId)}\n selectedCredentialId={credentialRequest.credentialId}\n selectedFields={selectedFields}\n style={[!singleCredentialGroup && styles.requestedCredential, lastItem && styles.requestedCredentialLast]}\n testID={concatTestID(testID, credentialRequestId)}\n />\n );\n });\n });\n }, [\n expandedCredential,\n labels,\n lastGroup,\n headerPressHandler,\n onImagePreview,\n onNestedCardHeaderPress,\n onSelectCredential,\n onSelectField,\n presentationDefinition.credentialQueries,\n requestGroup,\n selected,\n selectedCredentials,\n singleCredentialGroup,\n testID,\n valid,\n ]);\n\n if (singleCredentialGroup) {\n return credentialCards[0];\n }\n\n const groupHeaderAccessory = valid ? (\n <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />\n ) : selected ? (\n UpIcon\n ) : (\n DownIcon\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: selected || lastGroup ? 'auto' : heightForNumberOfCards(numberOfCards),\n },\n style,\n ]}>\n <Animated.View\n layout={LinearTransition}\n style={[\n singleCredentialGroup ? undefined : styles.groupedCredentialsWrapper,\n !singleCredentialGroup && styles.requestedCredential,\n lastGroup && styles.requestedCredentialLast,\n style,\n ]}>\n <BlurView blurStyle=\"strong\" darkMode={true} style={StyleSheet.absoluteFill} />\n <TouchableOpacity onPress={headerPressHandler}>\n <CredentialGroupHeader accessory={groupHeaderAccessory} name={labels.groupHeader} style={styles.header} />\n </TouchableOpacity>\n {credentialCards}\n </Animated.View>\n </Animated.View>\n );\n};\n\nconst styles = StyleSheet.create({\n animatedWrapper: {\n ...CredentialCardShadow,\n },\n groupedCredentialsWrapper: {\n borderRadius: 10 + GroupedShareCredentialV2Padding,\n overflow: 'hidden',\n paddingBottom: GroupedShareCredentialV2Padding,\n },\n header: {\n marginBottom: GroupedShareCredentialV2Padding,\n },\n requestedCredential: {\n marginBottom: 12,\n },\n requestedCredentialLast: {\n marginBottom: 0,\n },\n});\n"],"mappings":"AAMA,OAAOA,KAAK,IAAQC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACvD,SAAyCC,UAAU,QAAmB,cAAc;AACpF,OAAOC,QAAQ,IAAIC,gBAAgB,QAAQ,yBAAyB;AAEpE,SACEC,QAAQ,EACRC,oBAAoB,EACpBC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,gBAAgB,EAChBC,MAAM,QACD,wBAAwB;AAC/B,OAAOC,qBAAqB,MAAM,iEAAiE;AACnG,SAASC,YAAY,EAAEC,6BAA6B,QAAQ,gBAAgB;AAE5E,SAASC,+BAA+B,EAAEC,iBAAiB,QAAQ,uBAAuB;AAiC1F,MAAMC,2BAA2B,GAAGA,CAClCC,mBAAyD,EACzDC,mBAA2B,KACxB;EACH,OACED,mBAAmB,IACnBA,mBAAmB,CAACC,mBAAmB,CAAC,IACxCC,KAAK,CAACC,OAAO,CAACH,mBAAmB,CAACC,mBAAmB,CAAC,CAAC,IACtDD,mBAAmB,CAACC,mBAAmB,CAAC,CAA6CG,MAAM,GAAG,CAAC;AAEpG,CAAC;AAED,MAAMC,uBAAuB,GAAGA,CAC9BL,mBAAyD,EACzDC,mBAA2B,KACxB;EACH,IAAI,CAACD,mBAAmB,IAAI,CAACA,mBAAmB,CAACC,mBAAmB,CAAC,EAAE;IACrE,OAAO,CAAC;EACV;EACA,MAAMK,SAAS,GAAGN,mBAAmB,CAACC,mBAAmB,CAAC;EAC1D,IAAIC,KAAK,CAACC,OAAO,CAACG,SAAS,CAAC,EAAE;IAC5B,OAAOA,SAAS,CAACF,MAAM;EACzB;EACA,OAAO,CAAC;AACV,CAAC;AAED,MAAMG,sBAAsB,GAAIC,aAAqB,IAAK,EAAE,IAAIA,aAAa,GAAG,CAAC,CAAC,GAAG,EAAE,GAAGA,aAAa;AAEvG,OAAO,MAAMC,sBAAuD,GAAGA,CAAC;EACtEC,MAAM;EACNC,SAAS;EACTC,aAAa;EACbC,cAAc;EACdC,kBAAkB;EAClBC,aAAa;EACbC,sBAAsB;EACtBC,YAAY;EACZC,QAAQ;EACRlB,mBAAmB,GAAG,CAAC,CAAC;EACxBmB,KAAK;EACLC,MAAM;EACNC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC,kBAAkB;IAAEC;EAAc,CAAC,GAAG3B,6BAA6B,CAAC,CAAC;EAC7E,MAAMY,aAAa,GAAGS,YAAY,CAACO,MAAM,CACvC,CAACC,GAAG,EAAEC,OAAO,KAAKD,GAAG,GAAGpB,uBAAuB,CAACL,mBAAmB,EAAE0B,OAAO,CAAC,EAC7E,CACF,CAAC;EACD,MAAMC,qBAAqB,GACzBV,YAAY,CAACb,MAAM,KAAK,CAAC,IAAI,CAACL,2BAA2B,CAACC,mBAAmB,EAAEiB,YAAY,CAAC,CAAC,CAAC,CAAC;EAEjG,MAAMW,kBAAkB,GAAG9C,WAAW,CAAC,MAAM;IAC3C8B,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG,CAACM,QAAQ,CAAC;EAC5B,CAAC,EAAE,CAACA,QAAQ,EAAEN,aAAa,CAAC,CAAC;EAE7B,MAAMiB,uBAAuB,GAAG/C,WAAW,CACxCgD,YAAoB,IAAK,MAAM;IAC9B,IAAI,CAACZ,QAAQ,EAAE;MACbN,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG,IAAI,CAAC;IACvB;IACAW,aAAa,CAACO,YAAY,CAAC;EAC7B,CAAC,EACD,CAACZ,QAAQ,EAAEN,aAAa,EAAEW,aAAa,CACzC,CAAC;EAED,MAAMQ,eAAe,GAAGhD,OAAO,CAAC,MAAM;IACpC,OAAOkC,YAAY,CAACe,OAAO,CAAC,CAAC/B,mBAAmB,EAAEgC,sBAAsB,EAAE;MAAE7B,MAAM,EAAE8B;IAAyB,CAAC,KAAK;MACjH,MAAMC,SAAS,GAAGF,sBAAsB,KAAKC,wBAAwB,GAAG,CAAC;MAEzE,MAAME,eAAe,GAAGpB,sBAAsB,CAACqB,iBAAiB,CAACpC,mBAAmB,CAAC;MACrF,IAAIqC,gBAAuD;MAC3D,IAAI,uBAAuB,IAAIF,eAAe,EAAE;QAAA,IAAAG,qBAAA;QAC9CD,gBAAgB,GAAG,CAAAC,qBAAA,GAAAH,eAAe,CAACI,qBAAqB,cAAAD,qBAAA,eAArCA,qBAAA,CAAwC,CAAC,CAAC,GACzD;UACET,YAAY,EAAEM,eAAe,CAACI,qBAAqB,CAAC,CAAC,CAAC,CAACC,EAAE;UACzDC,cAAc,EAAE;QAClB,CAAC,GACD;UACEZ,YAAY,EAAE,EAAE;UAChBY,cAAc,EAAE;QAClB,CAAC;MACP,CAAC,MAAM;QACLJ,gBAAgB,GAAG;UACjBR,YAAY,EAAE,EAAE;UAChBY,cAAc,EAAE;QAClB,CAAC;MACH;MACA,MAAMC,OAAO,GAAG3C,mBAAmB,CAACC,mBAAmB,CAAC;MACxD,MAAM2C,oBAAoB,GAAGD,OAAO,GAAIzC,KAAK,CAACC,OAAO,CAACwC,OAAO,CAAC,GAAGA,OAAO,GAAG,CAACA,OAAO,CAAC,GAAI,CAACL,gBAAgB,CAAC;MAE1G,OAAOM,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEZ,OAAO,CAAC,CAACa,iBAAiB,EAAEC,eAAe,EAAE;QAAE1C,MAAM,EAAE2C;MAAkB,CAAC,KAAK;QAC1G,MAAMC,cAAc,GAAGH,iBAAiB,CAACH,cAAc;QACvD,MAAMO,MAAM,GAAG,GAAGhD,mBAAmB,IAAI4C,iBAAiB,CAACf,YAAY,EAAE;QACzE,MAAMoB,QAAQ,GAAGvB,qBAAqB,GAAGhB,SAAS,GAAGwB,SAAS,IAAIW,eAAe,KAAKC,iBAAiB,GAAG,CAAC;QAC3G,MAAMI,YAAY,GAAGjC,QAAQ,KAAKS,qBAAqB,IAAIL,kBAAkB,KAAK2B,MAAM,CAAC;QACzF,MAAMG,eAAe,GACnBzB,qBAAqB,IAAIN,KAAK,gBAC5BxC,KAAA,CAAAwE,aAAA,CAAC/D,QAAQ;UAACgE,MAAM,EAAEpC,QAAQ,GAAG3B,cAAc,CAACgE,aAAa,GAAGhE,cAAc,CAACiE;QAAM,CAAE,CAAC,GAClFL,YAAY,GACd1D,MAAM,GAENJ,QACD;QACH,oBACER,KAAA,CAAAwE,aAAA,CAACvD,iBAAiB;UAChBsC,eAAe,EAAEA,eAAgB;UACjCnC,mBAAmB,EAAEA,mBAAoB;UACzCwD,QAAQ,EAAEN,YAAa;UACvBO,OAAO,EAAE,CAAC/B,qBAAsB;UAChCyB,eAAe,EAAEA,eAAgB;UACjCO,GAAG,EAAE1D,mBAAoB;UACzBS,MAAM,EAAEA,MAAO;UACfwC,QAAQ,EAAEA,QAAS;UACnB3B,aAAa,EAAEI,qBAAqB,GAAGC,kBAAkB,GAAGC,uBAAuB,CAACoB,MAAM,CAAE;UAC5FpC,cAAc,EAAEA,cAAe;UAC/BC,kBAAkB,EAAEA,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAGb,mBAAmB,CAAE;UAC9Dc,aAAa,EAAEA,aAAa,CAACd,mBAAmB,CAAE;UAClD2D,oBAAoB,EAAEf,iBAAiB,CAACf,YAAa;UACrDkB,cAAc,EAAEA,cAAe;UAC/B7B,KAAK,EAAE,CAAC,CAACQ,qBAAqB,IAAIkC,MAAM,CAACC,mBAAmB,EAAEZ,QAAQ,IAAIW,MAAM,CAACE,uBAAuB,CAAE;UAC1G3C,MAAM,EAAEzB,YAAY,CAACyB,MAAM,EAAEnB,mBAAmB;QAAE,CACnD,CAAC;MAEN,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EAAE,CACDqB,kBAAkB,EAClBZ,MAAM,EACNC,SAAS,EACTiB,kBAAkB,EAClBf,cAAc,EACdgB,uBAAuB,EACvBf,kBAAkB,EAClBC,aAAa,EACbC,sBAAsB,CAACqB,iBAAiB,EACxCpB,YAAY,EACZC,QAAQ,EACRlB,mBAAmB,EACnB2B,qBAAqB,EACrBP,MAAM,EACNC,KAAK,CACN,CAAC;EAEF,IAAIM,qBAAqB,EAAE;IACzB,OAAOI,eAAe,CAAC,CAAC,CAAC;EAC3B;EAEA,MAAMiC,oBAAoB,GAAG3C,KAAK,gBAChCxC,KAAA,CAAAwE,aAAA,CAAC/D,QAAQ;IAACgE,MAAM,EAAEpC,QAAQ,GAAG3B,cAAc,CAACgE,aAAa,GAAGhE,cAAc,CAACiE;EAAM,CAAE,CAAC,GAClFtC,QAAQ,GACVzB,MAAM,GAENJ,QACD;EAED,oBACER,KAAA,CAAAwE,aAAA,CAACpE,QAAQ,CAACgF,IAAI;IACZC,MAAM,EAAEhF,gBAAiB;IACzBiC,KAAK,EAAE,CACL0C,MAAM,CAACM,eAAe;IACtB;IACA;MACEC,MAAM,EAAElD,QAAQ,IAAIP,SAAS,GAAG,MAAM,GAAGJ,sBAAsB,CAACC,aAAa;IAC/E,CAAC,EACDW,KAAK;EACL,gBACFtC,KAAA,CAAAwE,aAAA,CAACpE,QAAQ,CAACgF,IAAI;IACZC,MAAM,EAAEhF,gBAAiB;IACzBiC,KAAK,EAAE,CACLQ,qBAAqB,GAAG0C,SAAS,GAAGR,MAAM,CAACS,yBAAyB,EACpE,CAAC3C,qBAAqB,IAAIkC,MAAM,CAACC,mBAAmB,EACpDnD,SAAS,IAAIkD,MAAM,CAACE,uBAAuB,EAC3C5C,KAAK;EACL,gBACFtC,KAAA,CAAAwE,aAAA,CAAClE,QAAQ;IAACoF,SAAS,EAAC,QAAQ;IAACC,QAAQ,EAAE,IAAK;IAACrD,KAAK,EAAEnC,UAAU,CAACyF;EAAa,CAAE,CAAC,eAC/E5F,KAAA,CAAAwE,aAAA,CAAC7D,gBAAgB;IAACkF,OAAO,EAAE9C;EAAmB,gBAC5C/C,KAAA,CAAAwE,aAAA,CAAC3D,qBAAqB;IAACiF,SAAS,EAAEX,oBAAqB;IAACY,IAAI,EAAElE,MAAM,CAACmE,WAAY;IAAC1D,KAAK,EAAE0C,MAAM,CAACiB;EAAO,CAAE,CACzF,CAAC,EAClB/C,eACY,CACF,CAAC;AAEpB,CAAC;AAED,MAAM8B,MAAM,GAAG7E,UAAU,CAAC+F,MAAM,CAAC;EAC/BZ,eAAe,EAAE;IACf,GAAG/E;EACL,CAAC;EACDkF,yBAAyB,EAAE;IACzBU,YAAY,EAAE,EAAE,GAAGnF,+BAA+B;IAClDoF,QAAQ,EAAE,QAAQ;IAClBC,aAAa,EAAErF;EACjB,CAAC;EACDiF,MAAM,EAAE;IACNK,YAAY,EAAEtF;EAChB,CAAC;EACDiE,mBAAmB,EAAE;IACnBqB,YAAY,EAAE;EAChB,CAAC;EACDpB,uBAAuB,EAAE;IACvBoB,YAAY,EAAE;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","StyleSheet","Animated","LinearTransition","BlurView","CredentialCardShadow","DownIcon","Selector","SelectorStatus","TouchableOpacity","UpIcon","CredentialGroupHeader","concatTestID","useCredentialListExpandedCard","GroupedShareCredentialV2Padding","ShareCredentialV2","multipleCredentialsSelected","selectedCredentials","credentialRequestId","Array","isArray","length","numberOfCardsForRequest","selection","heightForNumberOfCards","numberOfCards","ShareCredentialV2Group","labels","lastGroup","onGroupSelect","onImagePreview","onSelectCredential","onSelectField","presentationDefinition","requestGroup","selected","style","testID","valid","expandedCredential","onHeaderPress","reduce","acc","groupId","singleCredentialGroup","headerPressHandler","onNestedCardHeaderPress","credentialId","credentialCards","flatMap","credentialRequestIndex","credentialRequestsLength","lastQuery","credentialQuery","credentialQueries","credentialOrFailureHint","defaultSelection","type_","_credentialQuery$appl","applicableCredentials","id","userSelections","request","credentialSelections","credentialRequest","credentialIndex","credentialsLength","selectedFields","cardId","lastItem","cardExpanded","headerAccessory","createElement","status","SelectedRadio","Empty","expanded","grouped","key","selectedCredentialId","styles","requestedCredential","requestedCredentialLast","groupHeaderAccessory","View","layout","animatedWrapper","height","undefined","groupedCredentialsWrapper","blurStyle","darkMode","absoluteFill","onPress","accessory","name","groupHeader","header","create","borderRadius","overflow","paddingBottom","marginBottom"],"sources":["share-credential-v2-group.tsx"],"sourcesContent":["import {\n CredentialListItemBindingDto,\n PresentationDefinitionV2ClaimBindingDto,\n PresentationDefinitionV2ResponseBindingDto,\n PresentationSubmitV2CredentialRequestBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FC, useCallback, useMemo } from 'react';\nimport { ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\nimport Animated, { LinearTransition } from 'react-native-reanimated';\n\nimport {\n BlurView,\n CredentialCardShadow,\n DownIcon,\n Selector,\n SelectorStatus,\n TouchableOpacity,\n UpIcon,\n} from '../../../ui-components';\nimport CredentialGroupHeader from '../../../ui-components/credential/group/credential-group-header';\nimport { concatTestID, useCredentialListExpandedCard } from '../../../utils';\nimport { ShareCredentialLabels } from '../v1/share-credential';\nimport { GroupedShareCredentialV2Padding, ShareCredentialV2 } from './share-credential-v2';\n\nexport type CredentialQuerySelection = Record<\n string,\n PresentationSubmitV2CredentialRequestBindingDto | PresentationSubmitV2CredentialRequestBindingDto[]\n>;\n\nexport type ShareCredentialGroupLabels = ShareCredentialLabels & {\n groupHeader: string;\n};\n\nexport type ShareCredentialV2GroupProps = {\n labels: ShareCredentialGroupLabels;\n lastGroup: boolean;\n onGroupSelect?: (selected: boolean) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential: (requestCredentialId: string) => () => void;\n onSelectField: (\n requestCredentialId: string,\n ) => (\n credentialId: CredentialListItemBindingDto['id'],\n fieldPath: PresentationDefinitionV2ClaimBindingDto['path'],\n selected: boolean,\n ) => void;\n presentationDefinition: PresentationDefinitionV2ResponseBindingDto;\n requestGroup: string[];\n selected?: boolean;\n selectedCredentials?: CredentialQuerySelection;\n style?: StyleProp<ViewStyle>;\n testID: string;\n valid: boolean;\n};\n\nconst multipleCredentialsSelected = (\n selectedCredentials: CredentialQuerySelection | undefined,\n credentialRequestId: string,\n) => {\n return (\n selectedCredentials &&\n selectedCredentials[credentialRequestId] &&\n Array.isArray(selectedCredentials[credentialRequestId]) &&\n (selectedCredentials[credentialRequestId] as PresentationSubmitV2CredentialRequestBindingDto[]).length > 1\n );\n};\n\nconst numberOfCardsForRequest = (\n selectedCredentials: CredentialQuerySelection | undefined,\n credentialRequestId: string,\n) => {\n if (!selectedCredentials || !selectedCredentials[credentialRequestId]) {\n return 1;\n }\n const selection = selectedCredentials[credentialRequestId];\n if (Array.isArray(selection)) {\n return selection.length;\n }\n return 1;\n};\n\nconst heightForNumberOfCards = (numberOfCards: number) => 60 * (numberOfCards + 1) + 12 * numberOfCards;\n\nexport const ShareCredentialV2Group: FC<ShareCredentialV2GroupProps> = ({\n labels,\n lastGroup,\n onGroupSelect,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n presentationDefinition,\n requestGroup,\n selected,\n selectedCredentials = {},\n style,\n testID,\n valid,\n}) => {\n const { expandedCredential, onHeaderPress } = useCredentialListExpandedCard();\n const numberOfCards = requestGroup.reduce(\n (acc, groupId) => acc + numberOfCardsForRequest(selectedCredentials, groupId),\n 0,\n );\n const singleCredentialGroup =\n requestGroup.length === 1 && !multipleCredentialsSelected(selectedCredentials, requestGroup[0]);\n\n const headerPressHandler = useCallback(() => {\n onGroupSelect?.(!selected);\n }, [selected, onGroupSelect]);\n\n const onNestedCardHeaderPress = useCallback(\n (credentialId: string) => () => {\n if (!selected) {\n onGroupSelect?.(true);\n }\n onHeaderPress(credentialId);\n },\n [selected, onGroupSelect, onHeaderPress],\n );\n\n const credentialCards = useMemo(() => {\n return requestGroup.flatMap((credentialRequestId, credentialRequestIndex, { length: credentialRequestsLength }) => {\n const lastQuery = credentialRequestIndex === credentialRequestsLength - 1;\n\n const credentialQuery = presentationDefinition.credentialQueries[credentialRequestId].credentialOrFailureHint;\n let defaultSelection: PresentationSubmitV2CredentialRequestBindingDto;\n if (credentialQuery.type_ === 'APPLICABLE_CREDENTIALS') {\n defaultSelection = credentialQuery.applicableCredentials?.[0]\n ? {\n credentialId: credentialQuery.applicableCredentials[0].id,\n userSelections: [],\n }\n : {\n credentialId: '',\n userSelections: [],\n };\n } else {\n defaultSelection = {\n credentialId: '',\n userSelections: [],\n };\n }\n const request = selectedCredentials[credentialRequestId];\n const credentialSelections = request ? (Array.isArray(request) ? request : [request]) : [defaultSelection];\n\n return credentialSelections?.flatMap((credentialRequest, credentialIndex, { length: credentialsLength }) => {\n const selectedFields = credentialRequest.userSelections;\n const cardId = `${credentialRequestId}-${credentialRequest.credentialId}`;\n const lastItem = singleCredentialGroup ? lastGroup : lastQuery && credentialIndex === credentialsLength - 1;\n const cardExpanded = selected && (singleCredentialGroup || expandedCredential === cardId);\n const headerAccessory =\n singleCredentialGroup && valid ? (\n <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />\n ) : cardExpanded ? (\n UpIcon\n ) : (\n DownIcon\n );\n return (\n <ShareCredentialV2\n credentialQuery={credentialQuery}\n credentialRequestId={credentialRequestId}\n expanded={cardExpanded}\n grouped={!singleCredentialGroup}\n headerAccessory={headerAccessory}\n key={credentialRequestId}\n labels={labels}\n lastItem={lastItem}\n onHeaderPress={singleCredentialGroup ? headerPressHandler : onNestedCardHeaderPress(cardId)}\n onImagePreview={onImagePreview}\n onSelectCredential={onSelectCredential?.(credentialRequestId)}\n onSelectField={onSelectField(credentialRequestId)}\n selectedCredentialId={credentialRequest.credentialId}\n selectedFields={selectedFields}\n style={[!singleCredentialGroup && styles.requestedCredential, lastItem && styles.requestedCredentialLast]}\n testID={concatTestID(testID, credentialRequestId)}\n />\n );\n });\n });\n }, [\n expandedCredential,\n labels,\n lastGroup,\n headerPressHandler,\n onImagePreview,\n onNestedCardHeaderPress,\n onSelectCredential,\n onSelectField,\n presentationDefinition.credentialQueries,\n requestGroup,\n selected,\n selectedCredentials,\n singleCredentialGroup,\n testID,\n valid,\n ]);\n\n if (singleCredentialGroup) {\n return credentialCards[0];\n }\n\n const groupHeaderAccessory = valid ? (\n <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />\n ) : selected ? (\n UpIcon\n ) : (\n DownIcon\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: selected || lastGroup ? 'auto' : heightForNumberOfCards(numberOfCards),\n },\n style,\n ]}>\n <Animated.View\n layout={LinearTransition}\n style={[\n singleCredentialGroup ? undefined : styles.groupedCredentialsWrapper,\n !singleCredentialGroup && styles.requestedCredential,\n lastGroup && styles.requestedCredentialLast,\n style,\n ]}>\n <BlurView blurStyle=\"strong\" darkMode={true} style={StyleSheet.absoluteFill} />\n <TouchableOpacity onPress={headerPressHandler}>\n <CredentialGroupHeader accessory={groupHeaderAccessory} name={labels.groupHeader} style={styles.header} />\n </TouchableOpacity>\n {credentialCards}\n </Animated.View>\n </Animated.View>\n );\n};\n\nconst styles = StyleSheet.create({\n animatedWrapper: {\n ...CredentialCardShadow,\n },\n groupedCredentialsWrapper: {\n borderRadius: 10 + GroupedShareCredentialV2Padding,\n overflow: 'hidden',\n paddingBottom: GroupedShareCredentialV2Padding,\n },\n header: {\n marginBottom: GroupedShareCredentialV2Padding,\n },\n requestedCredential: {\n marginBottom: 12,\n },\n requestedCredentialLast: {\n marginBottom: 0,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,8 +25,8 @@ export const ShareCredentialV2 = ({
|
|
|
25
25
|
}) => {
|
|
26
26
|
var _applicableCredential, _credential$issuer;
|
|
27
27
|
const colorScheme = useAppColorScheme();
|
|
28
|
-
const applicableCredentials = '
|
|
29
|
-
const failureHint = '
|
|
28
|
+
const applicableCredentials = credentialQuery.type_ === 'APPLICABLE_CREDENTIALS' ? credentialQuery.applicableCredentials : undefined;
|
|
29
|
+
const failureHint = credentialQuery.type_ === 'FAILURE_HINT' ? credentialQuery.failureHint : undefined;
|
|
30
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
31
|
const {
|
|
32
32
|
data: config
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","getValidityState","useCoreConfig","ValidityState","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","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 { concatTestID, getValidityState, useCoreConfig, ValidityState } 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 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) {\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 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":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","getValidityState","useCoreConfig","ValidityState","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","type_","undefined","failureHint","credential","find","c","id","data","config","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 ApplicableCredentialOrFailureHintBindingEnum,\n CredentialListItemBindingDto,\n PresentationDefinitionV2ClaimBindingDto,\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 { concatTestID, getValidityState, useCoreConfig, ValidityState } 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: ApplicableCredentialOrFailureHintBindingEnum;\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: CredentialListItemBindingDto['id'],\n fieldPath: PresentationDefinitionV2ClaimBindingDto['path'],\n selected: boolean,\n ) => void;\n selectedCredentialId?: CredentialListItemBindingDto['id'];\n selectedFields?: Array<PresentationDefinitionV2ClaimBindingDto['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 credentialQuery.type_ === 'APPLICABLE_CREDENTIALS' ? credentialQuery.applicableCredentials : undefined;\n const failureHint = credentialQuery.type_ === 'FAILURE_HINT' ? credentialQuery.failureHint : undefined;\n const credential = applicableCredentials?.find((c) => c.id === selectedCredentialId) ?? applicableCredentials?.[0];\n const { data: config } = useCoreConfig();\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: PresentationDefinitionV2ClaimBindingDto['path'], selected: boolean) => {\n if (!selectedCredentialId) {\n return;\n }\n onSelectField(selectedCredentialId, fieldPath, selected);\n },\n [onSelectField, selectedCredentialId],\n );\n\n if (!config) {\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 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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","Pressable","RNPressable","TouchableHighlight","RNTouchableHighlight","TouchableOpacity","RNTouchableOpacity","TouchableWithoutFeedback","RNTouchableWithoutFeedback","useAccessibilityFocusHistory","WithAccessibilityFocusHistory","C","displayName","ComponentWithAccessibilityFocusHistory","forwardedRef","onPress","originalOnPress","props","ref","undefined","createElement","_extends","Forwarded"],"sources":["accessibilityHistoryWrappers.tsx"],"sourcesContent":["/* eslint-disable no-restricted-imports */\nimport React, { FC, ForwardedRef, forwardRef } from 'react';\nimport {\n GestureResponderEvent,\n Pressable as RNPressable,\n PressableProps,\n TouchableHighlight as RNTouchableHighlight,\n TouchableHighlightProps,\n TouchableOpacity as RNTouchableOpacity,\n TouchableOpacityProps,\n TouchableWithoutFeedback as RNTouchableWithoutFeedback,\n TouchableWithoutFeedbackProps,\n View,\n} from 'react-native';\n\nimport { useAccessibilityFocusHistory } from './accessibilityHistory';\n\ntype RNOnPress = (event: GestureResponderEvent) => void;\ninterface OnPressProps {\n onPress?: RNOnPress | null;\n}\n\nconst WithAccessibilityFocusHistory =
|
|
1
|
+
{"version":3,"names":["React","forwardRef","Pressable","RNPressable","TouchableHighlight","RNTouchableHighlight","TouchableOpacity","RNTouchableOpacity","TouchableWithoutFeedback","RNTouchableWithoutFeedback","useAccessibilityFocusHistory","WithAccessibilityFocusHistory","C","displayName","ComponentWithAccessibilityFocusHistory","forwardedRef","onPress","originalOnPress","props","ref","undefined","createElement","_extends","Forwarded"],"sources":["accessibilityHistoryWrappers.tsx"],"sourcesContent":["/* eslint-disable no-restricted-imports */\nimport React, { FC, ForwardedRef, forwardRef } from 'react';\nimport {\n GestureResponderEvent,\n Pressable as RNPressable,\n PressableProps,\n TouchableHighlight as RNTouchableHighlight,\n TouchableHighlightProps,\n TouchableOpacity as RNTouchableOpacity,\n TouchableOpacityProps,\n TouchableWithoutFeedback as RNTouchableWithoutFeedback,\n TouchableWithoutFeedbackProps,\n View,\n} from 'react-native';\n\nimport { useAccessibilityFocusHistory } from './accessibilityHistory';\n\ntype RNOnPress = (event: GestureResponderEvent) => void;\ninterface OnPressProps {\n onPress?: RNOnPress | null;\n}\n\nconst WithAccessibilityFocusHistory = <\n ComponentProps extends OnPressProps,\n RefType extends React.ElementType<any, any>,\n>(\n C: React.ComponentType<ComponentProps>,\n displayName: string,\n) => {\n type ForwardedProps = ComponentProps & {\n forwardedRef: ForwardedRef<RefType>;\n };\n\n const ComponentWithAccessibilityFocusHistory: FC<ForwardedProps> = ({\n forwardedRef,\n onPress: originalOnPress,\n ...props\n }) => {\n const { ref, onPress } = useAccessibilityFocusHistory<RefType, RNOnPress>(\n originalOnPress ?? undefined,\n forwardedRef,\n );\n // @ts-ignore\n return <C ref={ref} onPress={onPress} {...props} />;\n };\n\n const Forwarded = forwardRef<RefType, ComponentProps>((props, ref) => (\n <ComponentWithAccessibilityFocusHistory {...props} forwardedRef={ref} />\n ));\n Forwarded.displayName = displayName;\n\n return Forwarded;\n};\n\n/**\n * Wrappers of RN touchable components with accessibilty focus history support\n */\nexport const TouchableOpacity = WithAccessibilityFocusHistory<TouchableOpacityProps, typeof RNTouchableOpacity>(\n RNTouchableOpacity,\n 'TouchableOpacity',\n);\nexport const TouchableWithoutFeedback = WithAccessibilityFocusHistory<\n TouchableWithoutFeedbackProps,\n RNTouchableWithoutFeedback\n>(RNTouchableWithoutFeedback, 'TouchableWithoutFeedback');\nexport const TouchableHighlight = WithAccessibilityFocusHistory<TouchableHighlightProps, typeof RNTouchableHighlight>(\n RNTouchableHighlight,\n 'TouchableHighlight',\n);\nexport const Pressable = WithAccessibilityFocusHistory<PressableProps, View>(RNPressable, 'Pressable');\n\ntype WrapperRefType<C extends React.ForwardRefExoticComponent<React.RefAttributes<any>>> =\n C extends React.ForwardRefExoticComponent<React.RefAttributes<infer Ref>> ? Ref : never;\n\n/**\n * Ref types to be used in forwardRef for the wrappers\n */\nexport type TouchableOpacityRef = WrapperRefType<typeof TouchableOpacity>;\nexport type TouchableWithoutFeedbackRef = WrapperRefType<typeof TouchableWithoutFeedback>;\nexport type TouchableHighlightRef = WrapperRefType<typeof TouchableHighlight>;\nexport type PressableRef = WrapperRefType<typeof Pressable>;\n"],"mappings":";AAAA;AACA,OAAOA,KAAK,IAAsBC,UAAU,QAAQ,OAAO;AAC3D,SAEEC,SAAS,IAAIC,WAAW,EAExBC,kBAAkB,IAAIC,oBAAoB,EAE1CC,gBAAgB,IAAIC,kBAAkB,EAEtCC,wBAAwB,IAAIC,0BAA0B,QAGjD,cAAc;AAErB,SAASC,4BAA4B,QAAQ,wBAAwB;AAOrE,MAAMC,6BAA6B,GAAGA,CAIpCC,CAAsC,EACtCC,WAAmB,KAChB;EAKH,MAAMC,sCAA0D,GAAGA,CAAC;IAClEC,YAAY;IACZC,OAAO,EAAEC,eAAe;IACxB,GAAGC;EACL,CAAC,KAAK;IACJ,MAAM;MAAEC,GAAG;MAAEH;IAAQ,CAAC,GAAGN,4BAA4B,CACnDO,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAIG,SAAS,EAC5BL,YACF,CAAC;IACD;IACA,oBAAOf,KAAA,CAAAqB,aAAA,CAACT,CAAC,EAAAU,QAAA;MAACH,GAAG,EAAEA,GAAI;MAACH,OAAO,EAAEA;IAAQ,GAAKE,KAAK,CAAG,CAAC;EACrD,CAAC;EAED,MAAMK,SAAS,gBAAGtB,UAAU,CAA0B,CAACiB,KAAK,EAAEC,GAAG,kBAC/DnB,KAAA,CAAAqB,aAAA,CAACP,sCAAsC,EAAAQ,QAAA,KAAKJ,KAAK;IAAEH,YAAY,EAAEI;EAAI,EAAE,CACxE,CAAC;EACFI,SAAS,CAACV,WAAW,GAAGA,WAAW;EAEnC,OAAOU,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMjB,gBAAgB,GAAGK,6BAA6B,CAC3DJ,kBAAkB,EAClB,kBACF,CAAC;AACD,OAAO,MAAMC,wBAAwB,GAAGG,6BAA6B,CAGnEF,0BAA0B,EAAE,0BAA0B,CAAC;AACzD,OAAO,MAAML,kBAAkB,GAAGO,6BAA6B,CAC7DN,oBAAoB,EACpB,oBACF,CAAC;AACD,OAAO,MAAMH,SAAS,GAAGS,6BAA6B,CAAuBR,WAAW,EAAE,WAAW,CAAC;;AAKtG;AACA;AACA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","Platform","StyleSheet","View","Animated","useAnimatedStyle","useSharedValue","withRepeat","withTiming","LoaderView","LoaderViewState","concatTestID","Typography","useAppColorScheme","Avatar","EntityCluster","avatar","entityName","subline","textColor","style","sublineColor","testID","isLoading","viewProps","colorScheme","opacity","animatedStyle","value","duration","avatarProps","_avatar$placeholderTe","component","createElement","styles","loaderWrapper","backgroundColor","grayDark","loader","animate","state","InProgress","initials","split","map","word","placeholderText","length","join","_extends","entity","labels","color","text","numberOfLines","preset","undefined","create","alignItems","flexDirection","letterSpacing","OS","flex","marginLeft","transform","scale","height","paddingLeft","paddingTop","width"],"sources":["entity-cluster.tsx"],"sourcesContent":["import React, { FunctionComponent, useEffect, useMemo } from 'react';\nimport { Platform, StyleSheet, View, ViewProps } from 'react-native';\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n withRepeat,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { LoaderView, LoaderViewState } from '../../ui-components/loader';\nimport { concatTestID } from '../../utils';\nimport Typography from '../text/typography';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\nimport Avatar, { AvatarProps } from './avatar';\n\nexport type EntityClusterProps = ViewProps & {\n avatar?: AvatarProps;\n entityName: string;\n subline?: string;\n textColor?: string;\n sublineColor?: string;\n testID?: string;\n isLoading?: boolean;\n};\n\n// https://www.figma.com/file/52qDYWUMjXAGre1dcnz5bz/Procivis-One-Wallet?type=design&node-id=426-25595&mode=design&t=YI1oD2BfBie5HcvJ-0\nconst EntityCluster: FunctionComponent<EntityClusterProps> = ({\n avatar,\n entityName,\n subline,\n textColor,\n style,\n sublineColor,\n testID,\n isLoading,\n ...viewProps\n}) => {\n const colorScheme = useAppColorScheme();\n
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","Platform","StyleSheet","View","Animated","useAnimatedStyle","useSharedValue","withRepeat","withTiming","LoaderView","LoaderViewState","concatTestID","Typography","useAppColorScheme","Avatar","EntityCluster","avatar","entityName","subline","textColor","style","sublineColor","testID","isLoading","viewProps","colorScheme","opacity","animatedStyle","value","duration","avatarProps","_avatar$placeholderTe","component","createElement","styles","loaderWrapper","backgroundColor","grayDark","loader","animate","state","InProgress","initials","split","map","word","placeholderText","length","join","_extends","entity","labels","color","text","numberOfLines","preset","undefined","create","alignItems","flexDirection","letterSpacing","OS","flex","marginLeft","transform","scale","height","paddingLeft","paddingTop","width"],"sources":["entity-cluster.tsx"],"sourcesContent":["import React, { FunctionComponent, useEffect, useMemo } from 'react';\nimport { Platform, StyleSheet, View, ViewProps } from 'react-native';\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n withRepeat,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { LoaderView, LoaderViewState } from '../../ui-components/loader';\nimport { concatTestID } from '../../utils';\nimport Typography from '../text/typography';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\nimport Avatar, { AvatarProps } from './avatar';\n\nexport type EntityClusterProps = ViewProps & {\n avatar?: AvatarProps;\n entityName: string;\n subline?: string;\n textColor?: string;\n sublineColor?: string;\n testID?: string;\n isLoading?: boolean;\n};\n\n// https://www.figma.com/file/52qDYWUMjXAGre1dcnz5bz/Procivis-One-Wallet?type=design&node-id=426-25595&mode=design&t=YI1oD2BfBie5HcvJ-0\nconst EntityCluster: FunctionComponent<EntityClusterProps> = ({\n avatar,\n entityName,\n subline,\n textColor,\n style,\n sublineColor,\n testID,\n isLoading,\n ...viewProps\n}) => {\n const colorScheme = useAppColorScheme();\n\n const opacity = useSharedValue<number>(1);\n\n const animatedStyle = useAnimatedStyle(() => ({\n opacity: opacity.value,\n }));\n\n useEffect(() => {\n if (!isLoading) {\n return;\n }\n opacity.value = withRepeat(\n withTiming(0.3, { duration: 1000 }),\n 0,\n true\n );\n }, [opacity, isLoading]);\n\n const avatarProps = useMemo<AvatarProps>(() => {\n if (isLoading) {\n return {\n avatar: {\n component: (\n <View style={[styles.loaderWrapper, { backgroundColor: colorScheme.grayDark }]}>\n <View style={styles.loader}>\n <LoaderView animate={true} state={LoaderViewState.InProgress} />\n </View>\n </View>\n ),\n },\n };\n }\n const initials = entityName.split(' ', 3).map((word: string) => word[0]);\n const placeholderText = initials.length > 0 ? initials.join('') : '';\n return {\n ...avatar,\n placeholderText: avatar?.placeholderText ?? placeholderText,\n };\n }, [avatar, entityName, colorScheme.grayDark, isLoading]);\n\n return (\n <View style={[styles.entity, style]} testID={testID} {...viewProps}>\n <Avatar testID={concatTestID(testID, 'avatar')} {...avatarProps} />\n <View style={styles.labels}>\n {isLoading ? (\n <Animated.View style={[{ backgroundColor: colorScheme.grayDark }, animatedStyle]}>\n <Typography color={colorScheme.grayDark} />\n </Animated.View>\n ) : (\n <Typography\n testID={concatTestID(testID, 'entityName')}\n color={textColor ?? colorScheme.text}\n numberOfLines={1}\n preset=\"m\"\n style={styles.entityName}>\n {!isLoading ? entityName : undefined}\n </Typography>\n )}\n {subline && (\n <View>\n <Typography\n testID={concatTestID(testID, 'subline')}\n color={sublineColor ?? colorScheme.text}\n numberOfLines={1}\n preset=\"xs\">\n {subline}\n </Typography>\n </View>\n )}\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n entity: {\n alignItems: 'center',\n flexDirection: 'row',\n },\n entityName: {\n letterSpacing: Platform.OS === 'ios' ? -0.2 : -0.3, // -0.2 breaks layout on Android\n },\n labels: {\n flex: 1,\n marginLeft: 12,\n },\n loader: {\n transform: [{ scale: 0.5 }],\n },\n loaderWrapper: {\n height: 72,\n paddingLeft: 3,\n paddingTop: 4,\n width: 72,\n },\n});\n\nexport default EntityCluster;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useState","Animated","StyleSheet","View","useSafeAreaInsets","BlurView","AnimatedSearchBar","useAppColorScheme","FoldableSearchHeader","staticHeader","scrollOffset","searchBar","header","withNotice","safeAreaInsets","colorScheme","collapsed","setCollapsed","headerHeight","setHeaderHeight","containerPaddingStyle","paddingTop","top","id","addListener","value","removeListener","playHeaderFoldAnimation","scrollHeaderAnimatedStyle","interpolate","extrapolate","inputRange","outputRange","undefined","fadeHeaderOutAnimatedStyle","opacity","onHeaderLayout","event","nativeEvent","layout","height","createElement","style","styles","headerContainer","noticeBorderRadius","blurWrapper","absoluteFill","blurStyle","color","background","_extends","onLayout","create","overflow","position","width","borderTopLeftRadius","borderTopRightRadius"],"sources":["foldable-header.tsx"],"sourcesContent":["import React, { FunctionComponent, ReactElement, useCallback, useEffect, useState } from 'react';\nimport { Animated, LayoutChangeEvent, StyleSheet, View, ViewStyle } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport BlurView from '../blur/blur-view';\nimport AnimatedSearchBar, { AnimatedSearchBarProps } from '../searchbar/animated-search-bar';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\nexport type FoldableHeaderProps = {\n header: ReactElement;\n scrollOffset: Animated.Value;\n searchBar?: Omit<AnimatedSearchBarProps, 'collapsed'>;\n // if true, the header won't fold / fade out on scroll\n staticHeader?: boolean;\n withNotice?: boolean;\n};\n\nconst FoldableSearchHeader: FunctionComponent<FoldableHeaderProps> = ({\n staticHeader = false,\n scrollOffset,\n searchBar,\n header,\n withNotice,\n}) => {\n const safeAreaInsets = useSafeAreaInsets();\n const colorScheme = useAppColorScheme();\n const [collapsed, setCollapsed] = useState(header ? false : true);\n const [headerHeight, setHeaderHeight] = useState<number>();\n\n const containerPaddingStyle = {\n paddingTop: withNotice ? 15 : safeAreaInsets.top,\n };\n\n useEffect(() => {\n const id = scrollOffset.addListener(({ value }) => {\n if (!headerHeight) {\n return;\n }\n\n if (value > headerHeight) {\n setCollapsed(true);\n } else {\n setCollapsed(false);\n }\n });\n return () => {\n scrollOffset.removeListener(id);\n };\n }, [scrollOffset, searchBar, headerHeight]);\n\n const playHeaderFoldAnimation = !staticHeader && headerHeight;\n\n const scrollHeaderAnimatedStyle: Animated.WithAnimatedObject<ViewStyle> | undefined = playHeaderFoldAnimation\n ? {\n paddingTop: scrollOffset.interpolate({\n extrapolate: 'clamp',\n inputRange: [0, headerHeight],\n outputRange: [headerHeight, 0]
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useState","Animated","StyleSheet","View","useSafeAreaInsets","BlurView","AnimatedSearchBar","useAppColorScheme","FoldableSearchHeader","staticHeader","scrollOffset","searchBar","header","withNotice","safeAreaInsets","colorScheme","collapsed","setCollapsed","headerHeight","setHeaderHeight","containerPaddingStyle","paddingTop","top","id","addListener","value","removeListener","playHeaderFoldAnimation","scrollHeaderAnimatedStyle","interpolate","extrapolate","inputRange","outputRange","undefined","fadeHeaderOutAnimatedStyle","opacity","onHeaderLayout","event","nativeEvent","layout","height","createElement","style","styles","headerContainer","noticeBorderRadius","blurWrapper","absoluteFill","blurStyle","color","background","_extends","onLayout","create","overflow","position","width","borderTopLeftRadius","borderTopRightRadius"],"sources":["foldable-header.tsx"],"sourcesContent":["import React, { FunctionComponent, ReactElement, useCallback, useEffect, useState } from 'react';\nimport { Animated, LayoutChangeEvent, StyleSheet, View, ViewStyle } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport BlurView from '../blur/blur-view';\nimport AnimatedSearchBar, { AnimatedSearchBarProps } from '../searchbar/animated-search-bar';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\nexport type FoldableHeaderProps = {\n header: ReactElement;\n scrollOffset: Animated.Value;\n searchBar?: Omit<AnimatedSearchBarProps, 'collapsed'>;\n // if true, the header won't fold / fade out on scroll\n staticHeader?: boolean;\n withNotice?: boolean;\n};\n\nconst FoldableSearchHeader: FunctionComponent<FoldableHeaderProps> = ({\n staticHeader = false,\n scrollOffset,\n searchBar,\n header,\n withNotice,\n}) => {\n const safeAreaInsets = useSafeAreaInsets();\n const colorScheme = useAppColorScheme();\n const [collapsed, setCollapsed] = useState(header ? false : true);\n const [headerHeight, setHeaderHeight] = useState<number>();\n\n const containerPaddingStyle = {\n paddingTop: withNotice ? 15 : safeAreaInsets.top,\n };\n\n useEffect(() => {\n const id = scrollOffset.addListener(({ value }) => {\n if (!headerHeight) {\n return;\n }\n\n if (value > headerHeight) {\n setCollapsed(true);\n } else {\n setCollapsed(false);\n }\n });\n return () => {\n scrollOffset.removeListener(id);\n };\n }, [scrollOffset, searchBar, headerHeight]);\n\n const playHeaderFoldAnimation = !staticHeader && headerHeight;\n\n const scrollHeaderAnimatedStyle: Animated.WithAnimatedObject<ViewStyle> | undefined = playHeaderFoldAnimation\n ? {\n paddingTop: scrollOffset.interpolate({\n extrapolate: 'clamp',\n inputRange: [0, headerHeight],\n outputRange: [headerHeight, 0],\n }),\n }\n : undefined;\n\n const fadeHeaderOutAnimatedStyle: Animated.WithAnimatedObject<ViewStyle> | undefined = playHeaderFoldAnimation\n ? {\n opacity: scrollOffset.interpolate({\n extrapolate: 'clamp',\n inputRange: [0, headerHeight / 2],\n outputRange: [1, 0],\n }),\n }\n : undefined;\n\n const onHeaderLayout = useCallback(\n (event: LayoutChangeEvent) => {\n setHeaderHeight(event.nativeEvent.layout.height);\n },\n [setHeaderHeight],\n );\n\n return (\n <Animated.View\n style={[styles.headerContainer, containerPaddingStyle, withNotice ? styles.noticeBorderRadius : undefined]}>\n <View style={[styles.blurWrapper, StyleSheet.absoluteFill]}>\n <BlurView\n blurStyle={'header'}\n color={colorScheme.background}\n style={[StyleSheet.absoluteFill, withNotice ? styles.noticeBorderRadius : undefined]}\n />\n </View>\n <View>\n <Animated.View style={scrollHeaderAnimatedStyle}>\n {searchBar && <AnimatedSearchBar {...searchBar} collapsed={collapsed} />}\n </Animated.View>\n {header && (\n <Animated.View onLayout={onHeaderLayout} style={[styles.headerContainer, fadeHeaderOutAnimatedStyle]}>\n {header}\n </Animated.View>\n )}\n </View>\n </Animated.View>\n );\n};\n\nconst styles = StyleSheet.create({\n blurWrapper: {\n overflow: 'hidden',\n },\n headerContainer: {\n position: 'absolute',\n width: '100%',\n },\n noticeBorderRadius: {\n borderTopLeftRadius: 30,\n borderTopRightRadius: 30,\n overflow: 'hidden',\n },\n});\n\nexport default FoldableSearchHeader;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { concatTestID } from '../../utils/testID';
|
|
|
4
4
|
import Typography from '../text/typography';
|
|
5
5
|
import { useAppColorScheme } from '../theme/color-scheme-context';
|
|
6
6
|
|
|
7
|
-
// component used on the history section lists (Settings->History,
|
|
7
|
+
// component used on the history section lists (Settings->History, CredentialDetailBindingDto->History)
|
|
8
8
|
// https://www.figma.com/file/52qDYWUMjXAGre1dcnz5bz/Procivis-One-Wallet?type=design&node-id=1246-51813&mode=dev
|
|
9
9
|
|
|
10
10
|
const HistorySectionHeaderView = ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","concatTestID","Typography","useAppColorScheme","HistorySectionHeaderView","day","year","testID","colorScheme","createElement","style","styles","header","accessibilityRole","color","text","preset","accent","create","flexDirection","justifyContent","marginVertical","paddingHorizontal","opacity"],"sources":["history-section-header.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { concatTestID } from '../../utils/testID';\nimport Typography from '../text/typography';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\n// component used on the history section lists (Settings->History,
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","concatTestID","Typography","useAppColorScheme","HistorySectionHeaderView","day","year","testID","colorScheme","createElement","style","styles","header","accessibilityRole","color","text","preset","accent","create","flexDirection","justifyContent","marginVertical","paddingHorizontal","opacity"],"sources":["history-section-header.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { concatTestID } from '../../utils/testID';\nimport Typography from '../text/typography';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\n// component used on the history section lists (Settings->History, CredentialDetailBindingDto->History)\n// https://www.figma.com/file/52qDYWUMjXAGre1dcnz5bz/Procivis-One-Wallet?type=design&node-id=1246-51813&mode=dev\n\nconst HistorySectionHeaderView: FC<{\n day: string;\n testID?: string;\n year?: string;\n}> = ({ day, year, testID }) => {\n const colorScheme = useAppColorScheme();\n\n return (\n <View style={styles.header}>\n <Typography accessibilityRole=\"header\" color={colorScheme.text} preset=\"m\" testID={concatTestID(testID, 'title')}>\n {day}\n </Typography>\n {year && (\n <Typography color={colorScheme.accent} preset=\"s/line-height-small\" style={styles.year}>\n {year}\n </Typography>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n header: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginVertical: 16,\n paddingHorizontal: 4,\n },\n year: {\n opacity: 0.7,\n },\n});\n\nexport default HistorySectionHeaderView;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,YAAY,QAAQ,oBAAoB;AACjD,OAAOC,UAAU,MAAM,oBAAoB;AAC3C,SAASC,iBAAiB,QAAQ,+BAA+B;;AAEjE;AACA;;AAEA,MAAMC,wBAIJ,GAAGA,CAAC;EAAEC,GAAG;EAAEC,IAAI;EAAEC;AAAO,CAAC,KAAK;EAC9B,MAAMC,WAAW,GAAGL,iBAAiB,CAAC,CAAC;EAEvC,oBACEL,KAAA,CAAAW,aAAA,CAACT,IAAI;IAACU,KAAK,EAAEC,MAAM,CAACC;EAAO,gBACzBd,KAAA,CAAAW,aAAA,CAACP,UAAU;IAACW,iBAAiB,EAAC,QAAQ;IAACC,KAAK,EAAEN,WAAW,CAACO,IAAK;IAACC,MAAM,EAAC,GAAG;IAACT,MAAM,EAAEN,YAAY,CAACM,MAAM,EAAE,OAAO;EAAE,GAC9GF,GACS,CAAC,EACZC,IAAI,iBACHR,KAAA,CAAAW,aAAA,CAACP,UAAU;IAACY,KAAK,EAAEN,WAAW,CAACS,MAAO;IAACD,MAAM,EAAC,qBAAqB;IAACN,KAAK,EAAEC,MAAM,CAACL;EAAK,GACpFA,IACS,CAEV,CAAC;AAEX,CAAC;AAED,MAAMK,MAAM,GAAGZ,UAAU,CAACmB,MAAM,CAAC;EAC/BN,MAAM,EAAE;IACNO,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,cAAc,EAAE,EAAE;IAClBC,iBAAiB,EAAE;EACrB,CAAC;EACDhB,IAAI,EAAE;IACJiB,OAAO,EAAE;EACX;AACF,CAAC,CAAC;AAEF,eAAenB,wBAAwB","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { StyleSheet, View } from 'react-native';
|
|
|
4
4
|
import { useAppColorScheme } from '../theme/color-scheme-context';
|
|
5
5
|
import HistoryItemView from './history-item';
|
|
6
6
|
|
|
7
|
-
// component used on the history section lists (Settings->History,
|
|
7
|
+
// component used on the history section lists (Settings->History, CredentialDetailBindingDto->History)
|
|
8
8
|
// https://www.figma.com/file/52qDYWUMjXAGre1dcnz5bz/Procivis-One-Wallet?type=design&node-id=1246-51813&mode=dev
|
|
9
9
|
|
|
10
10
|
const HistorySectionListItem = ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","useAppColorScheme","HistoryItemView","HistorySectionListItem","first","last","props","colorScheme","createElement","style","styles","item","backgroundColor","white","_extends","create","borderTopLeftRadius","borderTopRightRadius","marginTop","paddingTop","paddingHorizontal","borderBottomLeftRadius","borderBottomRightRadius","marginBottom","paddingBottom"],"sources":["history-section-list-item.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { useAppColorScheme } from '../theme/color-scheme-context';\nimport HistoryItemView, { HistoryItemViewProps } from './history-item';\n\n// component used on the history section lists (Settings->History,
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","useAppColorScheme","HistoryItemView","HistorySectionListItem","first","last","props","colorScheme","createElement","style","styles","item","backgroundColor","white","_extends","create","borderTopLeftRadius","borderTopRightRadius","marginTop","paddingTop","paddingHorizontal","borderBottomLeftRadius","borderBottomRightRadius","marginBottom","paddingBottom"],"sources":["history-section-list-item.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { useAppColorScheme } from '../theme/color-scheme-context';\nimport HistoryItemView, { HistoryItemViewProps } from './history-item';\n\n// component used on the history section lists (Settings->History, CredentialDetailBindingDto->History)\n// https://www.figma.com/file/52qDYWUMjXAGre1dcnz5bz/Procivis-One-Wallet?type=design&node-id=1246-51813&mode=dev\n\nexport interface HistorySectionListItemProps extends HistoryItemViewProps {\n first?: boolean;\n}\n\nconst HistorySectionListItem: FC<HistorySectionListItemProps> = ({ first, last, ...props }) => {\n const colorScheme = useAppColorScheme();\n return (\n <View style={[styles.item, first && styles.first, last && styles.last, { backgroundColor: colorScheme.white }]}>\n <HistoryItemView last={last} {...props} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n first: {\n borderTopLeftRadius: 20,\n borderTopRightRadius: 20,\n marginTop: 8,\n paddingTop: 12,\n },\n item: {\n paddingHorizontal: 12,\n },\n last: {\n borderBottomLeftRadius: 20,\n borderBottomRightRadius: 20,\n marginBottom: 12,\n paddingBottom: 12,\n },\n});\n\nexport default HistorySectionListItem;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,OAAOC,eAAe,MAAgC,gBAAgB;;AAEtE;AACA;;AAMA,MAAMC,sBAAuD,GAAGA,CAAC;EAAEC,KAAK;EAAEC,IAAI;EAAE,GAAGC;AAAM,CAAC,KAAK;EAC7F,MAAMC,WAAW,GAAGN,iBAAiB,CAAC,CAAC;EACvC,oBACEH,KAAA,CAAAU,aAAA,CAACR,IAAI;IAACS,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAEP,KAAK,IAAIM,MAAM,CAACN,KAAK,EAAEC,IAAI,IAAIK,MAAM,CAACL,IAAI,EAAE;MAAEO,eAAe,EAAEL,WAAW,CAACM;IAAM,CAAC;EAAE,gBAC7Gf,KAAA,CAAAU,aAAA,CAACN,eAAe,EAAAY,QAAA;IAACT,IAAI,EAAEA;EAAK,GAAKC,KAAK,CAAG,CACrC,CAAC;AAEX,CAAC;AAED,MAAMI,MAAM,GAAGX,UAAU,CAACgB,MAAM,CAAC;EAC/BX,KAAK,EAAE;IACLY,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE,EAAE;IACxBC,SAAS,EAAE,CAAC;IACZC,UAAU,EAAE;EACd,CAAC;EACDR,IAAI,EAAE;IACJS,iBAAiB,EAAE;EACrB,CAAC;EACDf,IAAI,EAAE;IACJgB,sBAAsB,EAAE,EAAE;IAC1BC,uBAAuB,EAAE,EAAE;IAC3BC,YAAY,EAAE,EAAE;IAChBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AAEF,eAAerB,sBAAsB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Svg","Mask","Path","useAppColorScheme","EntityTrustedIcon","props","colorScheme","createElement","_extends","width","height","viewBox","fill","id","maskUnits","x","y","black","white","d","success","fillOpacity","mask","EntityNotTrustedIcon","error","stroke","strokeOpacity","strokeWidth"],"sources":["entity.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport Svg, { Mask, Path, SvgProps } from 'react-native-svg';\n\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\n// https://www.figma.com/file/52qDYWUMjXAGre1dcnz5bz/Procivis-One-Wallet?type=design&node-id=415-5402&mode=design&t=YI1oD2BfBie5HcvJ-0\nexport const EntityTrustedIcon: FC<SvgProps> = ({ ...props }) => {\n const colorScheme = useAppColorScheme();\n return (\n <Svg width={16} height={19} viewBox=\"0 0 16 19\" fill=\"none\" {...props}>\n <Mask id=\"a\" maskUnits=\"userSpaceOnUse\" x={0} y={0.0496979} width={18} height={21} fill={colorScheme.black}>\n <Path fill={colorScheme.white} d=\"M0 0.0496979H18V21.0496979H0z\" />\n <Path d=\"M10.265 2.255a4 4 0 00-2.53 0l-3 1A4 4 0 002 7.05v4.117a7 7 0 007 7 7 7 0 007-7V7.05a4 4 0 00-2.735-3.795l-3-1z\" />\n </Mask>\n <Path\n d=\"M10.265 2.255a4 4 0 00-2.53 0l-3 1A4 4 0 002 7.05v4.117a7 7 0 007 7 7 7 0 007-7V7.05a4 4 0 00-2.735-3.795l-3-1z\"\n fill={colorScheme.success}\n />\n <Path\n d=\"M4.735 3.255l-.632-1.897.632 1.897zm8.53 0l.632-1.897-.632 1.897zm-5.53-1l.633 1.897-.633-1.897zm2.53 0l-.633 1.897.633-1.897zM7.103.358l-3 1 1.265 3.794 3-1L7.103.358zM0 7.05v4.117h4V7.05H0zm0 4.117a9 9 0 009 9v-4a5 5 0 01-5-5H0zm9 9a9 9 0 009-9h-4a5 5 0 01-5 5v4zm9-9V7.05h-4v4.117h4zm-4.103-9.81l-3-1-1.265 3.795 3 1 1.265-3.794zm-9.794 0A6 6 0 000 7.05h4a2 2 0 011.368-1.898L4.103 1.358zM18 7.05a6 6 0 00-4.103-5.692l-1.264 3.794A2 2 0 0114 7.05h4zM8.368 4.152a2 2 0 011.264 0L10.897.358a6 6 0 00-3.794 0l1.265 3.794z\"\n fill={colorScheme.white}\n fillOpacity={0.2}\n mask=\"url(#a)\"\n />\n <Path\n d=\"M7.914 13.383c.156 0 .3-.037.43-.11a1.06 1.06 0 00.344-.32l3.648-5.64c.057-.089.104-.183.14-.282a.761.761 0 00.063-.297.652.652 0 00-.25-.53.839.839 0 00-.555-.204c-.276 0-.507.148-.695.445l-3.148 5.032-1.446-1.813a.98.98 0 00-.312-.273.717.717 0 00-.352-.086.742.742 0 00-.554.234.754.754 0 00-.227.555c0 .104.018.206.055.304.041.094.099.19.172.29l1.882 2.265c.115.146.237.255.368.328.13.068.276.102.437.102z\"\n fill={colorScheme.white}\n />\n </Svg>\n );\n};\n\n// https://www.figma.com/design/52qDYWUMjXAGre1dcnz5bz/Procivis-One-Wallet?node-id=415-5402&t=8jP7yF4eYj70Gm9A-0\nexport const EntityNotTrustedIcon: FC<SvgProps> = ({ ...props }) => {\n const colorScheme = useAppColorScheme();\n return (\n <Svg width={22} height={22} viewBox=\"0 0 22 22\" fill=\"none\" {...props}>\n <Path\n d=\"M10.575 20a8.241 8.241 0 01-3.312-.672 8.649 8.649 0 01-2.74-1.851 8.837 8.837 0 01-1.85-2.74A8.242 8.242 0 012 11.425c0-1.173.224-2.277.672-3.312a8.793 8.793 0 014.582-4.59 8.243 8.243 0 013.312-.672c1.18 0 2.286.224 3.32.672a8.766 8.766 0 012.74 1.86 8.667 8.667 0 011.86 2.73 8.243 8.243 0 01.672 3.312 8.243 8.243 0 01-.673 3.312 8.768 8.768 0 01-4.598 4.59 8.241 8.241 0 01-3.312.673z\"\n fill={colorScheme.error}\n />\n <Path\n d=\"M10.566 1.85c1.31 0 2.552.25 3.718.755a9.765 9.765 0 013.047 2.068l.321.335a9.671 9.671 0 011.751 2.708 9.244 9.244 0 01.755 3.71c0 1.304-.25 2.544-.755 3.709a9.766 9.766 0 01-5.123 5.112h0a9.242 9.242 0 01-3.705.753 9.244 9.244 0 01-3.706-.754 9.648 9.648 0 01-3.053-2.062l-.003-.002a9.836 9.836 0 01-2.058-3.047A9.242 9.242 0 011 11.425c0-1.304.25-2.544.755-3.71a9.793 9.793 0 015.1-5.11h.001a9.244 9.244 0 013.71-.754z\"\n stroke={colorScheme.white}\n strokeOpacity={0.2}\n strokeWidth={2}\n />\n <Path\n d=\"M8.433 14.712a.822.822 0 01-.58.225.773.773 0 01-.557-.225.773.773 0 01-.224-.556c0-.216.077-.398.232-.548l2.167-2.174-2.167-2.159a.768.768 0 01-.232-.547c0-.227.074-.413.224-.557a.773.773 0 01.556-.224c.216 0 .401.072.556.216l2.175 2.167 2.183-2.167a.759.759 0 01.556-.232c.216 0 .399.077.548.232.155.15.232.332.232.548 0 .21-.077.396-.232.556l-2.175 2.167 2.167 2.166c.155.144.232.33.232.556a.759.759 0 01-.232.556.755.755 0 01-.556.225.765.765 0 01-.565-.225l-2.158-2.166-2.15 2.166z\"\n fill={colorScheme.white}\n />\n </Svg>\n )
|
|
1
|
+
{"version":3,"names":["React","Svg","Mask","Path","useAppColorScheme","EntityTrustedIcon","props","colorScheme","createElement","_extends","width","height","viewBox","fill","id","maskUnits","x","y","black","white","d","success","fillOpacity","mask","EntityNotTrustedIcon","error","stroke","strokeOpacity","strokeWidth"],"sources":["entity.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport Svg, { Mask, Path, SvgProps } from 'react-native-svg';\n\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\n// https://www.figma.com/file/52qDYWUMjXAGre1dcnz5bz/Procivis-One-Wallet?type=design&node-id=415-5402&mode=design&t=YI1oD2BfBie5HcvJ-0\nexport const EntityTrustedIcon: FC<SvgProps> = ({ ...props }) => {\n const colorScheme = useAppColorScheme();\n return (\n <Svg width={16} height={19} viewBox=\"0 0 16 19\" fill=\"none\" {...props}>\n <Mask id=\"a\" maskUnits=\"userSpaceOnUse\" x={0} y={0.0496979} width={18} height={21} fill={colorScheme.black}>\n <Path fill={colorScheme.white} d=\"M0 0.0496979H18V21.0496979H0z\" />\n <Path d=\"M10.265 2.255a4 4 0 00-2.53 0l-3 1A4 4 0 002 7.05v4.117a7 7 0 007 7 7 7 0 007-7V7.05a4 4 0 00-2.735-3.795l-3-1z\" />\n </Mask>\n <Path\n d=\"M10.265 2.255a4 4 0 00-2.53 0l-3 1A4 4 0 002 7.05v4.117a7 7 0 007 7 7 7 0 007-7V7.05a4 4 0 00-2.735-3.795l-3-1z\"\n fill={colorScheme.success}\n />\n <Path\n d=\"M4.735 3.255l-.632-1.897.632 1.897zm8.53 0l.632-1.897-.632 1.897zm-5.53-1l.633 1.897-.633-1.897zm2.53 0l-.633 1.897.633-1.897zM7.103.358l-3 1 1.265 3.794 3-1L7.103.358zM0 7.05v4.117h4V7.05H0zm0 4.117a9 9 0 009 9v-4a5 5 0 01-5-5H0zm9 9a9 9 0 009-9h-4a5 5 0 01-5 5v4zm9-9V7.05h-4v4.117h4zm-4.103-9.81l-3-1-1.265 3.795 3 1 1.265-3.794zm-9.794 0A6 6 0 000 7.05h4a2 2 0 011.368-1.898L4.103 1.358zM18 7.05a6 6 0 00-4.103-5.692l-1.264 3.794A2 2 0 0114 7.05h4zM8.368 4.152a2 2 0 011.264 0L10.897.358a6 6 0 00-3.794 0l1.265 3.794z\"\n fill={colorScheme.white}\n fillOpacity={0.2}\n mask=\"url(#a)\"\n />\n <Path\n d=\"M7.914 13.383c.156 0 .3-.037.43-.11a1.06 1.06 0 00.344-.32l3.648-5.64c.057-.089.104-.183.14-.282a.761.761 0 00.063-.297.652.652 0 00-.25-.53.839.839 0 00-.555-.204c-.276 0-.507.148-.695.445l-3.148 5.032-1.446-1.813a.98.98 0 00-.312-.273.717.717 0 00-.352-.086.742.742 0 00-.554.234.754.754 0 00-.227.555c0 .104.018.206.055.304.041.094.099.19.172.29l1.882 2.265c.115.146.237.255.368.328.13.068.276.102.437.102z\"\n fill={colorScheme.white}\n />\n </Svg>\n );\n};\n\n// https://www.figma.com/design/52qDYWUMjXAGre1dcnz5bz/Procivis-One-Wallet?node-id=415-5402&t=8jP7yF4eYj70Gm9A-0\nexport const EntityNotTrustedIcon: FC<SvgProps> = ({ ...props }) => {\n const colorScheme = useAppColorScheme();\n return (\n <Svg width={22} height={22} viewBox=\"0 0 22 22\" fill=\"none\" {...props}>\n <Path\n d=\"M10.575 20a8.241 8.241 0 01-3.312-.672 8.649 8.649 0 01-2.74-1.851 8.837 8.837 0 01-1.85-2.74A8.242 8.242 0 012 11.425c0-1.173.224-2.277.672-3.312a8.793 8.793 0 014.582-4.59 8.243 8.243 0 013.312-.672c1.18 0 2.286.224 3.32.672a8.766 8.766 0 012.74 1.86 8.667 8.667 0 011.86 2.73 8.243 8.243 0 01.672 3.312 8.243 8.243 0 01-.673 3.312 8.768 8.768 0 01-4.598 4.59 8.241 8.241 0 01-3.312.673z\"\n fill={colorScheme.error}\n />\n <Path\n d=\"M10.566 1.85c1.31 0 2.552.25 3.718.755a9.765 9.765 0 013.047 2.068l.321.335a9.671 9.671 0 011.751 2.708 9.244 9.244 0 01.755 3.71c0 1.304-.25 2.544-.755 3.709a9.766 9.766 0 01-5.123 5.112h0a9.242 9.242 0 01-3.705.753 9.244 9.244 0 01-3.706-.754 9.648 9.648 0 01-3.053-2.062l-.003-.002a9.836 9.836 0 01-2.058-3.047A9.242 9.242 0 011 11.425c0-1.304.25-2.544.755-3.71a9.793 9.793 0 015.1-5.11h.001a9.244 9.244 0 013.71-.754z\"\n stroke={colorScheme.white}\n strokeOpacity={0.2}\n strokeWidth={2}\n />\n <Path\n d=\"M8.433 14.712a.822.822 0 01-.58.225.773.773 0 01-.557-.225.773.773 0 01-.224-.556c0-.216.077-.398.232-.548l2.167-2.174-2.167-2.159a.768.768 0 01-.232-.547c0-.227.074-.413.224-.557a.773.773 0 01.556-.224c.216 0 .401.072.556.216l2.175 2.167 2.183-2.167a.759.759 0 01.556-.232c.216 0 .399.077.548.232.155.15.232.332.232.548 0 .21-.077.396-.232.556l-2.175 2.167 2.167 2.166c.155.144.232.33.232.556a.759.759 0 01-.232.556.755.755 0 01-.556.225.765.765 0 01-.565-.225l-2.158-2.166-2.15 2.166z\"\n fill={colorScheme.white}\n />\n </Svg>\n );\n};\n"],"mappings":";AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,OAAOC,GAAG,IAAIC,IAAI,EAAEC,IAAI,QAAkB,kBAAkB;AAE5D,SAASC,iBAAiB,QAAQ,+BAA+B;;AAEjE;AACA,OAAO,MAAMC,iBAA+B,GAAGA,CAAC;EAAE,GAAGC;AAAM,CAAC,KAAK;EAC/D,MAAMC,WAAW,GAAGH,iBAAiB,CAAC,CAAC;EACvC,oBACEJ,KAAA,CAAAQ,aAAA,CAACP,GAAG,EAAAQ,QAAA;IAACC,KAAK,EAAE,EAAG;IAACC,MAAM,EAAE,EAAG;IAACC,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC;EAAM,GAAKP,KAAK,gBACnEN,KAAA,CAAAQ,aAAA,CAACN,IAAI;IAACY,EAAE,EAAC,GAAG;IAACC,SAAS,EAAC,gBAAgB;IAACC,CAAC,EAAE,CAAE;IAACC,CAAC,EAAE,SAAU;IAACP,KAAK,EAAE,EAAG;IAACC,MAAM,EAAE,EAAG;IAACE,IAAI,EAAEN,WAAW,CAACW;EAAM,gBACzGlB,KAAA,CAAAQ,aAAA,CAACL,IAAI;IAACU,IAAI,EAAEN,WAAW,CAACY,KAAM;IAACC,CAAC,EAAC;EAA+B,CAAE,CAAC,eACnEpB,KAAA,CAAAQ,aAAA,CAACL,IAAI;IAACiB,CAAC,EAAC;EAAiH,CAAE,CACvH,CAAC,eACPpB,KAAA,CAAAQ,aAAA,CAACL,IAAI;IACHiB,CAAC,EAAC,iHAAiH;IACnHP,IAAI,EAAEN,WAAW,CAACc;EAAQ,CAC3B,CAAC,eACFrB,KAAA,CAAAQ,aAAA,CAACL,IAAI;IACHiB,CAAC,EAAC,2gBAA2gB;IAC7gBP,IAAI,EAAEN,WAAW,CAACY,KAAM;IACxBG,WAAW,EAAE,GAAI;IACjBC,IAAI,EAAC;EAAS,CACf,CAAC,eACFvB,KAAA,CAAAQ,aAAA,CAACL,IAAI;IACHiB,CAAC,EAAC,2ZAA2Z;IAC7ZP,IAAI,EAAEN,WAAW,CAACY;EAAM,CACzB,CACE,CAAC;AAEV,CAAC;;AAED;AACA,OAAO,MAAMK,oBAAkC,GAAGA,CAAC;EAAE,GAAGlB;AAAM,CAAC,KAAK;EAClE,MAAMC,WAAW,GAAGH,iBAAiB,CAAC,CAAC;EACvC,oBACEJ,KAAA,CAAAQ,aAAA,CAACP,GAAG,EAAAQ,QAAA;IAACC,KAAK,EAAE,EAAG;IAACC,MAAM,EAAE,EAAG;IAACC,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC;EAAM,GAAKP,KAAK,gBACnEN,KAAA,CAAAQ,aAAA,CAACL,IAAI;IACHiB,CAAC,EAAC,uYAAuY;IACzYP,IAAI,EAAEN,WAAW,CAACkB;EAAM,CACzB,CAAC,eACFzB,KAAA,CAAAQ,aAAA,CAACL,IAAI;IACHiB,CAAC,EAAC,uaAAua;IACzaM,MAAM,EAAEnB,WAAW,CAACY,KAAM;IAC1BQ,aAAa,EAAE,GAAI;IACnBC,WAAW,EAAE;EAAE,CAChB,CAAC,eACF5B,KAAA,CAAAQ,aAAA,CAACL,IAAI;IACHiB,CAAC,EAAC,weAAwe;IAC1eP,IAAI,EAAEN,WAAW,CAACY;EAAM,CACzB,CACE,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","SectionList","StyleSheet","View","Animated","useAnimatedScrollHandler","useSharedValue","useSafeAreaInsets","EntityDetailsWithButtons","ContrastingStatusBar","concatTestID","TouchableOpacity","SectionEntityCluster","NavigationHeader","CloseIcon","NerdModeItem","Typography","useAppColorScheme","EntityType","isSectionEntityCluster","item","identifier","undefined","AnimatedSectionList","createAnimatedComponent","NerdModeScreen","sections","labels","onClose","onCopyToClipboard","entityCluster","testID","title","_entityCluster$testID","insets","colorScheme","scrollOffset","expandedAttributes","setExpandedAttributes","onExpand","expanded","prev","onScroll","contentOffset","value","y","lastElementsForSection","reduce","acc","sectionTitle","data","lastElement","length","attributeKey","createElement","Fragment","backgroundColor","nerdView","background","leftItem","onPress","color","white","style","paddingTop","top","titleColor","ListHeaderComponent","_extends","entityType","ProofEntity","entityLabels","attributesLabels","styles","textColor","renderItem","section","index","_item$testID","CredentialEntity","toString","last","renderSectionHeader","sectionHeaderContainer","sectionHeaderText","scrollEventThrottle","stickySectionHeadersEnabled","create","paddingHorizontal","paddingVertical","justifyContent","marginTop","opacity"],"sources":["nerd-mode-screen.tsx"],"sourcesContent":["import { IdentifierListItem } from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useState } from 'react';\nimport { SectionList, StyleSheet, View } from 'react-native';\nimport Animated, { useAnimatedScrollHandler, useSharedValue } from 'react-native-reanimated';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport EntityDetailsWithButtons, { ContextRole } from '../../components/entity/entity-details-with-buttons';\nimport ContrastingStatusBar from '../../utils/contrasting-status-bar';\nimport { concatTestID } from '../../utils/testID';\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport SectionEntityCluster from '../entity/entity-cluster';\nimport NavigationHeader from '../header/navigation-header';\nimport { CloseIcon } from '../icons/icons';\nimport NerdModeItem, { NerdModeItemProps } from '../nerd-view/nerd-mode-item';\nimport Typography from '../text/typography';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\nexport interface EntityLabels {\n trusted: string;\n unknownIssuer: string;\n unknownVerifier: string;\n visitWebsite: string;\n termsAndServices: string;\n privacyPolicy: string;\n}\n\nexport interface AttributesLabels {\n trustRegistry: string;\n issuerIdentifier: string;\n entityIdentifier: string;\n role: string;\n expand: string;\n collapse: string;\n}\n\ninterface SectionEntityCluster {\n identifier?: IdentifierListItem;\n subline?: string;\n entityLabels: EntityLabels;\n role: ContextRole;\n testID?: string;\n}\n\ntype SectionAttribute = Omit<NerdModeItemProps, 'labels' | 'onCopyToClipboard'>;\n\ntype NerdModeSectionItem = SectionAttribute | SectionEntityCluster;\n\nexport type NerdModeSection = {\n data: NerdModeSectionItem[];\n title?: string;\n};\n\nexport type NerdModeScreenProps = {\n entityCluster?: SectionEntityCluster;\n labels: AttributesLabels;\n onClose: () => void;\n onCopyToClipboard: (value: string) => void;\n sections: NerdModeSection[];\n testID: string;\n title: string;\n};\n\nexport enum EntityType {\n CredentialEntity,\n ProofEntity,\n}\n\nfunction isSectionEntityCluster(item: NerdModeSectionItem): item is SectionEntityCluster {\n return (item as SectionEntityCluster).identifier !== undefined;\n}\n\nconst AnimatedSectionList = Animated.createAnimatedComponent(SectionList<NerdModeSectionItem>);\n\nconst NerdModeScreen: FunctionComponent<NerdModeScreenProps> = ({\n sections,\n labels,\n onClose,\n onCopyToClipboard,\n entityCluster,\n testID,\n title,\n}) => {\n const insets = useSafeAreaInsets();\n const colorScheme = useAppColorScheme();\n const scrollOffset = useSharedValue(0);\n const [expandedAttributes, setExpandedAttributes] = useState(0);\n\n // This is a bit of a hack. It's used to notify attributes that another attribute has been expanded\n // which will allow them to update their scroll offset accordingly.\n const onExpand = (expanded: boolean) => {\n setExpandedAttributes((prev) => (expanded ? prev + 1 : prev - 1));\n };\n\n const onScroll = useAnimatedScrollHandler({\n onScroll: ({ contentOffset }) => {\n scrollOffset.value = contentOffset.y;\n },\n });\n\n const lastElementsForSection = sections.reduce((acc, { title: sectionTitle = '', data }) => {\n const lastElement = data[data.length - 1];\n return {\n ...acc,\n [sectionTitle]: lastElement && !isSectionEntityCluster(lastElement) ? lastElement.attributeKey : '',\n };\n }, {} as Record<string, string>);\n\n return (\n <>\n <ContrastingStatusBar backgroundColor={colorScheme.nerdView.background} />\n <NavigationHeader\n leftItem={\n <TouchableOpacity onPress={onClose} testID={concatTestID(testID, 'closeIcon')}>\n <CloseIcon color={colorScheme.white} />\n </TouchableOpacity>\n }\n style={{\n backgroundColor: colorScheme.nerdView.background,\n paddingTop: insets.top,\n }}\n title={title}\n titleColor={colorScheme.white}\n />\n <AnimatedSectionList\n ListHeaderComponent={\n entityCluster ? (\n <EntityDetailsWithButtons\n {...entityCluster}\n entityType={EntityType.ProofEntity}\n entityLabels={entityCluster.entityLabels}\n attributesLabels={labels}\n style={[\n styles.entityCluster,\n {\n backgroundColor: colorScheme.nerdView.background,\n },\n ]}\n onCopyToClipboard={onCopyToClipboard}\n testID={entityCluster.testID ?? concatTestID(testID, 'entityCluster')}\n textColor={colorScheme.white}\n />\n ) : null\n }\n onScroll={onScroll}\n renderItem={({ item, section, index }) => {\n if (isSectionEntityCluster(item)) {\n return (\n <EntityDetailsWithButtons\n {...item}\n entityType={EntityType.CredentialEntity}\n entityLabels={item!.entityLabels}\n attributesLabels={labels}\n style={[\n styles.entityCluster,\n {\n backgroundColor: colorScheme.nerdView.background,\n },\n ]}\n onCopyToClipboard={onCopyToClipboard}\n testID={item.testID ?? concatTestID(testID, 'sectionEntityCluster', index.toString())}\n textColor={colorScheme.white}\n />\n );\n } else {\n return (\n <NerdModeItem\n {...item}\n expandedAttributes={expandedAttributes}\n labels={labels}\n last={lastElementsForSection[section.title] === item.attributeKey}\n onCopyToClipboard={onCopyToClipboard}\n onExpand={onExpand}\n scrollOffset={scrollOffset}\n testID={concatTestID(testID, item.testID)}\n />\n );\n }\n }}\n renderSectionHeader={({ section }) => {\n return section.title ? (\n <View style={styles.sectionHeaderContainer} testID={concatTestID(testID, section.title)}>\n <Typography color={colorScheme.white} style={styles.sectionHeaderText}>\n {section.title}\n </Typography>\n </View>\n ) : null;\n }}\n scrollEventThrottle={16}\n sections={sections}\n stickySectionHeadersEnabled={false}\n style={{ backgroundColor: colorScheme.nerdView.background }}\n testID={testID}\n />\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n entityCluster: {\n paddingHorizontal: 24,\n paddingVertical: 20,\n },\n sectionHeaderContainer: {\n justifyContent: 'center',\n marginTop: 20,\n paddingVertical: 16,\n },\n sectionHeaderText: {\n opacity: 0.7,\n paddingHorizontal: 20,\n },\n});\n\nexport default NerdModeScreen;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","SectionList","StyleSheet","View","Animated","useAnimatedScrollHandler","useSharedValue","useSafeAreaInsets","EntityDetailsWithButtons","ContrastingStatusBar","concatTestID","TouchableOpacity","SectionEntityCluster","NavigationHeader","CloseIcon","NerdModeItem","Typography","useAppColorScheme","EntityType","isSectionEntityCluster","item","identifier","undefined","AnimatedSectionList","createAnimatedComponent","NerdModeScreen","sections","labels","onClose","onCopyToClipboard","entityCluster","testID","title","_entityCluster$testID","insets","colorScheme","scrollOffset","expandedAttributes","setExpandedAttributes","onExpand","expanded","prev","onScroll","contentOffset","value","y","lastElementsForSection","reduce","acc","sectionTitle","data","lastElement","length","attributeKey","createElement","Fragment","backgroundColor","nerdView","background","leftItem","onPress","color","white","style","paddingTop","top","titleColor","ListHeaderComponent","_extends","entityType","ProofEntity","entityLabels","attributesLabels","styles","textColor","renderItem","section","index","_item$testID","CredentialEntity","toString","last","renderSectionHeader","sectionHeaderContainer","sectionHeaderText","scrollEventThrottle","stickySectionHeadersEnabled","create","paddingHorizontal","paddingVertical","justifyContent","marginTop","opacity"],"sources":["nerd-mode-screen.tsx"],"sourcesContent":["import { GetIdentifierListItemBindingDto } from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useState } from 'react';\nimport { SectionList, StyleSheet, View } from 'react-native';\nimport Animated, { useAnimatedScrollHandler, useSharedValue } from 'react-native-reanimated';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport EntityDetailsWithButtons, { ContextRole } from '../../components/entity/entity-details-with-buttons';\nimport ContrastingStatusBar from '../../utils/contrasting-status-bar';\nimport { concatTestID } from '../../utils/testID';\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport SectionEntityCluster from '../entity/entity-cluster';\nimport NavigationHeader from '../header/navigation-header';\nimport { CloseIcon } from '../icons/icons';\nimport NerdModeItem, { NerdModeItemProps } from '../nerd-view/nerd-mode-item';\nimport Typography from '../text/typography';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\nexport interface EntityLabels {\n trusted: string;\n unknownIssuer: string;\n unknownVerifier: string;\n visitWebsite: string;\n termsAndServices: string;\n privacyPolicy: string;\n}\n\nexport interface AttributesLabels {\n trustRegistry: string;\n issuerIdentifier: string;\n entityIdentifier: string;\n role: string;\n expand: string;\n collapse: string;\n}\n\ninterface SectionEntityCluster {\n identifier?: GetIdentifierListItemBindingDto;\n subline?: string;\n entityLabels: EntityLabels;\n role: ContextRole;\n testID?: string;\n}\n\ntype SectionAttribute = Omit<NerdModeItemProps, 'labels' | 'onCopyToClipboard'>;\n\ntype NerdModeSectionItem = SectionAttribute | SectionEntityCluster;\n\nexport type NerdModeSection = {\n data: NerdModeSectionItem[];\n title?: string;\n};\n\nexport type NerdModeScreenProps = {\n entityCluster?: SectionEntityCluster;\n labels: AttributesLabels;\n onClose: () => void;\n onCopyToClipboard: (value: string) => void;\n sections: NerdModeSection[];\n testID: string;\n title: string;\n};\n\nexport enum EntityType {\n CredentialEntity,\n ProofEntity,\n}\n\nfunction isSectionEntityCluster(item: NerdModeSectionItem): item is SectionEntityCluster {\n return (item as SectionEntityCluster).identifier !== undefined;\n}\n\nconst AnimatedSectionList = Animated.createAnimatedComponent(SectionList<NerdModeSectionItem>);\n\nconst NerdModeScreen: FunctionComponent<NerdModeScreenProps> = ({\n sections,\n labels,\n onClose,\n onCopyToClipboard,\n entityCluster,\n testID,\n title,\n}) => {\n const insets = useSafeAreaInsets();\n const colorScheme = useAppColorScheme();\n const scrollOffset = useSharedValue(0);\n const [expandedAttributes, setExpandedAttributes] = useState(0);\n\n // This is a bit of a hack. It's used to notify attributes that another attribute has been expanded\n // which will allow them to update their scroll offset accordingly.\n const onExpand = (expanded: boolean) => {\n setExpandedAttributes((prev) => (expanded ? prev + 1 : prev - 1));\n };\n\n const onScroll = useAnimatedScrollHandler({\n onScroll: ({ contentOffset }) => {\n scrollOffset.value = contentOffset.y;\n },\n });\n\n const lastElementsForSection = sections.reduce((acc, { title: sectionTitle = '', data }) => {\n const lastElement = data[data.length - 1];\n return {\n ...acc,\n [sectionTitle]: lastElement && !isSectionEntityCluster(lastElement) ? lastElement.attributeKey : '',\n };\n }, {} as Record<string, string>);\n\n return (\n <>\n <ContrastingStatusBar backgroundColor={colorScheme.nerdView.background} />\n <NavigationHeader\n leftItem={\n <TouchableOpacity onPress={onClose} testID={concatTestID(testID, 'closeIcon')}>\n <CloseIcon color={colorScheme.white} />\n </TouchableOpacity>\n }\n style={{\n backgroundColor: colorScheme.nerdView.background,\n paddingTop: insets.top,\n }}\n title={title}\n titleColor={colorScheme.white}\n />\n <AnimatedSectionList\n ListHeaderComponent={\n entityCluster ? (\n <EntityDetailsWithButtons\n {...entityCluster}\n entityType={EntityType.ProofEntity}\n entityLabels={entityCluster.entityLabels}\n attributesLabels={labels}\n style={[\n styles.entityCluster,\n {\n backgroundColor: colorScheme.nerdView.background,\n },\n ]}\n onCopyToClipboard={onCopyToClipboard}\n testID={entityCluster.testID ?? concatTestID(testID, 'entityCluster')}\n textColor={colorScheme.white}\n />\n ) : null\n }\n onScroll={onScroll}\n renderItem={({ item, section, index }) => {\n if (isSectionEntityCluster(item)) {\n return (\n <EntityDetailsWithButtons\n {...item}\n entityType={EntityType.CredentialEntity}\n entityLabels={item!.entityLabels}\n attributesLabels={labels}\n style={[\n styles.entityCluster,\n {\n backgroundColor: colorScheme.nerdView.background,\n },\n ]}\n onCopyToClipboard={onCopyToClipboard}\n testID={item.testID ?? concatTestID(testID, 'sectionEntityCluster', index.toString())}\n textColor={colorScheme.white}\n />\n );\n } else {\n return (\n <NerdModeItem\n {...item}\n expandedAttributes={expandedAttributes}\n labels={labels}\n last={lastElementsForSection[section.title] === item.attributeKey}\n onCopyToClipboard={onCopyToClipboard}\n onExpand={onExpand}\n scrollOffset={scrollOffset}\n testID={concatTestID(testID, item.testID)}\n />\n );\n }\n }}\n renderSectionHeader={({ section }) => {\n return section.title ? (\n <View style={styles.sectionHeaderContainer} testID={concatTestID(testID, section.title)}>\n <Typography color={colorScheme.white} style={styles.sectionHeaderText}>\n {section.title}\n </Typography>\n </View>\n ) : null;\n }}\n scrollEventThrottle={16}\n sections={sections}\n stickySectionHeadersEnabled={false}\n style={{ backgroundColor: colorScheme.nerdView.background }}\n testID={testID}\n />\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n entityCluster: {\n paddingHorizontal: 24,\n paddingVertical: 20,\n },\n sectionHeaderContainer: {\n justifyContent: 'center',\n marginTop: 20,\n paddingVertical: 16,\n },\n sectionHeaderText: {\n opacity: 0.7,\n paddingHorizontal: 20,\n },\n});\n\nexport default NerdModeScreen;\n"],"mappings":"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","ignoreList":[]}
|