@procivis/one-react-native-components 0.3.71 → 0.3.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/credential/credential.js +8 -2
- package/lib/commonjs/components/credential/credential.js.map +1 -1
- package/lib/commonjs/components/proof-request/index.js +23 -12
- package/lib/commonjs/components/proof-request/index.js.map +1 -1
- package/lib/commonjs/components/proof-request/select-share-credential-card-notice.js +37 -0
- package/lib/commonjs/components/proof-request/select-share-credential-card-notice.js.map +1 -0
- package/lib/commonjs/components/proof-request/share-credential-card-notice.js +36 -0
- package/lib/commonjs/components/proof-request/share-credential-card-notice.js.map +1 -0
- package/lib/commonjs/components/proof-request/{group.js → v1/group.js} +1 -1
- package/lib/commonjs/components/proof-request/v1/group.js.map +1 -0
- package/lib/commonjs/components/proof-request/v1/index.js +39 -0
- package/lib/commonjs/components/proof-request/v1/index.js.map +1 -0
- package/lib/commonjs/components/proof-request/{select-credential.js → v1/select-credential.js} +12 -6
- package/lib/commonjs/components/proof-request/v1/select-credential.js.map +1 -0
- package/lib/commonjs/components/proof-request/{share-credential.js → v1/share-credential.js} +33 -62
- package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -0
- package/lib/commonjs/components/proof-request/v2/index.js +39 -0
- package/lib/commonjs/components/proof-request/v2/index.js.map +1 -0
- package/lib/commonjs/components/proof-request/v2/select-credential-v2.js +55 -0
- package/lib/commonjs/components/proof-request/v2/select-credential-v2.js.map +1 -0
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +164 -0
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -0
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +135 -0
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -0
- package/lib/commonjs/ui-components/buttons/share-button.js +1 -1
- package/lib/commonjs/ui-components/buttons/share-button.js.map +1 -1
- package/lib/commonjs/ui-components/camera/qr-code-scanner.js +5 -1
- package/lib/commonjs/ui-components/camera/qr-code-scanner.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js +16 -42
- package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js.map +1 -1
- package/lib/commonjs/ui-components/credential/credential-attribute-item.js +3 -1
- package/lib/commonjs/ui-components/credential/credential-attribute-item.js.map +1 -1
- package/lib/commonjs/ui-components/credential/group/credential-group-header.js +72 -0
- package/lib/commonjs/ui-components/credential/group/credential-group-header.js.map +1 -0
- package/lib/commonjs/ui-components/credential/group/index.js +14 -0
- package/lib/commonjs/ui-components/credential/group/index.js.map +1 -0
- package/lib/commonjs/ui-components/credential/index.js +12 -0
- package/lib/commonjs/ui-components/credential/index.js.map +1 -1
- package/lib/commonjs/ui-components/header/foldable-header.js +29 -17
- package/lib/commonjs/ui-components/header/foldable-header.js.map +1 -1
- package/lib/commonjs/ui-components/index.js +11 -0
- package/lib/commonjs/ui-components/index.js.map +1 -1
- package/lib/commonjs/ui-components/loader/loading-result.js +1 -1
- package/lib/commonjs/ui-components/loader/loading-result.js.map +1 -1
- package/lib/commonjs/ui-components/pin/pin-lock-animation.js +477 -475
- package/lib/commonjs/ui-components/pin/pin-lock-animation.js.map +1 -1
- package/lib/commonjs/ui-components/proof-request/index.js +13 -0
- package/lib/commonjs/ui-components/proof-request/index.js.map +1 -0
- package/lib/commonjs/ui-components/proof-request/proof-request-set.js +47 -0
- package/lib/commonjs/ui-components/proof-request/proof-request-set.js.map +1 -0
- package/lib/commonjs/ui-components/screens/section-list-screen.js +17 -3
- package/lib/commonjs/ui-components/screens/section-list-screen.js.map +1 -1
- package/lib/commonjs/utils/array.js.map +1 -1
- package/lib/commonjs/utils/hooks/app-state.js +33 -0
- package/lib/commonjs/utils/hooks/app-state.js.map +1 -0
- package/lib/commonjs/utils/hooks/core/backup.js +1 -1
- package/lib/commonjs/utils/hooks/core/backup.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/credentials.js +10 -3
- package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/identifiers.js +1 -1
- package/lib/commonjs/utils/hooks/core/identifiers.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/index.js +11 -0
- package/lib/commonjs/utils/hooks/core/index.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/proofs.js +39 -10
- package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/wallet-unit.js +85 -0
- package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -0
- package/lib/commonjs/utils/hooks/index.js +11 -0
- package/lib/commonjs/utils/hooks/index.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/index.js +16 -4
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js +190 -0
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -0
- package/lib/commonjs/utils/parsers/credential-sharing.js +31 -18
- package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential.js +111 -63
- package/lib/commonjs/utils/parsers/credential.js.map +1 -1
- package/lib/commonjs/utils/parsers/index.js +11 -0
- package/lib/commonjs/utils/parsers/index.js.map +1 -1
- package/lib/commonjs/utils/parsers/query.js +4 -4
- package/lib/commonjs/utils/parsers/query.js.map +1 -1
- package/lib/commonjs/utils/wallet-unit.js +30 -0
- package/lib/commonjs/utils/wallet-unit.js.map +1 -0
- package/lib/module/components/credential/credential.js +8 -2
- package/lib/module/components/credential/credential.js.map +1 -1
- package/lib/module/components/proof-request/index.js +4 -3
- package/lib/module/components/proof-request/index.js.map +1 -1
- package/lib/module/components/proof-request/select-share-credential-card-notice.js +29 -0
- package/lib/module/components/proof-request/select-share-credential-card-notice.js.map +1 -0
- package/lib/module/components/proof-request/share-credential-card-notice.js +28 -0
- package/lib/module/components/proof-request/share-credential-card-notice.js.map +1 -0
- package/lib/module/components/proof-request/{group.js → v1/group.js} +1 -1
- package/lib/module/components/proof-request/v1/group.js.map +1 -0
- package/lib/module/components/proof-request/v1/index.js +4 -0
- package/lib/module/components/proof-request/v1/index.js.map +1 -0
- package/lib/module/components/proof-request/{select-credential.js → v1/select-credential.js} +12 -6
- package/lib/module/components/proof-request/v1/select-credential.js.map +1 -0
- package/lib/module/components/proof-request/v1/share-credential.js +118 -0
- package/lib/module/components/proof-request/v1/share-credential.js.map +1 -0
- package/lib/module/components/proof-request/v2/index.js +4 -0
- package/lib/module/components/proof-request/v2/index.js.map +1 -0
- package/lib/module/components/proof-request/v2/select-credential-v2.js +46 -0
- package/lib/module/components/proof-request/v2/select-credential-v2.js.map +1 -0
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js +154 -0
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -0
- package/lib/module/components/proof-request/v2/share-credential-v2.js +126 -0
- package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -0
- package/lib/module/ui-components/buttons/share-button.js +1 -1
- package/lib/module/ui-components/buttons/share-button.js.map +1 -1
- package/lib/module/ui-components/camera/qr-code-scanner.js +5 -1
- package/lib/module/ui-components/camera/qr-code-scanner.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-details-list-item.js +19 -45
- package/lib/module/ui-components/credential/card/credential-details-list-item.js.map +1 -1
- package/lib/module/ui-components/credential/credential-attribute-item.js +3 -1
- package/lib/module/ui-components/credential/credential-attribute-item.js.map +1 -1
- package/lib/module/ui-components/credential/group/credential-group-header.js +64 -0
- package/lib/module/ui-components/credential/group/credential-group-header.js.map +1 -0
- package/lib/module/ui-components/credential/group/index.js +3 -0
- package/lib/module/ui-components/credential/group/index.js.map +1 -0
- package/lib/module/ui-components/credential/index.js +1 -0
- package/lib/module/ui-components/credential/index.js.map +1 -1
- package/lib/module/ui-components/header/foldable-header.js +29 -17
- package/lib/module/ui-components/header/foldable-header.js.map +1 -1
- package/lib/module/ui-components/index.js +1 -0
- package/lib/module/ui-components/index.js.map +1 -1
- package/lib/module/ui-components/loader/loading-result.js +1 -1
- package/lib/module/ui-components/loader/loading-result.js.map +1 -1
- package/lib/module/ui-components/pin/pin-lock-animation.js +477 -475
- package/lib/module/ui-components/pin/pin-lock-animation.js.map +1 -1
- package/lib/module/ui-components/proof-request/index.js +3 -0
- package/lib/module/ui-components/proof-request/index.js.map +1 -0
- package/lib/module/ui-components/proof-request/proof-request-set.js +39 -0
- package/lib/module/ui-components/proof-request/proof-request-set.js.map +1 -0
- package/lib/module/ui-components/screens/section-list-screen.js +15 -3
- package/lib/module/ui-components/screens/section-list-screen.js.map +1 -1
- package/lib/module/utils/array.js.map +1 -1
- package/lib/module/utils/hooks/app-state.js +27 -0
- package/lib/module/utils/hooks/app-state.js.map +1 -0
- package/lib/module/utils/hooks/core/backup.js +1 -1
- package/lib/module/utils/hooks/core/backup.js.map +1 -1
- package/lib/module/utils/hooks/core/credentials.js +11 -4
- package/lib/module/utils/hooks/core/credentials.js.map +1 -1
- package/lib/module/utils/hooks/core/identifiers.js +5 -5
- package/lib/module/utils/hooks/core/identifiers.js.map +1 -1
- package/lib/module/utils/hooks/core/index.js +1 -0
- package/lib/module/utils/hooks/core/index.js.map +1 -1
- package/lib/module/utils/hooks/core/proofs.js +40 -11
- package/lib/module/utils/hooks/core/proofs.js.map +1 -1
- package/lib/module/utils/hooks/core/wallet-unit.js +75 -0
- package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -0
- package/lib/module/utils/hooks/index.js +1 -0
- package/lib/module/utils/hooks/index.js.map +1 -1
- package/lib/module/utils/hooks/revocation/credential-status.js +1 -1
- package/lib/module/utils/hooks/revocation/credential-status.js.map +1 -1
- package/lib/module/utils/index.js +2 -1
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing-v2.js +177 -0
- package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -0
- package/lib/module/utils/parsers/credential-sharing.js +31 -18
- package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/module/utils/parsers/credential.js +112 -64
- package/lib/module/utils/parsers/credential.js.map +1 -1
- package/lib/module/utils/parsers/index.js +1 -0
- package/lib/module/utils/parsers/index.js.map +1 -1
- package/lib/module/utils/parsers/query.js +4 -4
- package/lib/module/utils/parsers/query.js.map +1 -1
- package/lib/module/utils/wallet-unit.js +22 -0
- package/lib/module/utils/wallet-unit.js.map +1 -0
- package/lib/typescript/components/proof-request/index.d.ts +4 -3
- package/lib/typescript/components/proof-request/select-share-credential-card-notice.d.ts +7 -0
- package/lib/typescript/components/proof-request/share-credential-card-notice.d.ts +6 -0
- package/lib/typescript/components/proof-request/v1/index.d.ts +3 -0
- package/lib/typescript/components/proof-request/{select-credential.d.ts → v1/select-credential.d.ts} +1 -1
- package/lib/typescript/components/proof-request/{share-credential.d.ts → v1/share-credential.d.ts} +1 -1
- package/lib/typescript/components/proof-request/v2/index.d.ts +3 -0
- package/lib/typescript/components/proof-request/v2/select-credential-v2.d.ts +14 -0
- package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +24 -0
- package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +23 -0
- package/lib/typescript/ui-components/credential/group/credential-group-header.d.ts +10 -0
- package/lib/typescript/ui-components/credential/group/index.d.ts +3 -0
- package/lib/typescript/ui-components/credential/index.d.ts +1 -0
- package/lib/typescript/ui-components/header/foldable-header.d.ts +1 -0
- package/lib/typescript/ui-components/index.d.ts +1 -0
- package/lib/typescript/ui-components/loader/loading-result.d.ts +1 -1
- package/lib/typescript/ui-components/pin/pin-lock-animation.d.ts +311 -311
- package/lib/typescript/ui-components/proof-request/index.d.ts +3 -0
- package/lib/typescript/ui-components/proof-request/proof-request-set.d.ts +7 -0
- package/lib/typescript/ui-components/screens/section-list-screen.d.ts +4 -2
- package/lib/typescript/utils/array.d.ts +1 -0
- package/lib/typescript/utils/hooks/app-state.d.ts +5 -0
- package/lib/typescript/utils/hooks/core/backup.d.ts +1 -1
- package/lib/typescript/utils/hooks/core/credentials.d.ts +1 -1
- package/lib/typescript/utils/hooks/core/identifiers.d.ts +1 -1
- package/lib/typescript/utils/hooks/core/index.d.ts +1 -0
- package/lib/typescript/utils/hooks/core/proofs.d.ts +6 -7
- package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +9 -0
- package/lib/typescript/utils/hooks/index.d.ts +1 -0
- package/lib/typescript/utils/index.d.ts +2 -1
- package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +11 -0
- package/lib/typescript/utils/parsers/credential-sharing.d.ts +11 -5
- package/lib/typescript/utils/parsers/credential.d.ts +9 -6
- package/lib/typescript/utils/parsers/index.d.ts +1 -0
- package/lib/typescript/utils/parsers/query.d.ts +2 -2
- package/lib/typescript/utils/wallet-unit.d.ts +8 -0
- package/package.json +12 -6
- package/src/components/credential/credential.tsx +5 -1
- package/src/components/proof-request/index.ts +4 -3
- package/src/components/proof-request/select-share-credential-card-notice.tsx +37 -0
- package/src/components/proof-request/share-credential-card-notice.tsx +33 -0
- package/src/components/proof-request/{group.tsx → v1/group.tsx} +1 -1
- package/src/components/proof-request/v1/index.ts +3 -0
- package/src/components/proof-request/{select-credential.tsx → v1/select-credential.tsx} +12 -5
- package/src/components/proof-request/{share-credential.tsx → v1/share-credential.tsx} +35 -52
- package/src/components/proof-request/v2/index.ts +3 -0
- package/src/components/proof-request/v2/select-credential-v2.tsx +59 -0
- package/src/components/proof-request/v2/share-credential-v2-group.tsx +258 -0
- package/src/components/proof-request/v2/share-credential-v2.tsx +211 -0
- package/src/ui-components/buttons/share-button.tsx +1 -1
- package/src/ui-components/camera/qr-code-scanner.tsx +11 -2
- package/src/ui-components/credential/card/credential-details-list-item.tsx +27 -49
- package/src/ui-components/credential/credential-attribute-item.tsx +2 -0
- package/src/ui-components/credential/group/credential-group-header.tsx +70 -0
- package/src/ui-components/credential/group/index.ts +4 -0
- package/src/ui-components/credential/index.ts +1 -0
- package/src/ui-components/header/foldable-header.tsx +31 -16
- package/src/ui-components/index.ts +1 -0
- package/src/ui-components/loader/loading-result.tsx +1 -1
- package/src/ui-components/pin/pin-lock-animation.tsx +240 -278
- package/src/ui-components/proof-request/index.ts +4 -0
- package/src/ui-components/proof-request/proof-request-set.tsx +46 -0
- package/src/ui-components/screens/section-list-screen.tsx +18 -4
- package/src/utils/array.ts +4 -0
- package/src/utils/hooks/app-state.ts +29 -0
- package/src/utils/hooks/core/backup.ts +2 -5
- package/src/utils/hooks/core/credentials.ts +11 -4
- package/src/utils/hooks/core/identifiers.ts +15 -14
- package/src/utils/hooks/core/index.ts +2 -1
- package/src/utils/hooks/core/proofs.ts +36 -12
- package/src/utils/hooks/core/wallet-unit.ts +77 -0
- package/src/utils/hooks/index.ts +1 -0
- package/src/utils/hooks/revocation/credential-status.ts +1 -1
- package/src/utils/index.ts +2 -1
- package/src/utils/parsers/credential-sharing-v2.tsx +283 -0
- package/src/utils/parsers/credential-sharing.tsx +40 -16
- package/src/utils/parsers/credential.ts +129 -59
- package/src/utils/parsers/index.ts +1 -0
- package/src/utils/parsers/query.ts +6 -5
- package/src/utils/wallet-unit.ts +30 -0
- package/lib/commonjs/components/proof-request/group.js.map +0 -1
- package/lib/commonjs/components/proof-request/select-credential.js.map +0 -1
- package/lib/commonjs/components/proof-request/share-credential.js.map +0 -1
- package/lib/module/components/proof-request/group.js.map +0 -1
- package/lib/module/components/proof-request/select-credential.js.map +0 -1
- package/lib/module/components/proof-request/share-credential.js +0 -147
- package/lib/module/components/proof-request/share-credential.js.map +0 -1
- /package/lib/typescript/components/proof-request/{group.d.ts → v1/group.d.ts} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
1
|
+
export * from './select-share-credential-card-notice';
|
|
2
|
+
export * from './share-credential-card-notice';
|
|
3
|
+
export * from './v1';
|
|
4
|
+
export * from './v2';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './select-share-credential-card-notice';\nexport * from './share-credential-card-notice';\nexport * from './v1';\nexport * from './v2';\n"],"mappings":"AAAA,cAAc,uCAAuC;AACrD,cAAc,gCAAgC;AAC9C,cAAc,MAAM;AACpB,cAAc,MAAM","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleSheet } from 'react-native';
|
|
3
|
+
import { Button, ButtonType } from '../../ui-components';
|
|
4
|
+
import { concatTestID } from '../../utils';
|
|
5
|
+
import { ShareCredentialCardNotice } from './share-credential-card-notice';
|
|
6
|
+
export const SelectShareCredentialCardNotice = ({
|
|
7
|
+
buttonTitle,
|
|
8
|
+
onPress,
|
|
9
|
+
testID,
|
|
10
|
+
text
|
|
11
|
+
}) => {
|
|
12
|
+
return /*#__PURE__*/React.createElement(ShareCredentialCardNotice, {
|
|
13
|
+
testID: testID,
|
|
14
|
+
text: text
|
|
15
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
16
|
+
onPress: onPress,
|
|
17
|
+
style: styles.noticeButton,
|
|
18
|
+
testID: concatTestID(testID, 'button'),
|
|
19
|
+
title: buttonTitle,
|
|
20
|
+
type: ButtonType.Secondary
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
const styles = StyleSheet.create({
|
|
24
|
+
noticeButton: {
|
|
25
|
+
marginTop: 24,
|
|
26
|
+
paddingVertical: 11
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=select-share-credential-card-notice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","Button","ButtonType","concatTestID","ShareCredentialCardNotice","SelectShareCredentialCardNotice","buttonTitle","onPress","testID","text","createElement","style","styles","noticeButton","title","type","Secondary","create","marginTop","paddingVertical"],"sources":["select-share-credential-card-notice.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleSheet } from 'react-native';\n\nimport { Button, ButtonType } from '../../ui-components';\nimport { concatTestID } from '../../utils';\nimport { ShareCredentialCardNotice, ShareCredentialCardNoticeProps } from './share-credential-card-notice';\n\nexport type SelectShareCredentialCardNoticeProps = ShareCredentialCardNoticeProps & {\n buttonTitle: string;\n onPress?: () => void;\n};\n\nexport const SelectShareCredentialCardNotice: FC<SelectShareCredentialCardNoticeProps> = ({\n buttonTitle,\n onPress,\n testID,\n text,\n}) => {\n return (\n <ShareCredentialCardNotice testID={testID} text={text}>\n <Button\n onPress={onPress}\n style={styles.noticeButton}\n testID={concatTestID(testID, 'button')}\n title={buttonTitle}\n type={ButtonType.Secondary}\n />\n </ShareCredentialCardNotice>\n );\n};\n\nconst styles = StyleSheet.create({\n noticeButton: {\n marginTop: 24,\n paddingVertical: 11,\n },\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,MAAM,EAAEC,UAAU,QAAQ,qBAAqB;AACxD,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,yBAAyB,QAAwC,gCAAgC;AAO1G,OAAO,MAAMC,+BAAyE,GAAGA,CAAC;EACxFC,WAAW;EACXC,OAAO;EACPC,MAAM;EACNC;AACF,CAAC,KAAK;EACJ,oBACEV,KAAA,CAAAW,aAAA,CAACN,yBAAyB;IAACI,MAAM,EAAEA,MAAO;IAACC,IAAI,EAAEA;EAAK,gBACpDV,KAAA,CAAAW,aAAA,CAACT,MAAM;IACLM,OAAO,EAAEA,OAAQ;IACjBI,KAAK,EAAEC,MAAM,CAACC,YAAa;IAC3BL,MAAM,EAAEL,YAAY,CAACK,MAAM,EAAE,QAAQ,CAAE;IACvCM,KAAK,EAAER,WAAY;IACnBS,IAAI,EAAEb,UAAU,CAACc;EAAU,CAC5B,CACwB,CAAC;AAEhC,CAAC;AAED,MAAMJ,MAAM,GAAGZ,UAAU,CAACiB,MAAM,CAAC;EAC/BJ,YAAY,EAAE;IACZK,SAAS,EAAE,EAAE;IACbC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import { Typography, useAppColorScheme } from '../../ui-components';
|
|
4
|
+
export const ShareCredentialCardNotice = ({
|
|
5
|
+
children,
|
|
6
|
+
testID,
|
|
7
|
+
text
|
|
8
|
+
}) => {
|
|
9
|
+
const colorScheme = useAppColorScheme();
|
|
10
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
11
|
+
style: [styles.notice, {
|
|
12
|
+
backgroundColor: colorScheme.background
|
|
13
|
+
}],
|
|
14
|
+
testID: testID
|
|
15
|
+
}, /*#__PURE__*/React.createElement(Typography, {
|
|
16
|
+
align: "center",
|
|
17
|
+
color: colorScheme.text,
|
|
18
|
+
preset: "s/line-height-capped"
|
|
19
|
+
}, text), children);
|
|
20
|
+
};
|
|
21
|
+
const styles = StyleSheet.create({
|
|
22
|
+
notice: {
|
|
23
|
+
marginBottom: 22,
|
|
24
|
+
marginHorizontal: 12,
|
|
25
|
+
padding: 12
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=share-credential-card-notice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","Typography","useAppColorScheme","ShareCredentialCardNotice","children","testID","text","colorScheme","createElement","style","styles","notice","backgroundColor","background","align","color","preset","create","marginBottom","marginHorizontal","padding"],"sources":["share-credential-card-notice.tsx"],"sourcesContent":["import React, { FC, PropsWithChildren } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { Typography,useAppColorScheme } from '../../ui-components';\n\nexport type ShareCredentialCardNoticeProps = {\n testID: string;\n text: string;\n};\n\nexport const ShareCredentialCardNotice: FC<PropsWithChildren<ShareCredentialCardNoticeProps>> = ({\n children,\n testID,\n text,\n}) => {\n const colorScheme = useAppColorScheme();\n return (\n <View style={[styles.notice, { backgroundColor: colorScheme.background }]} testID={testID}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-capped\">\n {text}\n </Typography>\n {children}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n notice: {\n marginBottom: 22,\n marginHorizontal: 12,\n padding: 12,\n },\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAiC,OAAO;AACpD,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,UAAU,EAACC,iBAAiB,QAAQ,qBAAqB;AAOlE,OAAO,MAAMC,yBAAgF,GAAGA,CAAC;EAC/FC,QAAQ;EACRC,MAAM;EACNC;AACF,CAAC,KAAK;EACJ,MAAMC,WAAW,GAAGL,iBAAiB,CAAC,CAAC;EACvC,oBACEJ,KAAA,CAAAU,aAAA,CAACR,IAAI;IAACS,KAAK,EAAE,CAACC,MAAM,CAACC,MAAM,EAAE;MAAEC,eAAe,EAAEL,WAAW,CAACM;IAAW,CAAC,CAAE;IAACR,MAAM,EAAEA;EAAO,gBACxFP,KAAA,CAAAU,aAAA,CAACP,UAAU;IAACa,KAAK,EAAC,QAAQ;IAACC,KAAK,EAAER,WAAW,CAACD,IAAK;IAACU,MAAM,EAAC;EAAsB,GAC9EV,IACS,CAAC,EACZF,QACG,CAAC;AAEX,CAAC;AAED,MAAMM,MAAM,GAAGX,UAAU,CAACkB,MAAM,CAAC;EAC/BN,MAAM,EAAE;IACNO,YAAY,EAAE,EAAE;IAChBC,gBAAgB,EAAE,EAAE;IACpBC,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { StyleSheet, View } from 'react-native';
|
|
3
|
-
import { useAppColorScheme } from '
|
|
3
|
+
import { useAppColorScheme } from '../../../ui-components/theme';
|
|
4
4
|
export const ProofRequestGroup = ({
|
|
5
5
|
children
|
|
6
6
|
}) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","useAppColorScheme","ProofRequestGroup","children","colorScheme","createElement","style","styles","group","separator","backgroundColor","grayDark","create","marginTop","height","marginBottom","marginHorizontal","opacity"],"sources":["group.tsx"],"sourcesContent":["import React, { FunctionComponent, PropsWithChildren } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { useAppColorScheme } from '../../../ui-components/theme';\n\nexport const ProofRequestGroup: FunctionComponent<PropsWithChildren> = ({ children }) => {\n const colorScheme = useAppColorScheme();\n return (\n <View style={styles.group}>\n <View style={[styles.separator, { backgroundColor: colorScheme.grayDark }]} />\n {children}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n group: {\n marginTop: 16,\n },\n separator: {\n height: 1,\n marginBottom: 16,\n marginHorizontal: 4,\n opacity: 0.5,\n },\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAgD,OAAO;AACnE,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,iBAAiB,QAAQ,8BAA8B;AAEhE,OAAO,MAAMC,iBAAuD,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACvF,MAAMC,WAAW,GAAGH,iBAAiB,CAAC,CAAC;EACvC,oBACEH,KAAA,CAAAO,aAAA,CAACL,IAAI;IAACM,KAAK,EAAEC,MAAM,CAACC;EAAM,gBACxBV,KAAA,CAAAO,aAAA,CAACL,IAAI;IAACM,KAAK,EAAE,CAACC,MAAM,CAACE,SAAS,EAAE;MAAEC,eAAe,EAAEN,WAAW,CAACO;IAAS,CAAC;EAAE,CAAE,CAAC,EAC7ER,QACG,CAAC;AAEX,CAAC;AAED,MAAMI,MAAM,GAAGR,UAAU,CAACa,MAAM,CAAC;EAC/BJ,KAAK,EAAE;IACLK,SAAS,EAAE;EACb,CAAC;EACDJ,SAAS,EAAE;IACTK,MAAM,EAAE,CAAC;IACTC,YAAY,EAAE,EAAE;IAChBC,gBAAgB,EAAE,CAAC;IACnBC,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './group';\nexport * from './select-credential';\nexport * from './share-credential';\n"],"mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,qBAAqB;AACnC,cAAc,oBAAoB","ignoreList":[]}
|
package/lib/module/components/proof-request/{select-credential.js → v1/select-credential.js}
RENAMED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
2
|
import { Dimensions } from 'react-native';
|
|
3
|
-
import { CredentialDetailsCardListItem } from '
|
|
4
|
-
import { useCoreConfig } from '
|
|
5
|
-
import { useCredentialDetail } from '
|
|
6
|
-
import {
|
|
3
|
+
import { CredentialDetailsCardListItem } from '../../../ui-components';
|
|
4
|
+
import { useCoreConfig } from '../../../utils/hooks/core/core-config';
|
|
5
|
+
import { useCredentialDetail } from '../../../utils/hooks/core/credentials';
|
|
6
|
+
import { useWalletUnitAttestation } from '../../../utils/hooks/core/wallet-unit';
|
|
7
|
+
import { selectCredentialCardFromCredential } from '../../../utils/parsers/credential-sharing';
|
|
8
|
+
import { walletUnitAttestationState } from '../../../utils/wallet-unit';
|
|
7
9
|
export const SelectCredential = ({
|
|
8
10
|
credentialId,
|
|
9
11
|
labels,
|
|
@@ -20,14 +22,18 @@ export const SelectCredential = ({
|
|
|
20
22
|
const {
|
|
21
23
|
data: config
|
|
22
24
|
} = useCoreConfig();
|
|
25
|
+
const {
|
|
26
|
+
data: walletUnitAttestation,
|
|
27
|
+
isLoading: isLoadingWUA
|
|
28
|
+
} = useWalletUnitAttestation();
|
|
23
29
|
const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);
|
|
24
|
-
if (!credential || !config) {
|
|
30
|
+
if (!credential || !config || isLoadingWUA) {
|
|
25
31
|
return null;
|
|
26
32
|
}
|
|
27
33
|
const {
|
|
28
34
|
card,
|
|
29
35
|
attributes
|
|
30
|
-
} = selectCredentialCardFromCredential(credential, selected, request, config, testID, labels);
|
|
36
|
+
} = selectCredentialCardFromCredential(credential, selected, request, config, walletUnitAttestationState(walletUnitAttestation), testID, labels);
|
|
31
37
|
return /*#__PURE__*/React.createElement(CredentialDetailsCardListItem, {
|
|
32
38
|
attributes: attributes,
|
|
33
39
|
card: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","Dimensions","CredentialDetailsCardListItem","useCoreConfig","useCredentialDetail","useWalletUnitAttestation","selectCredentialCardFromCredential","walletUnitAttestationState","SelectCredential","credentialId","labels","lastItem","onImagePreview","onPress","request","selected","testID","data","credential","config","walletUnitAttestation","isLoading","isLoadingWUA","cardWidth","get","width","card","attributes","createElement","onHeaderPress","expanded"],"sources":["select-credential.tsx"],"sourcesContent":["import { PresentationDefinitionRequestedCredential } 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 { useWalletUnitAttestation } from '../../../utils/hooks/core/wallet-unit';\nimport {\n selectCredentialCardFromCredential,\n ShareCredentialCardLabels,\n} from '../../../utils/parsers/credential-sharing';\nimport { walletUnitAttestationState } from '../../../utils/wallet-unit';\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: PresentationDefinitionRequestedCredential;\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 { data: walletUnitAttestation, isLoading: isLoadingWUA } = useWalletUnitAttestation();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n if (!credential || !config || isLoadingWUA) {\n return null;\n }\n\n const { card, attributes } = selectCredentialCardFromCredential(\n credential,\n selected,\n request,\n config,\n walletUnitAttestationState(walletUnitAttestation),\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,SAASC,wBAAwB,QAAQ,uCAAuC;AAChF,SACEC,kCAAkC,QAE7B,2CAA2C;AAClD,SAASC,0BAA0B,QAAQ,4BAA4B;AAEvE,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,GAAGd,mBAAmB,CAACK,YAAY,CAAC;EAC9D,MAAM;IAAEQ,IAAI,EAAEE;EAAO,CAAC,GAAGhB,aAAa,CAAC,CAAC;EACxC,MAAM;IAAEc,IAAI,EAAEG,qBAAqB;IAAEC,SAAS,EAAEC;EAAa,CAAC,GAAGjB,wBAAwB,CAAC,CAAC;EAC3F,MAAMkB,SAAS,GAAGvB,OAAO,CAAC,MAAMC,UAAU,CAACuB,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;EAExE,IAAI,CAACP,UAAU,IAAI,CAACC,MAAM,IAAIG,YAAY,EAAE;IAC1C,OAAO,IAAI;EACb;EAEA,MAAM;IAAEI,IAAI;IAAEC;EAAW,CAAC,GAAGrB,kCAAkC,CAC7DY,UAAU,EACVH,QAAQ,EACRD,OAAO,EACPK,MAAM,EACNZ,0BAA0B,CAACa,qBAAqB,CAAC,EACjDJ,MAAM,EACNN,MACF,CAAC;EAED,oBACEX,KAAA,CAAA6B,aAAA,CAAC1B,6BAA6B;IAC5ByB,UAAU,EAAEA,UAAW;IACvBD,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPG,aAAa,EAAEhB,OAAO;MACtBY,KAAK,EAAEF;IACT,CAAE;IACFO,QAAQ,EAAEf,QAAS;IACnBJ,QAAQ,EAAEA,QAAS;IACnBC,cAAc,EAAEA;EAAe,CAChC,CAAC;AAEN,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { CredentialStateEnum } from '@procivis/react-native-one-core';
|
|
2
|
+
import React, { useMemo } from 'react';
|
|
3
|
+
import { Dimensions, StyleSheet } from 'react-native';
|
|
4
|
+
import { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';
|
|
5
|
+
import { concatTestID } from '../../../utils';
|
|
6
|
+
import { useCoreConfig } from '../../../utils/hooks/core/core-config';
|
|
7
|
+
import { useWalletUnitAttestation } from '../../../utils/hooks/core/wallet-unit';
|
|
8
|
+
import { getValidityState, ValidityState } from '../../../utils/parsers/credential';
|
|
9
|
+
import { shareCredentialCardFromCredential } from '../../../utils/parsers/credential-sharing';
|
|
10
|
+
import { walletUnitAttestationState } from '../../../utils/wallet-unit';
|
|
11
|
+
import { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';
|
|
12
|
+
import { ShareCredentialCardNotice } from '../share-credential-card-notice';
|
|
13
|
+
export const ShareCredential = ({
|
|
14
|
+
allCredentials,
|
|
15
|
+
expanded,
|
|
16
|
+
labels,
|
|
17
|
+
lastItem,
|
|
18
|
+
onHeaderPress,
|
|
19
|
+
onImagePreview,
|
|
20
|
+
onSelectCredential,
|
|
21
|
+
onSelectField,
|
|
22
|
+
request,
|
|
23
|
+
selectedCredentialId,
|
|
24
|
+
selectedFields,
|
|
25
|
+
style,
|
|
26
|
+
testID
|
|
27
|
+
}) => {
|
|
28
|
+
var _credential$issuer;
|
|
29
|
+
const colorScheme = useAppColorScheme();
|
|
30
|
+
const credential = allCredentials.find(c => c.id === selectedCredentialId);
|
|
31
|
+
const {
|
|
32
|
+
data: config
|
|
33
|
+
} = useCoreConfig();
|
|
34
|
+
const {
|
|
35
|
+
data: walletUnitAttestation,
|
|
36
|
+
isLoading: isLoadingWUA
|
|
37
|
+
} = useWalletUnitAttestation();
|
|
38
|
+
const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);
|
|
39
|
+
const selectionOptions = useMemo(() => request.applicableCredentials.filter(applicableCredentialId => allCredentials.some(({
|
|
40
|
+
id,
|
|
41
|
+
state
|
|
42
|
+
}) => id === applicableCredentialId && state === CredentialStateEnum.ACCEPTED)), [allCredentials, request]);
|
|
43
|
+
const multipleCredentialsAvailable = selectionOptions.length > 1;
|
|
44
|
+
const validityState = getValidityState(credential ? {
|
|
45
|
+
...credential,
|
|
46
|
+
issuer: credential === null || credential === void 0 || (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
|
|
47
|
+
} : undefined);
|
|
48
|
+
const invalid = useMemo(() => {
|
|
49
|
+
if (!(credential !== null && credential !== void 0 && credential.lvvcIssuanceDate) || !request.validityCredentialNbf) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return new Date(credential.lvvcIssuanceDate) < new Date(request.validityCredentialNbf);
|
|
53
|
+
}, [credential, request]);
|
|
54
|
+
const footer = useMemo(() => {
|
|
55
|
+
if (!expanded) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (validityState === ValidityState.Revoked) {
|
|
59
|
+
return /*#__PURE__*/React.createElement(ShareCredentialCardNotice, {
|
|
60
|
+
testID: concatTestID(testID, 'notice.revoked'),
|
|
61
|
+
text: labels.revokedCredentialNotice
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (validityState === ValidityState.Suspended) {
|
|
65
|
+
return /*#__PURE__*/React.createElement(ShareCredentialCardNotice, {
|
|
66
|
+
testID: concatTestID(testID, 'notice.suspended'),
|
|
67
|
+
text: labels.suspendedCredentialNotice
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (invalid) {
|
|
71
|
+
return /*#__PURE__*/React.createElement(ShareCredentialCardNotice, {
|
|
72
|
+
testID: concatTestID(testID, 'notice.invalid'),
|
|
73
|
+
text: labels.invalidCredentialNotice
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
if (multipleCredentialsAvailable) {
|
|
77
|
+
return /*#__PURE__*/React.createElement(SelectShareCredentialCardNotice, {
|
|
78
|
+
buttonTitle: labels.multipleCredentialsSelect,
|
|
79
|
+
onPress: onSelectCredential,
|
|
80
|
+
testID: concatTestID(testID, 'notice.multiple'),
|
|
81
|
+
text: labels.multipleCredentialsNotice
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}, [expanded, invalid, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);
|
|
85
|
+
if (!config || isLoadingWUA) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
const {
|
|
89
|
+
card,
|
|
90
|
+
attributes
|
|
91
|
+
} = shareCredentialCardFromCredential(credential, invalid, Boolean(expanded), multipleCredentialsAvailable, request, selectedFields, config, walletUnitAttestationState(walletUnitAttestation), testID, labels);
|
|
92
|
+
return /*#__PURE__*/React.createElement(CredentialDetailsCardListItem, {
|
|
93
|
+
attributes: attributes,
|
|
94
|
+
card: {
|
|
95
|
+
...card,
|
|
96
|
+
credentialId: request.id,
|
|
97
|
+
onHeaderPress,
|
|
98
|
+
width: cardWidth
|
|
99
|
+
},
|
|
100
|
+
expanded: expanded,
|
|
101
|
+
footer: footer,
|
|
102
|
+
lastItem: lastItem,
|
|
103
|
+
onAttributeSelected: onSelectField,
|
|
104
|
+
onImagePreview: onImagePreview,
|
|
105
|
+
style: [styles.credential, {
|
|
106
|
+
borderColor: colorScheme.background
|
|
107
|
+
}, style],
|
|
108
|
+
testID: testID
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
const styles = StyleSheet.create({
|
|
112
|
+
credential: {
|
|
113
|
+
borderRadius: 10,
|
|
114
|
+
borderWidth: 1,
|
|
115
|
+
marginBottom: 8
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=share-credential.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CredentialStateEnum","React","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","useCoreConfig","useWalletUnitAttestation","getValidityState","ValidityState","shareCredentialCardFromCredential","walletUnitAttestationState","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","walletUnitAttestation","isLoading","isLoadingWUA","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 { useWalletUnitAttestation } from '../../../utils/hooks/core/wallet-unit';\nimport { getValidityState, ValidityState } from '../../../utils/parsers/credential';\nimport {\n shareCredentialCardFromCredential,\n ShareCredentialCardLabels,\n} from '../../../utils/parsers/credential-sharing';\nimport { walletUnitAttestationState } from '../../../utils/wallet-unit';\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 { data: walletUnitAttestation, isLoading: isLoadingWUA } = useWalletUnitAttestation();\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 || isLoadingWUA) {\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 walletUnitAttestationState(walletUnitAttestation),\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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './select-credential-v2';\nexport * from './share-credential-v2';\nexport * from './share-credential-v2-group';\n"],"mappings":"AAAA,cAAc,wBAAwB;AACtC,cAAc,uBAAuB;AACrC,cAAc,6BAA6B","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React, { useCallback, useMemo } from 'react';
|
|
2
|
+
import { Dimensions } from 'react-native';
|
|
3
|
+
import { CredentialDetailsCardListItem } from '../../../ui-components';
|
|
4
|
+
import { useCoreConfig, useWalletUnitAttestation, walletUnitAttestationState } from '../../../utils';
|
|
5
|
+
import { selectCredentialCardFromV2Credential } from '../../../utils/parsers/credential-sharing-v2';
|
|
6
|
+
export const SelectCredentialV2 = ({
|
|
7
|
+
credential,
|
|
8
|
+
labels,
|
|
9
|
+
lastItem,
|
|
10
|
+
multiple,
|
|
11
|
+
onImagePreview,
|
|
12
|
+
onSelected,
|
|
13
|
+
selected,
|
|
14
|
+
testID
|
|
15
|
+
}) => {
|
|
16
|
+
const {
|
|
17
|
+
data: config
|
|
18
|
+
} = useCoreConfig();
|
|
19
|
+
const {
|
|
20
|
+
data: walletUnitAttestation,
|
|
21
|
+
isLoading: isLoadingWUA
|
|
22
|
+
} = useWalletUnitAttestation();
|
|
23
|
+
const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);
|
|
24
|
+
const onHeaderPress = useCallback(() => {
|
|
25
|
+
onSelected === null || onSelected === void 0 || onSelected(credential.id, !selected);
|
|
26
|
+
}, [credential.id, onSelected, selected]);
|
|
27
|
+
if (!credential || !config || isLoadingWUA) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const {
|
|
31
|
+
card,
|
|
32
|
+
attributes
|
|
33
|
+
} = selectCredentialCardFromV2Credential(credential, selected, multiple, config, walletUnitAttestationState(walletUnitAttestation), testID, labels);
|
|
34
|
+
return /*#__PURE__*/React.createElement(CredentialDetailsCardListItem, {
|
|
35
|
+
attributes: attributes,
|
|
36
|
+
card: {
|
|
37
|
+
...card,
|
|
38
|
+
onHeaderPress,
|
|
39
|
+
width: cardWidth
|
|
40
|
+
},
|
|
41
|
+
expanded: selected,
|
|
42
|
+
lastItem: lastItem,
|
|
43
|
+
onImagePreview: onImagePreview
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=select-credential-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","Dimensions","CredentialDetailsCardListItem","useCoreConfig","useWalletUnitAttestation","walletUnitAttestationState","selectCredentialCardFromV2Credential","SelectCredentialV2","credential","labels","lastItem","multiple","onImagePreview","onSelected","selected","testID","data","config","walletUnitAttestation","isLoading","isLoadingWUA","cardWidth","get","width","onHeaderPress","id","card","attributes","createElement","expanded"],"sources":["select-credential-v2.tsx"],"sourcesContent":["import { CredentialListItem, PresentationDefinitionV2CredentialDetail } 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 {\n ShareCredentialCardLabels,\n useCoreConfig,\n useWalletUnitAttestation,\n walletUnitAttestationState,\n} from '../../../utils';\nimport { selectCredentialCardFromV2Credential } from '../../../utils/parsers/credential-sharing-v2';\n\nexport const SelectCredentialV2: FC<{\n credential: PresentationDefinitionV2CredentialDetail;\n labels: ShareCredentialCardLabels;\n lastItem: boolean;\n multiple: boolean;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelected?: (credentialId: CredentialListItem['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 { data: walletUnitAttestation, isLoading: isLoadingWUA } = useWalletUnitAttestation();\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 || isLoadingWUA) {\n return null;\n }\n\n const { card, attributes } = selectCredentialCardFromV2Credential(\n credential,\n selected,\n multiple,\n config,\n walletUnitAttestationState(walletUnitAttestation),\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":"AACA,OAAOA,KAAK,IAAQC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACvD,SAASC,UAAU,QAA6B,cAAc;AAE9D,SAASC,6BAA6B,QAAQ,wBAAwB;AACtE,SAEEC,aAAa,EACbC,wBAAwB,EACxBC,0BAA0B,QACrB,gBAAgB;AACvB,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,GAAGd,aAAa,CAAC,CAAC;EACxC,MAAM;IAAEa,IAAI,EAAEE,qBAAqB;IAAEC,SAAS,EAAEC;EAAa,CAAC,GAAGhB,wBAAwB,CAAC,CAAC;EAC3F,MAAMiB,SAAS,GAAGrB,OAAO,CAAC,MAAMC,UAAU,CAACqB,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;EAExE,MAAMC,aAAa,GAAGzB,WAAW,CAAC,MAAM;IACtCc,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAGL,UAAU,CAACiB,EAAE,EAAE,CAACX,QAAQ,CAAC;EACxC,CAAC,EAAE,CAACN,UAAU,CAACiB,EAAE,EAAEZ,UAAU,EAAEC,QAAQ,CAAC,CAAC;EAEzC,IAAI,CAACN,UAAU,IAAI,CAACS,MAAM,IAAIG,YAAY,EAAE;IAC1C,OAAO,IAAI;EACb;EAEA,MAAM;IAAEM,IAAI;IAAEC;EAAW,CAAC,GAAGrB,oCAAoC,CAC/DE,UAAU,EACVM,QAAQ,EACRH,QAAQ,EACRM,MAAM,EACNZ,0BAA0B,CAACa,qBAAqB,CAAC,EACjDH,MAAM,EACNN,MACF,CAAC;EAED,oBACEX,KAAA,CAAA8B,aAAA,CAAC1B,6BAA6B;IAC5ByB,UAAU,EAAEA,UAAW;IACvBD,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPF,aAAa;MACbD,KAAK,EAAEF;IACT,CAAE;IACFQ,QAAQ,EAAEf,QAAS;IACnBJ,QAAQ,EAAEA,QAAS;IACnBE,cAAc,EAAEA;EAAe,CAChC,CAAC;AAEN,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import React, { useCallback, useMemo } from 'react';
|
|
2
|
+
import { StyleSheet } from 'react-native';
|
|
3
|
+
import Animated, { LinearTransition } from 'react-native-reanimated';
|
|
4
|
+
import { BlurView, CredentialCardShadow, DownIcon, Selector, SelectorStatus, TouchableOpacity, UpIcon } from '../../../ui-components';
|
|
5
|
+
import CredentialGroupHeader from '../../../ui-components/credential/group/credential-group-header';
|
|
6
|
+
import { concatTestID, useCredentialListExpandedCard } from '../../../utils';
|
|
7
|
+
import { GroupedShareCredentialV2Padding, ShareCredentialV2 } from './share-credential-v2';
|
|
8
|
+
const multipleCredentialsSelected = (selectedCredentials, credentialRequestId) => {
|
|
9
|
+
return selectedCredentials && selectedCredentials[credentialRequestId] && Array.isArray(selectedCredentials[credentialRequestId]) && selectedCredentials[credentialRequestId].length > 1;
|
|
10
|
+
};
|
|
11
|
+
const numberOfCardsForRequest = (selectedCredentials, credentialRequestId) => {
|
|
12
|
+
if (!selectedCredentials || !selectedCredentials[credentialRequestId]) {
|
|
13
|
+
return 1;
|
|
14
|
+
}
|
|
15
|
+
const selection = selectedCredentials[credentialRequestId];
|
|
16
|
+
if (Array.isArray(selection)) {
|
|
17
|
+
return selection.length;
|
|
18
|
+
}
|
|
19
|
+
return 1;
|
|
20
|
+
};
|
|
21
|
+
const heightForNumberOfCards = numberOfCards => 60 * (numberOfCards + 1) + 12 * numberOfCards;
|
|
22
|
+
export const ShareCredentialV2Group = ({
|
|
23
|
+
labels,
|
|
24
|
+
lastGroup,
|
|
25
|
+
onGroupSelect,
|
|
26
|
+
onImagePreview,
|
|
27
|
+
onSelectCredential,
|
|
28
|
+
onSelectField,
|
|
29
|
+
presentationDefinition,
|
|
30
|
+
requestGroup,
|
|
31
|
+
selected,
|
|
32
|
+
selectedCredentials = {},
|
|
33
|
+
style,
|
|
34
|
+
testID,
|
|
35
|
+
valid
|
|
36
|
+
}) => {
|
|
37
|
+
const {
|
|
38
|
+
expandedCredential,
|
|
39
|
+
onHeaderPress
|
|
40
|
+
} = useCredentialListExpandedCard();
|
|
41
|
+
const numberOfCards = requestGroup.reduce((acc, groupId) => acc + numberOfCardsForRequest(selectedCredentials, groupId), 0);
|
|
42
|
+
const singleCredentialGroup = requestGroup.length === 1 && !multipleCredentialsSelected(selectedCredentials, requestGroup[0]);
|
|
43
|
+
const headerPressHandler = useCallback(() => {
|
|
44
|
+
onGroupSelect === null || onGroupSelect === void 0 || onGroupSelect(!selected);
|
|
45
|
+
}, [selected, onGroupSelect]);
|
|
46
|
+
const onNestedCardHeaderPress = useCallback(credentialId => () => {
|
|
47
|
+
if (!selected) {
|
|
48
|
+
onGroupSelect === null || onGroupSelect === void 0 || onGroupSelect(true);
|
|
49
|
+
}
|
|
50
|
+
onHeaderPress(credentialId);
|
|
51
|
+
}, [selected, onGroupSelect, onHeaderPress]);
|
|
52
|
+
const credentialCards = useMemo(() => {
|
|
53
|
+
return requestGroup.flatMap((credentialRequestId, credentialRequestIndex, {
|
|
54
|
+
length: credentialRequestsLength
|
|
55
|
+
}) => {
|
|
56
|
+
const lastQuery = credentialRequestIndex === credentialRequestsLength - 1;
|
|
57
|
+
const credentialQuery = presentationDefinition.credentialQueries[credentialRequestId];
|
|
58
|
+
let defaultSelection;
|
|
59
|
+
if ('applicableCredentials' in credentialQuery) {
|
|
60
|
+
var _credentialQuery$appl;
|
|
61
|
+
defaultSelection = (_credentialQuery$appl = credentialQuery.applicableCredentials) !== null && _credentialQuery$appl !== void 0 && _credentialQuery$appl[0] ? {
|
|
62
|
+
credentialId: credentialQuery.applicableCredentials[0].id,
|
|
63
|
+
userSelections: []
|
|
64
|
+
} : {
|
|
65
|
+
credentialId: '',
|
|
66
|
+
userSelections: []
|
|
67
|
+
};
|
|
68
|
+
} else {
|
|
69
|
+
defaultSelection = {
|
|
70
|
+
credentialId: '',
|
|
71
|
+
userSelections: []
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const request = selectedCredentials[credentialRequestId];
|
|
75
|
+
const credentialSelections = request ? Array.isArray(request) ? request : [request] : [defaultSelection];
|
|
76
|
+
return credentialSelections === null || credentialSelections === void 0 ? void 0 : credentialSelections.flatMap((credentialRequest, credentialIndex, {
|
|
77
|
+
length: credentialsLength
|
|
78
|
+
}) => {
|
|
79
|
+
const selectedFields = credentialRequest.userSelections;
|
|
80
|
+
const cardId = `${credentialRequestId}-${credentialRequest.credentialId}`;
|
|
81
|
+
const lastItem = singleCredentialGroup ? lastGroup : lastQuery && credentialIndex === credentialsLength - 1;
|
|
82
|
+
const cardExpanded = selected && (singleCredentialGroup || expandedCredential === cardId);
|
|
83
|
+
const headerAccessory = singleCredentialGroup && valid ? /*#__PURE__*/React.createElement(Selector, {
|
|
84
|
+
status: selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty
|
|
85
|
+
}) : cardExpanded ? UpIcon : DownIcon;
|
|
86
|
+
return /*#__PURE__*/React.createElement(ShareCredentialV2, {
|
|
87
|
+
credentialQuery: credentialQuery,
|
|
88
|
+
credentialRequestId: credentialRequestId,
|
|
89
|
+
expanded: cardExpanded,
|
|
90
|
+
grouped: !singleCredentialGroup,
|
|
91
|
+
headerAccessory: headerAccessory,
|
|
92
|
+
key: credentialRequestId,
|
|
93
|
+
labels: labels,
|
|
94
|
+
lastItem: lastItem,
|
|
95
|
+
onHeaderPress: singleCredentialGroup ? headerPressHandler : onNestedCardHeaderPress(cardId),
|
|
96
|
+
onImagePreview: onImagePreview,
|
|
97
|
+
onSelectCredential: onSelectCredential === null || onSelectCredential === void 0 ? void 0 : onSelectCredential(credentialRequestId),
|
|
98
|
+
onSelectField: onSelectField(credentialRequestId),
|
|
99
|
+
selectedCredentialId: credentialRequest.credentialId,
|
|
100
|
+
selectedFields: selectedFields,
|
|
101
|
+
style: [!singleCredentialGroup && styles.requestedCredential, lastItem && styles.requestedCredentialLast],
|
|
102
|
+
testID: concatTestID(testID, credentialRequestId)
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}, [expandedCredential, labels, lastGroup, headerPressHandler, onImagePreview, onNestedCardHeaderPress, onSelectCredential, onSelectField, presentationDefinition.credentialQueries, requestGroup, selected, selectedCredentials, singleCredentialGroup, testID, valid]);
|
|
107
|
+
if (singleCredentialGroup) {
|
|
108
|
+
return credentialCards[0];
|
|
109
|
+
}
|
|
110
|
+
const groupHeaderAccessory = valid ? /*#__PURE__*/React.createElement(Selector, {
|
|
111
|
+
status: selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty
|
|
112
|
+
}) : selected ? UpIcon : DownIcon;
|
|
113
|
+
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
114
|
+
layout: LinearTransition,
|
|
115
|
+
style: [styles.animatedWrapper,
|
|
116
|
+
// eslint-disable-next-line react-native/no-inline-styles
|
|
117
|
+
{
|
|
118
|
+
height: selected || lastGroup ? 'auto' : heightForNumberOfCards(numberOfCards)
|
|
119
|
+
}, style]
|
|
120
|
+
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
121
|
+
layout: LinearTransition,
|
|
122
|
+
style: [singleCredentialGroup ? undefined : styles.groupedCredentialsWrapper, !singleCredentialGroup && styles.requestedCredential, lastGroup && styles.requestedCredentialLast, style]
|
|
123
|
+
}, /*#__PURE__*/React.createElement(BlurView, {
|
|
124
|
+
blurStyle: "strong",
|
|
125
|
+
darkMode: true,
|
|
126
|
+
style: StyleSheet.absoluteFill
|
|
127
|
+
}), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
128
|
+
onPress: headerPressHandler
|
|
129
|
+
}, /*#__PURE__*/React.createElement(CredentialGroupHeader, {
|
|
130
|
+
accessory: groupHeaderAccessory,
|
|
131
|
+
name: labels.groupHeader,
|
|
132
|
+
style: styles.header
|
|
133
|
+
})), credentialCards));
|
|
134
|
+
};
|
|
135
|
+
const styles = StyleSheet.create({
|
|
136
|
+
animatedWrapper: {
|
|
137
|
+
...CredentialCardShadow
|
|
138
|
+
},
|
|
139
|
+
groupedCredentialsWrapper: {
|
|
140
|
+
borderRadius: 10 + GroupedShareCredentialV2Padding,
|
|
141
|
+
overflow: 'hidden',
|
|
142
|
+
paddingBottom: GroupedShareCredentialV2Padding
|
|
143
|
+
},
|
|
144
|
+
header: {
|
|
145
|
+
marginBottom: GroupedShareCredentialV2Padding
|
|
146
|
+
},
|
|
147
|
+
requestedCredential: {
|
|
148
|
+
marginBottom: 12
|
|
149
|
+
},
|
|
150
|
+
requestedCredentialLast: {
|
|
151
|
+
marginBottom: 0
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
//# sourceMappingURL=share-credential-v2-group.js.map
|
|
@@ -0,0 +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":"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","ignoreList":[]}
|