@bifold/core 2.1.7 → 2.1.9
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/App.js +1 -2
- package/lib/commonjs/App.js.map +1 -1
- package/lib/commonjs/assets/icons/code.svg +4 -0
- package/lib/commonjs/components/animated/ButtonLoading.js +1 -2
- package/lib/commonjs/components/animated/ButtonLoading.js.map +1 -1
- package/lib/commonjs/components/animated/ConnectionLoading.js +1 -2
- package/lib/commonjs/components/animated/ConnectionLoading.js.map +1 -1
- package/lib/commonjs/components/animated/CredentialAdded.js +1 -2
- package/lib/commonjs/components/animated/CredentialAdded.js.map +1 -1
- package/lib/commonjs/components/animated/CredentialPending.js +1 -2
- package/lib/commonjs/components/animated/CredentialPending.js.map +1 -1
- package/lib/commonjs/components/animated/LoadingIndicator.js +1 -2
- package/lib/commonjs/components/animated/LoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/animated/PresentationLoading.js +1 -2
- package/lib/commonjs/components/animated/PresentationLoading.js.map +1 -1
- package/lib/commonjs/components/animated/RecordLoading.js +1 -2
- package/lib/commonjs/components/animated/RecordLoading.js.map +1 -1
- package/lib/commonjs/components/animated/SendingProof.js +1 -2
- package/lib/commonjs/components/animated/SendingProof.js.map +1 -1
- package/lib/commonjs/components/animated/SentProof.js +1 -2
- package/lib/commonjs/components/animated/SentProof.js.map +1 -1
- package/lib/commonjs/components/buttons/Button.js +1 -2
- package/lib/commonjs/components/buttons/Button.js.map +1 -1
- package/lib/commonjs/components/buttons/HeaderHome.js +1 -2
- package/lib/commonjs/components/buttons/HeaderHome.js.map +1 -1
- package/lib/commonjs/components/buttons/InfoIcon.js +1 -2
- package/lib/commonjs/components/buttons/InfoIcon.js.map +1 -1
- package/lib/commonjs/components/buttons/SettingsMenu.js +1 -2
- package/lib/commonjs/components/buttons/SettingsMenu.js.map +1 -1
- package/lib/commonjs/components/buttons/ToggleButton.js +1 -2
- package/lib/commonjs/components/buttons/ToggleButton.js.map +1 -1
- package/lib/commonjs/components/buttons/index.js +1 -2
- package/lib/commonjs/components/buttons/index.js.map +1 -1
- package/lib/commonjs/components/chat/ChatMessage.js +1 -2
- package/lib/commonjs/components/chat/ChatMessage.js.map +1 -1
- package/lib/commonjs/components/forms/WalletNameForm.js +1 -2
- package/lib/commonjs/components/forms/WalletNameForm.js.map +1 -1
- package/lib/commonjs/components/index.js +1 -2
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/components/inputs/BiometryControl.js +1 -2
- package/lib/commonjs/components/inputs/BiometryControl.js.map +1 -1
- package/lib/commonjs/components/inputs/BulletPoint.js +1 -2
- package/lib/commonjs/components/inputs/BulletPoint.js.map +1 -1
- package/lib/commonjs/components/inputs/LimitedTextInput.js +4 -3
- package/lib/commonjs/components/inputs/LimitedTextInput.js.map +1 -1
- package/lib/commonjs/components/inputs/PINInput.js +1 -2
- package/lib/commonjs/components/inputs/PINInput.js.map +1 -1
- package/lib/commonjs/components/inputs/SingleSelectBlock.js +1 -2
- package/lib/commonjs/components/inputs/SingleSelectBlock.js.map +1 -1
- package/lib/commonjs/components/listItems/ContactListItem.js +1 -2
- package/lib/commonjs/components/listItems/ContactListItem.js.map +1 -1
- package/lib/commonjs/components/listItems/NotificationListItem.js +1 -2
- package/lib/commonjs/components/listItems/NotificationListItem.js.map +1 -1
- package/lib/commonjs/components/misc/ConnectionAlert.js +1 -2
- package/lib/commonjs/components/misc/ConnectionAlert.js.map +1 -1
- package/lib/commonjs/components/misc/ContentGradient.js +1 -2
- package/lib/commonjs/components/misc/ContentGradient.js.map +1 -1
- package/lib/commonjs/components/misc/CredentialCard.js +1 -2
- package/lib/commonjs/components/misc/CredentialCard.js.map +1 -1
- package/lib/commonjs/components/misc/CredentialCard10.js +11 -12
- package/lib/commonjs/components/misc/CredentialCard10.js.map +1 -1
- package/lib/commonjs/components/misc/CredentialCard11.js +14 -13
- package/lib/commonjs/components/misc/CredentialCard11.js.map +1 -1
- package/lib/commonjs/components/misc/FauxHeader.js +1 -2
- package/lib/commonjs/components/misc/FauxHeader.js.map +1 -1
- package/lib/commonjs/components/misc/InfoBox.js +1 -2
- package/lib/commonjs/components/misc/InfoBox.js.map +1 -1
- package/lib/commonjs/components/misc/QRRenderer.js +1 -2
- package/lib/commonjs/components/misc/QRRenderer.js.map +1 -1
- package/lib/commonjs/components/misc/QRScanner.js +1 -2
- package/lib/commonjs/components/misc/QRScanner.js.map +1 -1
- package/lib/commonjs/components/misc/ScanCamera.js +1 -2
- package/lib/commonjs/components/misc/ScanCamera.js.map +1 -1
- package/lib/commonjs/components/misc/SharedProofData.js +1 -2
- package/lib/commonjs/components/misc/SharedProofData.js.map +1 -1
- package/lib/commonjs/components/misc/VerifierCredentialCard.js +7 -8
- package/lib/commonjs/components/misc/VerifierCredentialCard.js.map +1 -1
- package/lib/commonjs/components/modals/AppGuideModal.js +1 -2
- package/lib/commonjs/components/modals/AppGuideModal.js.map +1 -1
- package/lib/commonjs/components/modals/CameraDisclosureModal.js +1 -2
- package/lib/commonjs/components/modals/CameraDisclosureModal.js.map +1 -1
- package/lib/commonjs/components/modals/CommonRemoveModal.js +1 -2
- package/lib/commonjs/components/modals/CommonRemoveModal.js.map +1 -1
- package/lib/commonjs/components/modals/DismissiblePopupModal.js +1 -2
- package/lib/commonjs/components/modals/DismissiblePopupModal.js.map +1 -1
- package/lib/commonjs/components/modals/ErrorModal.js +1 -2
- package/lib/commonjs/components/modals/ErrorModal.js.map +1 -1
- package/lib/commonjs/components/modals/NetInfoModal.js +1 -2
- package/lib/commonjs/components/modals/NetInfoModal.js.map +1 -1
- package/lib/commonjs/components/modals/ProofCancelModal.js +1 -2
- package/lib/commonjs/components/modals/ProofCancelModal.js.map +1 -1
- package/lib/commonjs/components/record/Record.js +1 -2
- package/lib/commonjs/components/record/Record.js.map +1 -1
- package/lib/commonjs/components/record/RecordBinaryField.js +1 -2
- package/lib/commonjs/components/record/RecordBinaryField.js.map +1 -1
- package/lib/commonjs/components/record/RecordDateIntField.js +1 -2
- package/lib/commonjs/components/record/RecordDateIntField.js.map +1 -1
- package/lib/commonjs/components/toast/ToastConfig.js +1 -2
- package/lib/commonjs/components/toast/ToastConfig.js.map +1 -1
- package/lib/commonjs/components/tour/AttachTourStep.js +1 -2
- package/lib/commonjs/components/tour/AttachTourStep.js.map +1 -1
- package/lib/commonjs/components/tour/CredentialOfferTourSteps.js +1 -2
- package/lib/commonjs/components/tour/CredentialOfferTourSteps.js.map +1 -1
- package/lib/commonjs/components/tour/CredentialsTourSteps.js +1 -2
- package/lib/commonjs/components/tour/CredentialsTourSteps.js.map +1 -1
- package/lib/commonjs/components/tour/HomeTourSteps.js +1 -2
- package/lib/commonjs/components/tour/HomeTourSteps.js.map +1 -1
- package/lib/commonjs/components/tour/ProofRequestTourSteps.js +1 -2
- package/lib/commonjs/components/tour/ProofRequestTourSteps.js.map +1 -1
- package/lib/commonjs/components/tour/SpotCutout.js +1 -2
- package/lib/commonjs/components/tour/SpotCutout.js.map +1 -1
- package/lib/commonjs/components/tour/TourBox.js +1 -2
- package/lib/commonjs/components/tour/TourBox.js.map +1 -1
- package/lib/commonjs/components/tour/TourOverlay.js +1 -2
- package/lib/commonjs/components/tour/TourOverlay.js.map +1 -1
- package/lib/commonjs/components/views/LoadingPlaceholder.js +1 -2
- package/lib/commonjs/components/views/LoadingPlaceholder.js.map +1 -1
- package/lib/commonjs/components/views/ProgressBar.js +1 -2
- package/lib/commonjs/components/views/ProgressBar.js.map +1 -1
- package/lib/commonjs/constants.js +1 -0
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/container-impl.js +1 -2
- package/lib/commonjs/container-impl.js.map +1 -1
- package/lib/commonjs/contexts/activity.js +1 -2
- package/lib/commonjs/contexts/activity.js.map +1 -1
- package/lib/commonjs/contexts/auth.js +1 -2
- package/lib/commonjs/contexts/auth.js.map +1 -1
- package/lib/commonjs/contexts/index.js +1 -2
- package/lib/commonjs/contexts/index.js.map +1 -1
- package/lib/commonjs/contexts/reducers/index.js +1 -2
- package/lib/commonjs/contexts/reducers/index.js.map +1 -1
- package/lib/commonjs/contexts/store.js +1 -2
- package/lib/commonjs/contexts/store.js.map +1 -1
- package/lib/commonjs/contexts/tour/tour-provider.js +1 -2
- package/lib/commonjs/contexts/tour/tour-provider.js.map +1 -1
- package/lib/commonjs/hooks/chat-messages.js +1 -2
- package/lib/commonjs/hooks/chat-messages.js.map +1 -1
- package/lib/commonjs/index.js +1 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/localization/en/en.json +11 -2
- package/lib/commonjs/localization/fr/fr.json +11 -2
- package/lib/commonjs/localization/index.js +1 -2
- package/lib/commonjs/localization/index.js.map +1 -1
- package/lib/commonjs/localization/pt-br/pt-br.json +11 -2
- package/lib/commonjs/modules/history/types/index.js +3 -0
- package/lib/commonjs/modules/history/types/index.js.map +1 -1
- package/lib/commonjs/modules/history/ui/HistoryPage.js +1 -2
- package/lib/commonjs/modules/history/ui/HistoryPage.js.map +1 -1
- package/lib/commonjs/modules/history/ui/HistorySettings.js +1 -2
- package/lib/commonjs/modules/history/ui/HistorySettings.js.map +1 -1
- package/lib/commonjs/modules/history/ui/components/HistoryMenu.js +1 -2
- package/lib/commonjs/modules/history/ui/components/HistoryMenu.js.map +1 -1
- package/lib/commonjs/modules/history/ui/components/SingleSelectBlock.js +1 -2
- package/lib/commonjs/modules/history/ui/components/SingleSelectBlock.js.map +1 -1
- package/lib/commonjs/modules/openid/components/OpenIDCredentialCard.js +1 -2
- package/lib/commonjs/modules/openid/components/OpenIDCredentialCard.js.map +1 -1
- package/lib/commonjs/modules/openid/screens/OpenIDCredentialDetails.js +1 -2
- package/lib/commonjs/modules/openid/screens/OpenIDCredentialDetails.js.map +1 -1
- package/lib/commonjs/modules/openid/screens/OpenIDCredentialOffer.js +1 -2
- package/lib/commonjs/modules/openid/screens/OpenIDCredentialOffer.js.map +1 -1
- package/lib/commonjs/modules/openid/screens/OpenIDProofPresentation.js +1 -2
- package/lib/commonjs/modules/openid/screens/OpenIDProofPresentation.js.map +1 -1
- package/lib/commonjs/navigators/ContactStack.js +8 -0
- package/lib/commonjs/navigators/ContactStack.js.map +1 -1
- package/lib/commonjs/navigators/CredentialStack.js +8 -0
- package/lib/commonjs/navigators/CredentialStack.js.map +1 -1
- package/lib/commonjs/navigators/MainStack.js +1 -2
- package/lib/commonjs/navigators/MainStack.js.map +1 -1
- package/lib/commonjs/navigators/OnboardingStack.js +1 -2
- package/lib/commonjs/navigators/OnboardingStack.js.map +1 -1
- package/lib/commonjs/navigators/ProofRequestStack.js +1 -2
- package/lib/commonjs/navigators/ProofRequestStack.js.map +1 -1
- package/lib/commonjs/navigators/RootStack.js +1 -2
- package/lib/commonjs/navigators/RootStack.js.map +1 -1
- package/lib/commonjs/navigators/TabStack.js +1 -2
- package/lib/commonjs/navigators/TabStack.js.map +1 -1
- package/lib/commonjs/screens/AttemptLockout.js +1 -2
- package/lib/commonjs/screens/AttemptLockout.js.map +1 -1
- package/lib/commonjs/screens/Biometry.js +1 -2
- package/lib/commonjs/screens/Biometry.js.map +1 -1
- package/lib/commonjs/screens/Chat.js +1 -2
- package/lib/commonjs/screens/Chat.js.map +1 -1
- package/lib/commonjs/screens/Connection.js +1 -2
- package/lib/commonjs/screens/Connection.js.map +1 -1
- package/lib/commonjs/screens/ContactDetails.js +19 -3
- package/lib/commonjs/screens/ContactDetails.js.map +1 -1
- package/lib/commonjs/screens/CredentialDetails.js +45 -3
- package/lib/commonjs/screens/CredentialDetails.js.map +1 -1
- package/lib/commonjs/screens/CredentialOffer.js +1 -2
- package/lib/commonjs/screens/CredentialOffer.js.map +1 -1
- package/lib/commonjs/screens/CredentialOfferAccept.js +1 -2
- package/lib/commonjs/screens/CredentialOfferAccept.js.map +1 -1
- package/lib/commonjs/screens/DataRetention.js +1 -2
- package/lib/commonjs/screens/DataRetention.js.map +1 -1
- package/lib/commonjs/screens/Developer.js +1 -2
- package/lib/commonjs/screens/Developer.js.map +1 -1
- package/lib/commonjs/screens/Home.js +1 -2
- package/lib/commonjs/screens/Home.js.map +1 -1
- package/lib/commonjs/screens/JSONDetails.js +105 -0
- package/lib/commonjs/screens/JSONDetails.js.map +1 -0
- package/lib/commonjs/screens/ListContacts.js +1 -2
- package/lib/commonjs/screens/ListContacts.js.map +1 -1
- package/lib/commonjs/screens/ListCredentials.js +1 -2
- package/lib/commonjs/screens/ListCredentials.js.map +1 -1
- package/lib/commonjs/screens/ListProofRequests.js +1 -2
- package/lib/commonjs/screens/ListProofRequests.js.map +1 -1
- package/lib/commonjs/screens/MobileVerifierLoading.js +1 -2
- package/lib/commonjs/screens/MobileVerifierLoading.js.map +1 -1
- package/lib/commonjs/screens/Onboarding.js +1 -2
- package/lib/commonjs/screens/Onboarding.js.map +1 -1
- package/lib/commonjs/screens/OnboardingPages.js +1 -2
- package/lib/commonjs/screens/OnboardingPages.js.map +1 -1
- package/lib/commonjs/screens/PINChange.js +1 -2
- package/lib/commonjs/screens/PINChange.js.map +1 -1
- package/lib/commonjs/screens/PINCreate.js +1 -2
- package/lib/commonjs/screens/PINCreate.js.map +1 -1
- package/lib/commonjs/screens/PINEnter.js +1 -2
- package/lib/commonjs/screens/PINEnter.js.map +1 -1
- package/lib/commonjs/screens/PINExplainer.js +1 -2
- package/lib/commonjs/screens/PINExplainer.js.map +1 -1
- package/lib/commonjs/screens/PINVerify.js +1 -2
- package/lib/commonjs/screens/PINVerify.js.map +1 -1
- package/lib/commonjs/screens/PasteUrl.js +1 -2
- package/lib/commonjs/screens/PasteUrl.js.map +1 -1
- package/lib/commonjs/screens/Preface.js +1 -2
- package/lib/commonjs/screens/Preface.js.map +1 -1
- package/lib/commonjs/screens/ProofChangeCredential.js +1 -2
- package/lib/commonjs/screens/ProofChangeCredential.js.map +1 -1
- package/lib/commonjs/screens/ProofDetails.js +1 -2
- package/lib/commonjs/screens/ProofDetails.js.map +1 -1
- package/lib/commonjs/screens/ProofRequest.js +1 -2
- package/lib/commonjs/screens/ProofRequest.js.map +1 -1
- package/lib/commonjs/screens/ProofRequestAccept.js +1 -2
- package/lib/commonjs/screens/ProofRequestAccept.js.map +1 -1
- package/lib/commonjs/screens/ProofRequestDetails.js +1 -2
- package/lib/commonjs/screens/ProofRequestDetails.js.map +1 -1
- package/lib/commonjs/screens/ProofRequestUsageHistory.js +1 -2
- package/lib/commonjs/screens/ProofRequestUsageHistory.js.map +1 -1
- package/lib/commonjs/screens/ProofRequesting.js +1 -2
- package/lib/commonjs/screens/ProofRequesting.js.map +1 -1
- package/lib/commonjs/screens/PushNotifications.js +1 -2
- package/lib/commonjs/screens/PushNotifications.js.map +1 -1
- package/lib/commonjs/screens/RenameContact.js +1 -2
- package/lib/commonjs/screens/RenameContact.js.map +1 -1
- package/lib/commonjs/screens/RenameWallet.js +1 -2
- package/lib/commonjs/screens/RenameWallet.js.map +1 -1
- package/lib/commonjs/screens/Scan.js +1 -2
- package/lib/commonjs/screens/Scan.js.map +1 -1
- package/lib/commonjs/screens/Settings.js +1 -2
- package/lib/commonjs/screens/Settings.js.map +1 -1
- package/lib/commonjs/screens/Splash.js +1 -2
- package/lib/commonjs/screens/Splash.js.map +1 -1
- package/lib/commonjs/screens/Terms.js +1 -2
- package/lib/commonjs/screens/Terms.js.map +1 -1
- package/lib/commonjs/screens/ToggleBiometry.js +1 -2
- package/lib/commonjs/screens/ToggleBiometry.js.map +1 -1
- package/lib/commonjs/screens/TogglePushNotifications.js +1 -2
- package/lib/commonjs/screens/TogglePushNotifications.js.map +1 -1
- package/lib/commonjs/screens/UpdateAvailable.js +1 -2
- package/lib/commonjs/screens/UpdateAvailable.js.map +1 -1
- package/lib/commonjs/services/keychain.js +1 -2
- package/lib/commonjs/services/keychain.js.map +1 -1
- package/lib/commonjs/theme.js +2 -0
- package/lib/commonjs/theme.js.map +1 -1
- package/lib/commonjs/types/index.js +1 -2
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/commonjs/types/navigators.js +1 -0
- package/lib/commonjs/types/navigators.js.map +1 -1
- package/lib/commonjs/utils/helpers.js +2 -2
- package/lib/commonjs/utils/helpers.js.map +1 -1
- package/lib/commonjs/utils/migration.js +1 -2
- package/lib/commonjs/utils/migration.js.map +1 -1
- package/lib/commonjs/utils/parsers.js +3 -0
- package/lib/commonjs/utils/parsers.js.map +1 -1
- package/lib/module/assets/icons/code.svg +4 -0
- package/lib/module/components/inputs/LimitedTextInput.js +3 -1
- package/lib/module/components/inputs/LimitedTextInput.js.map +1 -1
- package/lib/module/components/inputs/PINInput.js.map +1 -1
- package/lib/module/components/misc/CredentialCard10.js +10 -10
- package/lib/module/components/misc/CredentialCard10.js.map +1 -1
- package/lib/module/components/misc/CredentialCard11.js +13 -11
- package/lib/module/components/misc/CredentialCard11.js.map +1 -1
- package/lib/module/components/misc/VerifierCredentialCard.js +6 -6
- package/lib/module/components/misc/VerifierCredentialCard.js.map +1 -1
- package/lib/module/constants.js +1 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/module/localization/en/en.json +11 -2
- package/lib/module/localization/fr/fr.json +11 -2
- package/lib/module/localization/pt-br/pt-br.json +11 -2
- package/lib/module/modules/history/types/index.js +3 -0
- package/lib/module/modules/history/types/index.js.map +1 -1
- package/lib/module/navigators/ContactStack.js +8 -0
- package/lib/module/navigators/ContactStack.js.map +1 -1
- package/lib/module/navigators/CredentialStack.js +8 -0
- package/lib/module/navigators/CredentialStack.js.map +1 -1
- package/lib/module/screens/ContactDetails.js +18 -1
- package/lib/module/screens/ContactDetails.js.map +1 -1
- package/lib/module/screens/CredentialDetails.js +44 -1
- package/lib/module/screens/CredentialDetails.js.map +1 -1
- package/lib/module/screens/JSONDetails.js +97 -0
- package/lib/module/screens/JSONDetails.js.map +1 -0
- package/lib/module/theme.js +2 -0
- package/lib/module/theme.js.map +1 -1
- package/lib/module/types/navigators.js +1 -0
- package/lib/module/types/navigators.js.map +1 -1
- package/lib/module/utils/helpers.js +2 -2
- package/lib/module/utils/helpers.js.map +1 -1
- package/lib/module/utils/parsers.js +3 -0
- package/lib/module/utils/parsers.js.map +1 -1
- package/lib/typescript/src/App.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/ChatActions.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/ChatBubble.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/MessageInput.d.ts.map +1 -1
- package/lib/typescript/src/components/inputs/LimitedTextInput.d.ts +3 -2
- package/lib/typescript/src/components/inputs/LimitedTextInput.d.ts.map +1 -1
- package/lib/typescript/src/components/inputs/PINInput.d.ts.map +1 -1
- package/lib/typescript/src/components/listItems/ContactCredentialListItem.d.ts.map +1 -1
- package/lib/typescript/src/components/misc/CredentialCard11ActionFooter.d.ts.map +1 -1
- package/lib/typescript/src/components/misc/PINHeader.d.ts.map +1 -1
- package/lib/typescript/src/components/tour/TourOverlay.d.ts.map +1 -1
- package/lib/typescript/src/container-api.d.ts.map +1 -1
- package/lib/typescript/src/contexts/navigation.d.ts.map +1 -1
- package/lib/typescript/src/contexts/network.d.ts.map +1 -1
- package/lib/typescript/src/contexts/reducers/store.d.ts.map +1 -1
- package/lib/typescript/src/contexts/store.d.ts.map +1 -1
- package/lib/typescript/src/contexts/theme.d.ts.map +1 -1
- package/lib/typescript/src/hooks/chat-messages.d.ts.map +1 -1
- package/lib/typescript/src/hooks/connections.d.ts.map +1 -1
- package/lib/typescript/src/hooks/credential-card-styles.d.ts.map +1 -1
- package/lib/typescript/src/hooks/credentials.d.ts.map +1 -1
- package/lib/typescript/src/hooks/developer-mode.d.ts.map +1 -1
- package/lib/typescript/src/hooks/notifications.d.ts.map +1 -1
- package/lib/typescript/src/hooks/oob.d.ts.map +1 -1
- package/lib/typescript/src/hooks/proof-request-templates.d.ts.map +1 -1
- package/lib/typescript/src/hooks/proofs.d.ts.map +1 -1
- package/lib/typescript/src/hooks/screen-capture.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useOnboardingState.d.ts.map +1 -1
- package/lib/typescript/src/hooks/usePINValidation.d.ts.map +1 -1
- package/lib/typescript/src/localization/index.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/hooks/openid.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/offerResolve.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/resolverProof.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/utils/utils.d.ts.map +1 -1
- package/lib/typescript/src/navigators/ContactStack.d.ts.map +1 -1
- package/lib/typescript/src/navigators/CredentialStack.d.ts.map +1 -1
- package/lib/typescript/src/navigators/OnboardingScreens.d.ts.map +1 -1
- package/lib/typescript/src/onboarding.d.ts.map +1 -1
- package/lib/typescript/src/screens/ContactDetails.d.ts.map +1 -1
- package/lib/typescript/src/screens/CredentialDetails.d.ts.map +1 -1
- package/lib/typescript/src/screens/JSONDetails.d.ts +6 -0
- package/lib/typescript/src/screens/JSONDetails.d.ts.map +1 -0
- package/lib/typescript/src/screens/OnboardingPages.d.ts.map +1 -1
- package/lib/typescript/src/services/keychain.d.ts.map +1 -1
- package/lib/typescript/src/services/storage.d.ts.map +1 -1
- package/lib/typescript/src/theme.d.ts +62 -59
- package/lib/typescript/src/theme.d.ts.map +1 -1
- package/lib/typescript/src/types/navigators.d.ts +7 -0
- package/lib/typescript/src/types/navigators.d.ts.map +1 -1
- package/lib/typescript/src/utils/PINValidation.d.ts.map +1 -1
- package/lib/typescript/src/utils/agent.d.ts.map +1 -1
- package/lib/typescript/src/utils/anonCredsProofRequestMapper.d.ts.map +1 -1
- package/lib/typescript/src/utils/contacts.d.ts.map +1 -1
- package/lib/typescript/src/utils/credential.d.ts.map +1 -1
- package/lib/typescript/src/utils/crypto.d.ts.map +1 -1
- package/lib/typescript/src/utils/fileCache.d.ts.map +1 -1
- package/lib/typescript/src/utils/helpers.d.ts +3 -1
- package/lib/typescript/src/utils/helpers.d.ts.map +1 -1
- package/lib/typescript/src/utils/luminance.d.ts.map +1 -1
- package/lib/typescript/src/utils/migration.d.ts.map +1 -1
- package/lib/typescript/src/utils/network.d.ts.map +1 -1
- package/lib/typescript/src/utils/oca.d.ts.map +1 -1
- package/lib/typescript/src/utils/parsers.d.ts.map +1 -1
- package/lib/typescript/src/utils/proofBundle.d.ts.map +1 -1
- package/lib/typescript/src/utils/testable.d.ts.map +1 -1
- package/package.json +10 -6
- package/src/assets/icons/code.svg +4 -0
- package/src/components/inputs/LimitedTextInput.tsx +15 -5
- package/src/components/inputs/PINInput.tsx +4 -5
- package/src/localization/en/en.json +11 -2
- package/src/localization/fr/fr.json +11 -2
- package/src/localization/pt-br/pt-br.json +11 -2
- package/src/navigators/ContactStack.tsx +9 -0
- package/src/navigators/CredentialStack.tsx +9 -0
- package/src/screens/ContactDetails.tsx +17 -0
- package/src/screens/CredentialDetails.tsx +41 -0
- package/src/screens/JSONDetails.tsx +102 -0
- package/src/theme.ts +4 -0
- package/src/types/navigators.ts +3 -0
|
@@ -11,7 +11,6 @@ import InlineErrorText, { InlineMessageProps } from './InlineErrorText'
|
|
|
11
11
|
import { InlineErrorPosition } from '../../types/error'
|
|
12
12
|
import { ThemedText } from '../texts/ThemedText'
|
|
13
13
|
|
|
14
|
-
|
|
15
14
|
// adjusting for the spaces between numbers
|
|
16
15
|
const cellCount = minPINLength * 2 - 1
|
|
17
16
|
|
|
@@ -33,7 +32,7 @@ const PINInputComponent = (
|
|
|
33
32
|
const { t } = useTranslation()
|
|
34
33
|
const { PINInputTheme } = useTheme()
|
|
35
34
|
const cellHeight = 48
|
|
36
|
-
|
|
35
|
+
|
|
37
36
|
// including spaces to prevent screen reader from reading the PIN as a single number
|
|
38
37
|
// filling with bullets when masked to prevent screen reader from reading the actual PIN
|
|
39
38
|
// and to have the proper appearance when the PIN is masked
|
|
@@ -44,7 +43,7 @@ const PINInputComponent = (
|
|
|
44
43
|
return '●'.repeat(PIN.length).split('').join(' ')
|
|
45
44
|
}
|
|
46
45
|
}, [PIN, showPIN])
|
|
47
|
-
|
|
46
|
+
|
|
48
47
|
const onChangeText = (value: string) => {
|
|
49
48
|
const cleanValue = value.replaceAll(' ', '')
|
|
50
49
|
// typed new characters
|
|
@@ -54,7 +53,7 @@ const PINInputComponent = (
|
|
|
54
53
|
const newPIN = PIN + newChars.replace(/●/g, '')
|
|
55
54
|
setPIN(newPIN)
|
|
56
55
|
onPINChanged && onPINChanged(newPIN)
|
|
57
|
-
|
|
56
|
+
// characters were removed
|
|
58
57
|
} else if (cleanValue.length < displayValue.replaceAll(' ', '').length) {
|
|
59
58
|
// remove same number of characters from actual PIN
|
|
60
59
|
const newPIN = PIN.slice(0, cleanValue.length)
|
|
@@ -62,7 +61,7 @@ const PINInputComponent = (
|
|
|
62
61
|
onPINChanged && onPINChanged(newPIN)
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
|
-
|
|
64
|
+
|
|
66
65
|
const [props, getCellOnLayoutHandler] = useClearByFocusCell({
|
|
67
66
|
value: displayValue,
|
|
68
67
|
setValue: onChangeText,
|
|
@@ -470,7 +470,8 @@
|
|
|
470
470
|
"GoToCredentialDetail": "Go to credential details",
|
|
471
471
|
"CredentialName": "Credential name",
|
|
472
472
|
"Credentials": "My credentials from this contact",
|
|
473
|
-
"NoCredentials": "You don't have any credentials from this contact."
|
|
473
|
+
"NoCredentials": "You don't have any credentials from this contact.",
|
|
474
|
+
"JSONDetails": "View JSON details"
|
|
474
475
|
},
|
|
475
476
|
"WhatAreContacts": {
|
|
476
477
|
"Title": "What are Contacts?",
|
|
@@ -487,6 +488,7 @@
|
|
|
487
488
|
"CredentialDetails": "Credential Details",
|
|
488
489
|
"EmptyList": "Your wallet is empty. Your accepted credentials will be added here.",
|
|
489
490
|
"IssuedBy": "Issued by",
|
|
491
|
+
"Issued": "Issued",
|
|
490
492
|
"Credential": "credential"
|
|
491
493
|
},
|
|
492
494
|
"PushNotifications": {
|
|
@@ -770,6 +772,12 @@
|
|
|
770
772
|
"QRRender": {
|
|
771
773
|
"GenerationError": "Unable to generate QR code"
|
|
772
774
|
},
|
|
775
|
+
"JSONDetails": {
|
|
776
|
+
"Share": "Share JSON",
|
|
777
|
+
"Copy": "Copy contents",
|
|
778
|
+
"CopiedSuccess": "Copied to clipboard",
|
|
779
|
+
"CopiedError": "Unable to copy to clipboard"
|
|
780
|
+
},
|
|
773
781
|
"Record": {
|
|
774
782
|
"Hide": "Hide",
|
|
775
783
|
"Show": "Show",
|
|
@@ -826,7 +834,8 @@
|
|
|
826
834
|
"HistorySettings": "History Settings",
|
|
827
835
|
"History": "History",
|
|
828
836
|
"HistoryDetails": "History Details",
|
|
829
|
-
"UpdateAvailable": "Update Available"
|
|
837
|
+
"UpdateAvailable": "Update Available",
|
|
838
|
+
"JSONDetails": "JSON details"
|
|
830
839
|
},
|
|
831
840
|
"Loading": {
|
|
832
841
|
"TakingTooLong": "This is taking longer than usual. You can return to home or continue waiting.",
|
|
@@ -474,7 +474,8 @@
|
|
|
474
474
|
"GoToCredentialDetail": "Aller au détail de l'attestation",
|
|
475
475
|
"CredentialName": "Nom du justificatif",
|
|
476
476
|
"Credentials": "Mes justificatifs avec ce contact",
|
|
477
|
-
"NoCredentials": "Vous n'avez aucun justificatif de ce contact."
|
|
477
|
+
"NoCredentials": "Vous n'avez aucun justificatif de ce contact.",
|
|
478
|
+
"JSONDetails": "View JSON details (FR)"
|
|
478
479
|
},
|
|
479
480
|
"WhatAreContacts": {
|
|
480
481
|
"Title": "Que sont les Contacts?",
|
|
@@ -491,6 +492,7 @@
|
|
|
491
492
|
"CredentialDetails": "Détails des attestations",
|
|
492
493
|
"EmptyList": "Votre portefeuille est vide. Vos attestations acceptés seront ajoutés ici.",
|
|
493
494
|
"IssuedBy": "Émis par",
|
|
495
|
+
"Issued": "Issued (FR)",
|
|
494
496
|
"Credential": "attestation"
|
|
495
497
|
},
|
|
496
498
|
"PushNotifications": {
|
|
@@ -757,6 +759,12 @@
|
|
|
757
759
|
"QRRender": {
|
|
758
760
|
"GenerationError": "Impossible de générer le code QR"
|
|
759
761
|
},
|
|
762
|
+
"JSONDetails": {
|
|
763
|
+
"Share": "Share JSON (FR)",
|
|
764
|
+
"Copy": "Copy contents (FR)",
|
|
765
|
+
"CopiedSuccess": "Copied to clipboard (FR)",
|
|
766
|
+
"CopiedError": "Unable to copy to clipboard (FR)"
|
|
767
|
+
},
|
|
760
768
|
"Record": {
|
|
761
769
|
"Hide": "Masquer",
|
|
762
770
|
"Show": "Afficher",
|
|
@@ -812,7 +820,8 @@
|
|
|
812
820
|
"HistorySettings": "History Settings FR)",
|
|
813
821
|
"History": "History (FR)",
|
|
814
822
|
"HistoryDetails": "History Details (FR)",
|
|
815
|
-
"UpdateAvailable": "Update Available (FR)"
|
|
823
|
+
"UpdateAvailable": "Update Available (FR)",
|
|
824
|
+
"JSONDetails": "JSON details (FR)"
|
|
816
825
|
},
|
|
817
826
|
"Loading": {
|
|
818
827
|
"TakingTooLong": "Cela prend plus de temps que d'habitude. Vous pouvez retourner à l'accueil ou continuer à attendre.",
|
|
@@ -454,7 +454,8 @@
|
|
|
454
454
|
"GoToCredentialDetail": "Ir para os detalhes da credencial",
|
|
455
455
|
"CredentialName": "Nome da credencial",
|
|
456
456
|
"Credentials": "Minhas credenciais",
|
|
457
|
-
"NoCredentials": "Você não tem nenhuma credencial com esse Contato."
|
|
457
|
+
"NoCredentials": "Você não tem nenhuma credencial com esse Contato.",
|
|
458
|
+
"JSONDetails": "View JSON details (PT-BR)"
|
|
458
459
|
},
|
|
459
460
|
"WhatAreContacts": {
|
|
460
461
|
"Title": "O que são Contatos?",
|
|
@@ -471,6 +472,7 @@
|
|
|
471
472
|
"CredentialDetails": "Detalhes da Credencial",
|
|
472
473
|
"EmptyList": "Sua carteira está vazia. Suas credenciais aceitas serão adicionadas aqui.",
|
|
473
474
|
"IssuedBy": "Emitida por",
|
|
475
|
+
"Issued": "Issued (PT-BR)",
|
|
474
476
|
"Credential": "credencial"
|
|
475
477
|
},
|
|
476
478
|
"PushNotifications": {
|
|
@@ -743,6 +745,12 @@
|
|
|
743
745
|
"QRRender": {
|
|
744
746
|
"GenerationError": "Não foi possível gerar o código QR"
|
|
745
747
|
},
|
|
748
|
+
"JSONDetails": {
|
|
749
|
+
"Share": "Share JSON (PT-BR)",
|
|
750
|
+
"Copy": "Copy contents (PT-BR)",
|
|
751
|
+
"CopiedSuccess": "Copied to clipboard (PT-BR)",
|
|
752
|
+
"CopiedError": "Unable to copy to clipboard (PT-BR)"
|
|
753
|
+
},
|
|
746
754
|
"Record": {
|
|
747
755
|
"Hide": "Esconder",
|
|
748
756
|
"Show": "Mostrar",
|
|
@@ -790,7 +798,8 @@
|
|
|
790
798
|
"HistorySettings": "History Settings (PT-BR)",
|
|
791
799
|
"History": "History (PT-BR)",
|
|
792
800
|
"HistoryDetails": "History Details (PT-BR)",
|
|
793
|
-
"UpdateAvailable": "Update Available (PT-BR)"
|
|
801
|
+
"UpdateAvailable": "Update Available (PT-BR)",
|
|
802
|
+
"JSONDetails": "JSON details (PT-BR)"
|
|
794
803
|
},
|
|
795
804
|
"Loading": {
|
|
796
805
|
"TakingTooLong": "Isso esta demorando mais que o normal. Você pode voltar para a home ou continuar esperando.",
|
|
@@ -12,6 +12,7 @@ import ListContacts from '../screens/ListContacts'
|
|
|
12
12
|
import ProofDetails from '../screens/ProofDetails'
|
|
13
13
|
import ProofRequest from '../screens/ProofRequest'
|
|
14
14
|
import RenameContact from '../screens/RenameContact'
|
|
15
|
+
import JSONDetails from '../screens/JSONDetails'
|
|
15
16
|
import WhatAreContacts from '../screens/WhatAreContacts'
|
|
16
17
|
import { ContactStackParams, Screens } from '../types/navigators'
|
|
17
18
|
|
|
@@ -48,6 +49,14 @@ const ContactStack: React.FC = () => {
|
|
|
48
49
|
...ScreenOptionsDictionary[Screens.RenameContact],
|
|
49
50
|
}}
|
|
50
51
|
/>
|
|
52
|
+
<Stack.Screen
|
|
53
|
+
name={Screens.JSONDetails}
|
|
54
|
+
component={JSONDetails}
|
|
55
|
+
options={{
|
|
56
|
+
title: t('Screens.JSONDetails'),
|
|
57
|
+
...ScreenOptionsDictionary[Screens.JSONDetails],
|
|
58
|
+
}}
|
|
59
|
+
/>
|
|
51
60
|
<Stack.Screen
|
|
52
61
|
name={Screens.Chat}
|
|
53
62
|
component={Chat}
|
|
@@ -6,6 +6,7 @@ import SettingsMenu from '../components/buttons/SettingsMenu'
|
|
|
6
6
|
import { useTheme } from '../contexts/theme'
|
|
7
7
|
import ListCredentials from '../screens/ListCredentials'
|
|
8
8
|
import { CredentialStackParams, Screens } from '../types/navigators'
|
|
9
|
+
import JSONDetails from '../screens/JSONDetails'
|
|
9
10
|
|
|
10
11
|
import { useDefaultStackOptions } from './defaultStackOptions'
|
|
11
12
|
import { TOKENS, useServices } from '../container-api'
|
|
@@ -32,6 +33,14 @@ const CredentialStack: React.FC = () => {
|
|
|
32
33
|
...ScreenOptionsDictionary[Screens.Credentials],
|
|
33
34
|
})}
|
|
34
35
|
/>
|
|
36
|
+
<Stack.Screen
|
|
37
|
+
name={Screens.JSONDetails}
|
|
38
|
+
component={JSONDetails}
|
|
39
|
+
options={() => ({
|
|
40
|
+
title: t('Screens.JSONDetails'),
|
|
41
|
+
...ScreenOptionsDictionary[Screens.JSONDetails],
|
|
42
|
+
})}
|
|
43
|
+
/>
|
|
35
44
|
</Stack.Navigator>
|
|
36
45
|
)
|
|
37
46
|
}
|
|
@@ -216,6 +216,10 @@ const ContactDetails: React.FC<ContactDetailsProps> = ({ route }) => {
|
|
|
216
216
|
navigation.navigate(Screens.RenameContact, { connectionId })
|
|
217
217
|
}, [navigation, connectionId])
|
|
218
218
|
|
|
219
|
+
const callViewJSONDetails = useCallback(() => {
|
|
220
|
+
navigation.navigate(Screens.JSONDetails, { jsonBlob: JSON.stringify(connection, null, 2) })
|
|
221
|
+
}, [navigation, connection])
|
|
222
|
+
|
|
219
223
|
const contactLabel = useMemo(
|
|
220
224
|
() => getConnectionName(connection, store.preferences.alternateContactNames),
|
|
221
225
|
[connection, store.preferences.alternateContactNames]
|
|
@@ -303,6 +307,19 @@ const ContactDetails: React.FC<ContactDetailsProps> = ({ route }) => {
|
|
|
303
307
|
<ThemedText>{t('Screens.RenameContact')}</ThemedText>
|
|
304
308
|
</TouchableOpacity>
|
|
305
309
|
)}
|
|
310
|
+
{/* JSON button on dev mode enabled */}
|
|
311
|
+
{store?.preferences.developerModeEnabled && (
|
|
312
|
+
<TouchableOpacity
|
|
313
|
+
onPress={callViewJSONDetails}
|
|
314
|
+
accessibilityLabel={t('ContactDetails.JSONDetails')}
|
|
315
|
+
accessibilityRole={'button'}
|
|
316
|
+
testID={testIdWithKey('JSONDetails')}
|
|
317
|
+
style={[styles.contentContainer, styles.actionContainer, { marginTop: 10 }]}
|
|
318
|
+
>
|
|
319
|
+
<Assets.svg.iconCode width={20} height={20} color={ColorPallet.brand.text} />
|
|
320
|
+
<ThemedText>{t('ContactDetails.JSONDetails')}</ThemedText>
|
|
321
|
+
</TouchableOpacity>
|
|
322
|
+
)}
|
|
306
323
|
<TouchableOpacity
|
|
307
324
|
onPress={callOnRemove}
|
|
308
325
|
accessibilityLabel={t('ContactDetails.RemoveContact')}
|
|
@@ -9,6 +9,7 @@ import { useTranslation } from 'react-i18next'
|
|
|
9
9
|
import { DeviceEventEmitter, StyleSheet, TouchableOpacity, useWindowDimensions, View } from 'react-native'
|
|
10
10
|
import { SafeAreaView } from 'react-native-safe-area-context'
|
|
11
11
|
import Toast from 'react-native-toast-message'
|
|
12
|
+
import { useStore } from '../contexts/store'
|
|
12
13
|
|
|
13
14
|
import CredentialCard from '../components/misc/CredentialCard'
|
|
14
15
|
import InfoBox, { InfoBoxType } from '../components/misc/InfoBox'
|
|
@@ -66,6 +67,7 @@ const CredentialDetails: React.FC<CredentialDetailsProps> = ({ navigation, route
|
|
|
66
67
|
(credential?.metadata.get(CredentialMetadata.customMetadata) as credentialCustomMetadata)
|
|
67
68
|
?.revoked_detail_dismissed ?? false
|
|
68
69
|
)
|
|
70
|
+
const [store] = useStore()
|
|
69
71
|
|
|
70
72
|
useEffect(() => {
|
|
71
73
|
setIsRevokedMessageHidden(
|
|
@@ -128,6 +130,13 @@ const CredentialDetails: React.FC<CredentialDetailsProps> = ({ navigation, route
|
|
|
128
130
|
}
|
|
129
131
|
}
|
|
130
132
|
|
|
133
|
+
const callViewJSONDetails = useCallback(() => {
|
|
134
|
+
navigation.navigate(Stacks.ContactStack, {
|
|
135
|
+
screen: Screens.JSONDetails,
|
|
136
|
+
params: { jsonBlob: JSON.stringify(credential, null, 2) },
|
|
137
|
+
})
|
|
138
|
+
}, [navigation, credential])
|
|
139
|
+
|
|
131
140
|
useEffect(() => {
|
|
132
141
|
if (!agent) {
|
|
133
142
|
DeviceEventEmitter.emit(
|
|
@@ -381,8 +390,40 @@ const CredentialDetails: React.FC<CredentialDetailsProps> = ({ navigation, route
|
|
|
381
390
|
{credentialConnectionLabel}
|
|
382
391
|
</ThemedText>
|
|
383
392
|
</ThemedText>
|
|
393
|
+
{/* issued date if dev mode */}
|
|
394
|
+
{store?.preferences.developerModeEnabled && credential?.createdAt ? (
|
|
395
|
+
<ThemedText testID={testIdWithKey('IssuedDate')}>
|
|
396
|
+
<ThemedText variant="title" style={isRevoked && { color: ColorPallet.grayscale.mediumGrey }}>
|
|
397
|
+
{t('CredentialDetails.Issued') + ': '}
|
|
398
|
+
</ThemedText>
|
|
399
|
+
<ThemedText style={isRevoked && { color: ColorPallet.grayscale.mediumGrey }}>
|
|
400
|
+
{formatTime(credential.createdAt, { format: 'YYYY-MM-DD HH:mm:ss [UTC]' })}
|
|
401
|
+
</ThemedText>
|
|
402
|
+
</ThemedText>
|
|
403
|
+
) : null}
|
|
384
404
|
</View>
|
|
385
405
|
) : null}
|
|
406
|
+
{store?.preferences.developerModeEnabled && (
|
|
407
|
+
<View
|
|
408
|
+
style={{
|
|
409
|
+
backgroundColor: ColorPallet.brand.secondaryBackground,
|
|
410
|
+
marginTop: paddingVertical,
|
|
411
|
+
paddingHorizontal,
|
|
412
|
+
paddingVertical,
|
|
413
|
+
}}
|
|
414
|
+
>
|
|
415
|
+
<TouchableOpacity
|
|
416
|
+
onPress={callViewJSONDetails}
|
|
417
|
+
accessibilityLabel={t('ContactDetails.JSONDetails')}
|
|
418
|
+
accessibilityRole={'button'}
|
|
419
|
+
testID={testIdWithKey('JSONDetails')}
|
|
420
|
+
style={{ flexDirection: 'row', gap: 8 }}
|
|
421
|
+
>
|
|
422
|
+
<Assets.svg.iconCode width={20} height={20} color={ColorPallet.brand.secondary} />
|
|
423
|
+
<ThemedText>{t('ContactDetails.JSONDetails')}</ThemedText>
|
|
424
|
+
</TouchableOpacity>
|
|
425
|
+
</View>
|
|
426
|
+
)}
|
|
386
427
|
{isRevoked ? (
|
|
387
428
|
<View
|
|
388
429
|
style={{
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { SafeAreaView } from 'react-native-safe-area-context'
|
|
2
|
+
import { View, StyleSheet, Share } from 'react-native'
|
|
3
|
+
import { useTranslation } from 'react-i18next'
|
|
4
|
+
import { useTheme } from '../contexts/theme'
|
|
5
|
+
import { ThemedText } from '../components/texts/ThemedText'
|
|
6
|
+
import { StackScreenProps } from '@react-navigation/stack'
|
|
7
|
+
import { ContactStackParams, Screens } from '../types/navigators'
|
|
8
|
+
import Button, { ButtonType } from '../components/buttons/Button'
|
|
9
|
+
import { testIdWithKey } from '../utils/testable'
|
|
10
|
+
import { ScrollView } from 'react-native-gesture-handler'
|
|
11
|
+
import Clipboard from '@react-native-clipboard/clipboard'
|
|
12
|
+
import Toast from 'react-native-toast-message'
|
|
13
|
+
import { ToastType } from '../components/toast/BaseToast'
|
|
14
|
+
|
|
15
|
+
type JSONDetailsProps = StackScreenProps<ContactStackParams, Screens.JSONDetails>
|
|
16
|
+
|
|
17
|
+
const JSONDetails = ({ route }: JSONDetailsProps) => {
|
|
18
|
+
if (!route?.params) {
|
|
19
|
+
throw new Error('JSONDetails route params were not set properly')
|
|
20
|
+
}
|
|
21
|
+
const { t } = useTranslation()
|
|
22
|
+
const { ColorPallet } = useTheme()
|
|
23
|
+
const { jsonBlob } = route.params
|
|
24
|
+
const styles = StyleSheet.create({
|
|
25
|
+
container: {
|
|
26
|
+
flex: 1,
|
|
27
|
+
backgroundColor: ColorPallet.brand.primaryBackground,
|
|
28
|
+
padding: 20,
|
|
29
|
+
},
|
|
30
|
+
title: {
|
|
31
|
+
marginBottom: 16,
|
|
32
|
+
},
|
|
33
|
+
buttonContainer: {
|
|
34
|
+
width: '100%',
|
|
35
|
+
paddingVertical: 8,
|
|
36
|
+
},
|
|
37
|
+
jsonContainer: {
|
|
38
|
+
padding: 16,
|
|
39
|
+
backgroundColor: ColorPallet.brand.secondaryBackground,
|
|
40
|
+
height: '75%',
|
|
41
|
+
borderWidth: 1,
|
|
42
|
+
borderStyle: 'solid',
|
|
43
|
+
borderRadius: 5,
|
|
44
|
+
},
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
const copyToClipboard = async () => {
|
|
48
|
+
try {
|
|
49
|
+
await Clipboard.setString(jsonBlob)
|
|
50
|
+
Toast.show({
|
|
51
|
+
type: ToastType.Success,
|
|
52
|
+
text1: t('JSONDetails.CopiedSuccess'),
|
|
53
|
+
})
|
|
54
|
+
} catch (e) {
|
|
55
|
+
Toast.show({
|
|
56
|
+
type: ToastType.Error,
|
|
57
|
+
text1: `${t('JSONDetails.CopiedError')}: ${e}`,
|
|
58
|
+
})
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const shareJSON = async () => {
|
|
63
|
+
await Share.share({
|
|
64
|
+
message: jsonBlob,
|
|
65
|
+
})
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return (
|
|
69
|
+
<SafeAreaView style={styles.container} edges={['bottom', 'left', 'right']}>
|
|
70
|
+
<View>
|
|
71
|
+
<ScrollView style={styles.jsonContainer} testID={testIdWithKey('JSONDetails.ScrollView')}>
|
|
72
|
+
<ThemedText>{jsonBlob}</ThemedText>
|
|
73
|
+
</ScrollView>
|
|
74
|
+
|
|
75
|
+
<View style={styles.buttonContainer}>
|
|
76
|
+
<Button
|
|
77
|
+
title={t('JSONDetails.Share')}
|
|
78
|
+
buttonType={ButtonType.Primary}
|
|
79
|
+
testID={testIdWithKey('Share')}
|
|
80
|
+
accessibilityLabel={t('JSONDetails.Share')}
|
|
81
|
+
onPress={() => {
|
|
82
|
+
shareJSON()
|
|
83
|
+
}}
|
|
84
|
+
></Button>
|
|
85
|
+
</View>
|
|
86
|
+
<View style={styles.buttonContainer}>
|
|
87
|
+
<Button
|
|
88
|
+
title={t('JSONDetails.Copy')}
|
|
89
|
+
buttonType={ButtonType.Secondary}
|
|
90
|
+
testID={testIdWithKey('CopyToClipboard')}
|
|
91
|
+
accessibilityLabel={t('JSONDetails.Copy')}
|
|
92
|
+
onPress={() => {
|
|
93
|
+
copyToClipboard()
|
|
94
|
+
}}
|
|
95
|
+
></Button>
|
|
96
|
+
</View>
|
|
97
|
+
</View>
|
|
98
|
+
</SafeAreaView>
|
|
99
|
+
)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export default JSONDetails
|
package/src/theme.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { SvgProps } from 'react-native-svg'
|
|
|
4
4
|
import Arrow from './assets/icons/large-arrow.svg'
|
|
5
5
|
import IconDelete from './assets/icons/trash.svg'
|
|
6
6
|
import IconEdit from './assets/icons/pencil.svg'
|
|
7
|
+
import IconCode from './assets/icons/code.svg'
|
|
7
8
|
import ActivityIndicator from './assets/img/activity-indicator-circle.svg'
|
|
8
9
|
import AppLockout from './assets/img/app-lockout.svg'
|
|
9
10
|
import Biometrics from './assets/img/biometrics.svg'
|
|
@@ -52,6 +53,7 @@ import TabOneIcon from './assets/img/message-text-icon-outline.svg'
|
|
|
52
53
|
import TabTwoIcon from './assets/img/qrcode-scan-icon.svg'
|
|
53
54
|
import TabThreeFocusedIcon from './assets/img/wallet-icon.svg'
|
|
54
55
|
import TabThreeIcon from './assets/img/wallet-icon-outline.svg'
|
|
56
|
+
import React from 'react'
|
|
55
57
|
|
|
56
58
|
export interface ISVGAssets {
|
|
57
59
|
activityIndicator: React.FC<SvgProps>
|
|
@@ -108,6 +110,7 @@ export interface ISVGAssets {
|
|
|
108
110
|
iconEdit: React.FC<SvgProps>
|
|
109
111
|
iconWarning: React.FC<SvgProps>
|
|
110
112
|
iconError: React.FC<SvgProps>
|
|
113
|
+
iconCode: React.FC<SvgProps>
|
|
111
114
|
tabOneIcon: React.FC<SvgProps>
|
|
112
115
|
tabOneFocusedIcon: React.FC<SvgProps>
|
|
113
116
|
tabTwoIcon: React.FC<SvgProps>
|
|
@@ -1087,6 +1090,7 @@ export const Assets = {
|
|
|
1087
1090
|
homeCenterImg: HomeCenterImg,
|
|
1088
1091
|
iconDelete: IconDelete,
|
|
1089
1092
|
iconEdit: IconEdit,
|
|
1093
|
+
iconCode: IconCode,
|
|
1090
1094
|
iconError: IconError,
|
|
1091
1095
|
iconWarning: IconWarning,
|
|
1092
1096
|
tabOneIcon: TabOneIcon,
|
package/src/types/navigators.ts
CHANGED
|
@@ -51,6 +51,7 @@ export enum Screens {
|
|
|
51
51
|
NameWallet = 'Name Wallet',
|
|
52
52
|
RenameWallet = 'Rename Wallet',
|
|
53
53
|
RenameContact = 'Rename Contact',
|
|
54
|
+
JSONDetails = 'JSON Details',
|
|
54
55
|
ScanHelp = 'Scan Help',
|
|
55
56
|
HistorySettings = 'History Settings',
|
|
56
57
|
HistoryPage = 'History',
|
|
@@ -122,6 +123,7 @@ export type ContactStackParams = {
|
|
|
122
123
|
[Screens.CredentialOffer]: { credentialId: string }
|
|
123
124
|
[Screens.ProofDetails]: { recordId: string; isHistory?: boolean }
|
|
124
125
|
[Screens.ProofRequest]: { proofId: string }
|
|
126
|
+
[Screens.JSONDetails]: { jsonBlob: string }
|
|
125
127
|
}
|
|
126
128
|
|
|
127
129
|
export type ProofRequestsStackParams = {
|
|
@@ -141,6 +143,7 @@ export type ProofRequestsStackParams = {
|
|
|
141
143
|
|
|
142
144
|
export type CredentialStackParams = {
|
|
143
145
|
[Screens.Credentials]: undefined
|
|
146
|
+
[Screens.JSONDetails]: { jsonBlob: string }
|
|
144
147
|
}
|
|
145
148
|
|
|
146
149
|
export type HomeStackParams = {
|