@bifold/core 2.4.5 → 2.5.0
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/contexts/reducers/store.js +3 -2
- package/lib/commonjs/contexts/reducers/store.js.map +1 -1
- package/lib/commonjs/index.js +119 -104
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/screens/AttemptLockout.js +27 -35
- package/lib/commonjs/screens/AttemptLockout.js.map +1 -1
- package/lib/commonjs/screens/ContactDetails.js +1 -1
- package/lib/commonjs/screens/ContactDetails.js.map +1 -1
- package/lib/commonjs/screens/CredentialDetails.js +1 -1
- package/lib/commonjs/screens/CredentialDetails.js.map +1 -1
- package/lib/commonjs/screens/JSONDetails.js +6 -3
- package/lib/commonjs/screens/JSONDetails.js.map +1 -1
- package/lib/commonjs/screens/MobileVerifierLoading.js +4 -3
- package/lib/commonjs/screens/MobileVerifierLoading.js.map +1 -1
- package/lib/commonjs/screens/PINCreate.js +3 -10
- package/lib/commonjs/screens/PINCreate.js.map +1 -1
- package/lib/commonjs/screens/WhatAreContacts.js +3 -2
- package/lib/commonjs/screens/WhatAreContacts.js.map +1 -1
- package/lib/module/contexts/reducers/store.js +3 -2
- package/lib/module/contexts/reducers/store.js.map +1 -1
- package/lib/module/index.js +42 -45
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/AttemptLockout.js +28 -36
- package/lib/module/screens/AttemptLockout.js.map +1 -1
- package/lib/module/screens/ContactDetails.js +1 -1
- package/lib/module/screens/ContactDetails.js.map +1 -1
- package/lib/module/screens/CredentialDetails.js +1 -1
- package/lib/module/screens/CredentialDetails.js.map +1 -1
- package/lib/module/screens/JSONDetails.js +6 -3
- package/lib/module/screens/JSONDetails.js.map +1 -1
- package/lib/module/screens/MobileVerifierLoading.js +4 -3
- package/lib/module/screens/MobileVerifierLoading.js.map +1 -1
- package/lib/module/screens/PINCreate.js +3 -10
- package/lib/module/screens/PINCreate.js.map +1 -1
- package/lib/module/screens/WhatAreContacts.js +3 -2
- package/lib/module/screens/WhatAreContacts.js.map +1 -1
- package/lib/typescript/src/contexts/reducers/store.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +57 -61
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/AttemptLockout.d.ts.map +1 -1
- package/lib/typescript/src/screens/JSONDetails.d.ts.map +1 -1
- package/lib/typescript/src/screens/MobileVerifierLoading.d.ts.map +1 -1
- package/lib/typescript/src/screens/PINCreate.d.ts.map +1 -1
- package/lib/typescript/src/screens/WhatAreContacts.d.ts.map +1 -1
- package/lib/typescript/src/types/navigators.d.ts +1 -1
- package/lib/typescript/src/types/navigators.d.ts.map +1 -1
- package/package.json +3 -4
- package/src/App.tsx +0 -79
- package/src/animated-components.ts +0 -30
- package/src/assets/fonts/MaterialIcons.ttf +0 -0
- package/src/assets/icons/code.svg +0 -4
- package/src/assets/icons/large-arrow.svg +0 -5
- package/src/assets/icons/pencil.svg +0 -15
- package/src/assets/icons/trash.svg +0 -31
- package/src/assets/img/Artwork_1024x1024.png +0 -0
- package/src/assets/img/HistoryCardAcceptedIcon.svg +0 -4
- package/src/assets/img/HistoryCardExpiredIcon.svg +0 -4
- package/src/assets/img/HistoryCardRevokedIcon.svg +0 -4
- package/src/assets/img/HistoryInformationSentIcon.svg +0 -4
- package/src/assets/img/HistoryPinUpdatedIcon.svg +0 -4
- package/src/assets/img/IconChevronRight.svg +0 -5
- package/src/assets/img/activity-indicator-circle.svg +0 -90
- package/src/assets/img/app-lockout.svg +0 -1
- package/src/assets/img/biometrics.svg +0 -74
- package/src/assets/img/chat-loading.svg +0 -1
- package/src/assets/img/check-in-circle.svg +0 -18
- package/src/assets/img/connection-pending.svg +0 -112
- package/src/assets/img/contact-book.svg +0 -21
- package/src/assets/img/credential-card.svg +0 -18
- package/src/assets/img/credential-declined.svg +0 -28
- package/src/assets/img/credential-in-hand.svg +0 -48
- package/src/assets/img/credential-list.svg +0 -60
- package/src/assets/img/credential-pending.svg +0 -96
- package/src/assets/img/credential-success.svg +0 -48
- package/src/assets/img/delete-notification.svg +0 -1
- package/src/assets/img/empty-wallet.svg +0 -23
- package/src/assets/img/error-filled.svg +0 -12
- package/src/assets/img/exclamation-mark.svg +0 -17
- package/src/assets/img/home-center-img.svg +0 -71
- package/src/assets/img/icon-credential-offer-dark.svg +0 -7
- package/src/assets/img/icon-credential-offer-light.svg +0 -7
- package/src/assets/img/icon-info-recieved-dark.svg +0 -8
- package/src/assets/img/icon-info-recieved-light.svg +0 -8
- package/src/assets/img/icon-info-sent-dark.svg +0 -8
- package/src/assets/img/icon-info-sent-light.svg +0 -8
- package/src/assets/img/icon-proof-request-dark.svg +0 -11
- package/src/assets/img/icon-proof-request-light.svg +0 -11
- package/src/assets/img/information-received.svg +0 -1
- package/src/assets/img/logo-large.png +0 -0
- package/src/assets/img/logo-large@2x.png +0 -0
- package/src/assets/img/logo-large@3x.png +0 -0
- package/src/assets/img/logo.svg +0 -15
- package/src/assets/img/message-text-icon-outline.svg +0 -1
- package/src/assets/img/message-text-icon.svg +0 -1
- package/src/assets/img/no_information_shared.svg +0 -36
- package/src/assets/img/preface.svg +0 -15
- package/src/assets/img/proof-declined.svg +0 -66
- package/src/assets/img/proof-pending.svg +0 -61
- package/src/assets/img/proof-success.svg +0 -72
- package/src/assets/img/push-notifications.svg +0 -1
- package/src/assets/img/qrcode-scan-icon.svg +0 -1
- package/src/assets/img/scan-share.svg +0 -102
- package/src/assets/img/secure-check.svg +0 -4
- package/src/assets/img/secure-image.svg +0 -64
- package/src/assets/img/update-available.svg +0 -26
- package/src/assets/img/verifier-request-declined.svg +0 -34
- package/src/assets/img/wallet-back.svg +0 -20
- package/src/assets/img/wallet-front.svg +0 -32
- package/src/assets/img/wallet-icon-outline.svg +0 -1
- package/src/assets/img/wallet-icon.svg +0 -1
- package/src/assets/img/wallet.svg +0 -43
- package/src/assets/oca-bundles.json +0 -174
- package/src/components/animated/ButtonLoading.tsx +0 -32
- package/src/components/animated/ConnectionLoading.tsx +0 -53
- package/src/components/animated/CredentialAdded.tsx +0 -72
- package/src/components/animated/CredentialPending.tsx +0 -63
- package/src/components/animated/LoadingIndicator.tsx +0 -49
- package/src/components/animated/PresentationLoading.tsx +0 -52
- package/src/components/animated/RecordLoading.tsx +0 -75
- package/src/components/animated/SendingProof.tsx +0 -53
- package/src/components/animated/SentProof.tsx +0 -72
- package/src/components/buttons/Button-api.tsx +0 -46
- package/src/components/buttons/Button.tsx +0 -125
- package/src/components/buttons/HeaderHome.tsx +0 -25
- package/src/components/buttons/IconButton.tsx +0 -93
- package/src/components/buttons/InfoIcon.tsx +0 -35
- package/src/components/buttons/SettingsMenu.tsx +0 -26
- package/src/components/buttons/ToggleButton.tsx +0 -93
- package/src/components/buttons/index.ts +0 -4
- package/src/components/chat/ActionSlider.tsx +0 -104
- package/src/components/chat/ChatActions.tsx +0 -33
- package/src/components/chat/ChatBubble.tsx +0 -20
- package/src/components/chat/ChatEvent.tsx +0 -31
- package/src/components/chat/ChatMessage.tsx +0 -142
- package/src/components/chat/MessageInput.tsx +0 -46
- package/src/components/chat/index.ts +0 -4
- package/src/components/forms/WalletNameForm.tsx +0 -148
- package/src/components/index.ts +0 -4
- package/src/components/inputs/BiometryControl.tsx +0 -190
- package/src/components/inputs/BulletPoint.tsx +0 -32
- package/src/components/inputs/CheckBoxRow.tsx +0 -67
- package/src/components/inputs/InlineErrorText.tsx +0 -60
- package/src/components/inputs/LimitedTextInput.tsx +0 -71
- package/src/components/inputs/PINInput.tsx +0 -175
- package/src/components/inputs/SingleSelectBlock.tsx +0 -53
- package/src/components/listItems/ContactCredentialListItem.tsx +0 -79
- package/src/components/listItems/ContactListItem.tsx +0 -121
- package/src/components/listItems/NotificationListItem.tsx +0 -514
- package/src/components/misc/AvatarView.tsx +0 -33
- package/src/components/misc/CardWatermark.tsx +0 -52
- package/src/components/misc/ConnectionAlert.tsx +0 -123
- package/src/components/misc/ConnectionImage.tsx +0 -45
- package/src/components/misc/ContentGradient.tsx +0 -40
- package/src/components/misc/CredentialCard.tsx +0 -161
- package/src/components/misc/CredentialCard10.tsx +0 -329
- package/src/components/misc/CredentialCard11.tsx +0 -701
- package/src/components/misc/CredentialCard11ActionFooter.tsx +0 -55
- package/src/components/misc/CredentialCard11Issuer.tsx +0 -74
- package/src/components/misc/CredentialCard11Logo.tsx +0 -61
- package/src/components/misc/EmptyList.tsx +0 -27
- package/src/components/misc/EmptyListContacts.tsx +0 -55
- package/src/components/misc/ErrorBoundary.tsx +0 -200
- package/src/components/misc/FauxHeader.tsx +0 -75
- package/src/components/misc/InfoBox.tsx +0 -283
- package/src/components/misc/NoNewUpdates.tsx +0 -38
- package/src/components/misc/PINHeader.tsx +0 -25
- package/src/components/misc/PINValidationHelper.tsx +0 -48
- package/src/components/misc/Pagination.tsx +0 -114
- package/src/components/misc/QRRenderer.tsx +0 -53
- package/src/components/misc/QRScanner.tsx +0 -395
- package/src/components/misc/QRScannerTorch.tsx +0 -74
- package/src/components/misc/ScanCamera.tsx +0 -86
- package/src/components/misc/ScanTab.tsx +0 -45
- package/src/components/misc/SharedProofData.tsx +0 -98
- package/src/components/misc/UnorderedList.tsx +0 -28
- package/src/components/misc/VerifierCredentialCard.tsx +0 -378
- package/src/components/misc/index.ts +0 -2
- package/src/components/modals/AlertModal.tsx +0 -42
- package/src/components/modals/AppGuideModal.tsx +0 -142
- package/src/components/modals/CameraDisclosureModal.tsx +0 -126
- package/src/components/modals/CommonRemoveModal.tsx +0 -337
- package/src/components/modals/DeveloperModal.tsx +0 -32
- package/src/components/modals/DismissiblePopupModal.tsx +0 -169
- package/src/components/modals/ErrorModal.tsx +0 -107
- package/src/components/modals/ImageModal.tsx +0 -80
- package/src/components/modals/NetInfoModal.tsx +0 -35
- package/src/components/modals/PopupModal.tsx +0 -56
- package/src/components/modals/ProofCancelModal.tsx +0 -79
- package/src/components/modals/SafeAreaModal.tsx +0 -17
- package/src/components/record/Record.tsx +0 -100
- package/src/components/record/RecordBinaryField.tsx +0 -55
- package/src/components/record/RecordDateIntField.tsx +0 -63
- package/src/components/record/RecordField.tsx +0 -154
- package/src/components/record/RecordFooter.tsx +0 -17
- package/src/components/record/RecordHeader.tsx +0 -17
- package/src/components/record/RecordRemove.tsx +0 -66
- package/src/components/texts/HeaderTitle.tsx +0 -25
- package/src/components/texts/HighlightTextBox.tsx +0 -41
- package/src/components/texts/InfoTextBox.tsx +0 -129
- package/src/components/texts/Link.tsx +0 -41
- package/src/components/texts/Text.tsx +0 -21
- package/src/components/texts/ThemedText.tsx +0 -24
- package/src/components/toast/BaseToast.tsx +0 -128
- package/src/components/toast/ToastConfig.tsx +0 -21
- package/src/components/tour/AttachTourStep.tsx +0 -73
- package/src/components/tour/CredentialOfferTourSteps.tsx +0 -41
- package/src/components/tour/CredentialsTourSteps.tsx +0 -41
- package/src/components/tour/HomeTourSteps.tsx +0 -104
- package/src/components/tour/ProofRequestTourSteps.tsx +0 -41
- package/src/components/tour/SpotCutout.tsx +0 -65
- package/src/components/tour/TourBox.tsx +0 -255
- package/src/components/tour/TourOverlay.tsx +0 -134
- package/src/components/views/Banner.tsx +0 -181
- package/src/components/views/CredentialCardLogo.tsx +0 -77
- package/src/components/views/CredentialDetailPrimaryHeader.tsx +0 -107
- package/src/components/views/CredentialDetailSecondaryHeader.tsx +0 -60
- package/src/components/views/HeaderWithBanner.tsx +0 -17
- package/src/components/views/HomeFooterView.tsx +0 -110
- package/src/components/views/HomeHeaderView.tsx +0 -12
- package/src/components/views/KeyboardView.tsx +0 -41
- package/src/components/views/LoadingPlaceholder.tsx +0 -168
- package/src/components/views/LoadingView.tsx +0 -29
- package/src/components/views/ProgressBar.tsx +0 -53
- package/src/components/views/PushNotificationsContent.tsx +0 -51
- package/src/components/views/PushNotificationsDisabledContent.tsx +0 -47
- package/src/configs/ledgers/indy/index.ts +0 -8
- package/src/configs/ledgers/indy/ledgers.json +0 -51
- package/src/constants.ts +0 -107
- package/src/container-api.ts +0 -247
- package/src/container-impl.ts +0 -243
- package/src/contexts/activity.tsx +0 -145
- package/src/contexts/animated-components.ts +0 -9
- package/src/contexts/auth.tsx +0 -240
- package/src/contexts/index.ts +0 -3
- package/src/contexts/navigation.tsx +0 -19
- package/src/contexts/network.tsx +0 -125
- package/src/contexts/reducers/index.ts +0 -3
- package/src/contexts/reducers/store.ts +0 -754
- package/src/contexts/store.tsx +0 -103
- package/src/contexts/theme.tsx +0 -51
- package/src/contexts/tour/tour-context.tsx +0 -160
- package/src/contexts/tour/tour-provider.tsx +0 -160
- package/src/hooks/bundle-resolver.ts +0 -95
- package/src/hooks/chat-messages.tsx +0 -263
- package/src/hooks/connections.ts +0 -37
- package/src/hooks/credential-card-styles.ts +0 -144
- package/src/hooks/credentials.ts +0 -11
- package/src/hooks/deep-links.ts +0 -49
- package/src/hooks/developer-mode.ts +0 -25
- package/src/hooks/lockout.ts +0 -77
- package/src/hooks/notifications.ts +0 -108
- package/src/hooks/oob.ts +0 -17
- package/src/hooks/proof-request-templates.ts +0 -40
- package/src/hooks/proofs.ts +0 -32
- package/src/hooks/screen-capture.ts +0 -52
- package/src/hooks/useBifoldAgentSetup.ts +0 -169
- package/src/hooks/useOnboardingState.ts +0 -53
- package/src/hooks/usePINValidation.ts +0 -98
- package/src/index.ts +0 -239
- package/src/layout/ScreenLayout.tsx +0 -53
- package/src/localization/en/en.json +0 -951
- package/src/localization/en/index.ts +0 -3
- package/src/localization/fr/fr.json +0 -933
- package/src/localization/fr/index.ts +0 -3
- package/src/localization/index.ts +0 -66
- package/src/localization/pt-br/index.ts +0 -3
- package/src/localization/pt-br/pt-br.json +0 -911
- package/src/modules/history/context/historyManager.tsx +0 -247
- package/src/modules/history/index.ts +0 -2
- package/src/modules/history/navigation/HistoryStack.tsx +0 -29
- package/src/modules/history/services/queue.service.tsx +0 -31
- package/src/modules/history/types/index.ts +0 -92
- package/src/modules/history/ui/HistoryPage.tsx +0 -133
- package/src/modules/history/ui/HistorySettings.tsx +0 -183
- package/src/modules/history/ui/assets/img/HistoryCardAcceptedIcon.svg +0 -4
- package/src/modules/history/ui/assets/img/HistoryCardExpiredIcon.svg +0 -4
- package/src/modules/history/ui/assets/img/HistoryCardRevokedIcon.svg +0 -4
- package/src/modules/history/ui/assets/img/HistoryInformationSentIcon.svg +0 -4
- package/src/modules/history/ui/assets/img/HistoryPinUpdatedIcon.svg +0 -4
- package/src/modules/history/ui/assets/img/IconChevronRight.svg +0 -3
- package/src/modules/history/ui/components/BulletPoint.tsx +0 -49
- package/src/modules/history/ui/components/HistoryListItem.tsx +0 -251
- package/src/modules/history/ui/components/HistoryMenu.tsx +0 -25
- package/src/modules/history/ui/components/SingleSelectBlock.tsx +0 -72
- package/src/modules/openid/components/CredentialRowCard.tsx +0 -64
- package/src/modules/openid/components/OpenIDCredentialCard.tsx +0 -276
- package/src/modules/openid/context/OpenIDCredentialRecordProvider.tsx +0 -296
- package/src/modules/openid/display.tsx +0 -467
- package/src/modules/openid/displayProof.tsx +0 -86
- package/src/modules/openid/hooks/openid.tsx +0 -111
- package/src/modules/openid/metadata.tsx +0 -59
- package/src/modules/openid/offerResolve.tsx +0 -281
- package/src/modules/openid/resolverProof.tsx +0 -286
- package/src/modules/openid/screens/OpenIDCredentialDetails.tsx +0 -214
- package/src/modules/openid/screens/OpenIDCredentialOffer.tsx +0 -192
- package/src/modules/openid/screens/OpenIDProofChangeCredential.tsx +0 -133
- package/src/modules/openid/screens/OpenIDProofPresentation.tsx +0 -423
- package/src/modules/openid/types.tsx +0 -111
- package/src/modules/openid/utils/utils.tsx +0 -119
- package/src/navigators/ConnectStack.tsx +0 -68
- package/src/navigators/ContactStack.tsx +0 -91
- package/src/navigators/CredentialStack.tsx +0 -48
- package/src/navigators/DeliveryStack.tsx +0 -76
- package/src/navigators/HomeStack.tsx +0 -37
- package/src/navigators/MainStack.tsx +0 -146
- package/src/navigators/NotificationStack.tsx +0 -56
- package/src/navigators/OnboardingScreens.ts +0 -142
- package/src/navigators/OnboardingStack.tsx +0 -205
- package/src/navigators/ProofRequestStack.tsx +0 -113
- package/src/navigators/RootStack.tsx +0 -71
- package/src/navigators/SettingStack.tsx +0 -174
- package/src/navigators/TabStack.tsx +0 -304
- package/src/navigators/defaultLayoutOptions.tsx +0 -17
- package/src/navigators/defaultStackOptions.tsx +0 -102
- package/src/navigators/index.ts +0 -27
- package/src/onboarding.ts +0 -90
- package/src/screens/AttemptLockout.tsx +0 -153
- package/src/screens/AutoLock.tsx +0 -140
- package/src/screens/Biometry.tsx +0 -54
- package/src/screens/Chat.tsx +0 -141
- package/src/screens/ConfigureMediator.tsx +0 -160
- package/src/screens/Connection.tsx +0 -394
- package/src/screens/ContactDetails.tsx +0 -350
- package/src/screens/CredentialDetails.tsx +0 -473
- package/src/screens/CredentialOffer.tsx +0 -334
- package/src/screens/CredentialOfferAccept.tsx +0 -189
- package/src/screens/DataRetention.tsx +0 -91
- package/src/screens/Developer.tsx +0 -289
- package/src/screens/Home.tsx +0 -173
- package/src/screens/JSONDetails.tsx +0 -102
- package/src/screens/Language.tsx +0 -97
- package/src/screens/ListContacts.tsx +0 -112
- package/src/screens/ListCredentials.tsx +0 -135
- package/src/screens/ListProofRequests.tsx +0 -148
- package/src/screens/MobileVerifierLoading.tsx +0 -106
- package/src/screens/NameWallet.tsx +0 -9
- package/src/screens/Onboarding.tsx +0 -162
- package/src/screens/OnboardingPages.tsx +0 -160
- package/src/screens/PINChange.tsx +0 -249
- package/src/screens/PINCreate.tsx +0 -185
- package/src/screens/PINEnter.tsx +0 -432
- package/src/screens/PINExplainer.tsx +0 -85
- package/src/screens/PINVerify.tsx +0 -195
- package/src/screens/PasteUrl.tsx +0 -140
- package/src/screens/Preface.tsx +0 -78
- package/src/screens/ProofChangeCredential.tsx +0 -179
- package/src/screens/ProofDetails.tsx +0 -348
- package/src/screens/ProofRequest.tsx +0 -999
- package/src/screens/ProofRequestAccept.tsx +0 -133
- package/src/screens/ProofRequestDetails.tsx +0 -270
- package/src/screens/ProofRequestUsageHistory.tsx +0 -152
- package/src/screens/ProofRequesting.tsx +0 -245
- package/src/screens/PushNotifications.tsx +0 -59
- package/src/screens/RenameContact.tsx +0 -155
- package/src/screens/RenameWallet.tsx +0 -26
- package/src/screens/Scan.tsx +0 -145
- package/src/screens/ScanHelp.tsx +0 -48
- package/src/screens/Settings.tsx +0 -415
- package/src/screens/Splash.tsx +0 -80
- package/src/screens/Terms.tsx +0 -127
- package/src/screens/ToggleBiometry.tsx +0 -153
- package/src/screens/TogglePushNotifications.tsx +0 -118
- package/src/screens/Tours.tsx +0 -93
- package/src/screens/UpdateAvailable.tsx +0 -119
- package/src/screens/WhatAreContacts.tsx +0 -71
- package/src/services/bifoldLogger.ts +0 -3
- package/src/services/keychain.ts +0 -184
- package/src/services/logger.ts +0 -89
- package/src/services/storage.ts +0 -136
- package/src/theme-builder.ts +0 -157
- package/src/theme.interface.ts +0 -580
- package/src/theme.ts +0 -1346
- package/src/types/attempt-lockout-config.ts +0 -8
- package/src/types/attestation.ts +0 -17
- package/src/types/chat.ts +0 -4
- package/src/types/config.ts +0 -64
- package/src/types/contact-details.ts +0 -5
- package/src/types/credential-list-footer.ts +0 -3
- package/src/types/credential-status.ts +0 -3
- package/src/types/credentials.ts +0 -7
- package/src/types/decline.ts +0 -5
- package/src/types/error.ts +0 -40
- package/src/types/fn.ts +0 -2
- package/src/types/genesis.ts +0 -35
- package/src/types/index.ts +0 -2
- package/src/types/metadata.ts +0 -16
- package/src/types/navigators.ts +0 -239
- package/src/types/notification.ts +0 -24
- package/src/types/permissions.ts +0 -2
- package/src/types/proof-items.ts +0 -32
- package/src/types/react-i18next.d.ts +0 -10
- package/src/types/remove.ts +0 -8
- package/src/types/security.ts +0 -32
- package/src/types/settings.ts +0 -28
- package/src/types/state.ts +0 -97
- package/src/types/tour.ts +0 -20
- package/src/types/version-check.ts +0 -18
- package/src/utils/PINValidation.ts +0 -98
- package/src/utils/agent.ts +0 -128
- package/src/utils/anonCredsProofRequestMapper.ts +0 -205
- package/src/utils/contacts.ts +0 -59
- package/src/utils/cred-def.ts +0 -33
- package/src/utils/credential.ts +0 -37
- package/src/utils/crypto.ts +0 -12
- package/src/utils/fileCache.ts +0 -152
- package/src/utils/helpers.ts +0 -1292
- package/src/utils/ledger.ts +0 -212
- package/src/utils/luminance.ts +0 -40
- package/src/utils/mediatorhelpers.ts +0 -71
- package/src/utils/migration.ts +0 -40
- package/src/utils/network.tsx +0 -55
- package/src/utils/oca.ts +0 -173
- package/src/utils/parsers.tsx +0 -111
- package/src/utils/proofBundle.ts +0 -220
- package/src/utils/schema.ts +0 -28
- package/src/utils/testable.ts +0 -17
package/src/contexts/store.tsx
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import React, { createContext, Dispatch, useContext, useReducer } from 'react'
|
|
2
|
-
|
|
3
|
-
import { State } from '../types/state'
|
|
4
|
-
import { generateRandomWalletName } from '../utils/helpers'
|
|
5
|
-
|
|
6
|
-
import _defaultReducer, { ReducerAction } from './reducers/store'
|
|
7
|
-
import { defaultAutoLockTime } from '../constants'
|
|
8
|
-
import Config from 'react-native-config'
|
|
9
|
-
|
|
10
|
-
type Reducer = <S extends State>(state: S, action: ReducerAction<any>) => S
|
|
11
|
-
|
|
12
|
-
interface StoreProviderProps extends React.PropsWithChildren {
|
|
13
|
-
initialState?: State
|
|
14
|
-
reducer?: Reducer
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const defaultState: State = {
|
|
18
|
-
onboarding: {
|
|
19
|
-
didSeePreface: false,
|
|
20
|
-
didAgreeToTerms: false,
|
|
21
|
-
didCompleteTutorial: false,
|
|
22
|
-
didCreatePIN: false,
|
|
23
|
-
didConsiderPushNotifications: false,
|
|
24
|
-
didConsiderBiometry: false,
|
|
25
|
-
didNameWallet: false,
|
|
26
|
-
onboardingVersion: 0,
|
|
27
|
-
didCompleteOnboarding: false,
|
|
28
|
-
},
|
|
29
|
-
authentication: {
|
|
30
|
-
didAuthenticate: false,
|
|
31
|
-
},
|
|
32
|
-
// NOTE: from Credo 0.4.0 on we use Aries Askar. New wallets will be created with Askar from the start
|
|
33
|
-
// which we will know when we create the pin while using askar as a dependency.
|
|
34
|
-
migration: {
|
|
35
|
-
didMigrateToAskar: false,
|
|
36
|
-
},
|
|
37
|
-
loginAttempt: {
|
|
38
|
-
loginAttempts: 0,
|
|
39
|
-
servedPenalty: true,
|
|
40
|
-
},
|
|
41
|
-
lockout: {
|
|
42
|
-
displayNotification: false,
|
|
43
|
-
},
|
|
44
|
-
preferences: {
|
|
45
|
-
developerModeEnabled: false,
|
|
46
|
-
biometryPreferencesUpdated: false,
|
|
47
|
-
useBiometry: false,
|
|
48
|
-
usePushNotifications: false,
|
|
49
|
-
useVerifierCapability: false,
|
|
50
|
-
useConnectionInviterCapability: false,
|
|
51
|
-
useDevVerifierTemplates: false,
|
|
52
|
-
acceptDevCredentials: false,
|
|
53
|
-
useDataRetention: true,
|
|
54
|
-
enableWalletNaming: false,
|
|
55
|
-
walletName: generateRandomWalletName(),
|
|
56
|
-
preventAutoLock: false,
|
|
57
|
-
enableShareableLink: false,
|
|
58
|
-
alternateContactNames: {},
|
|
59
|
-
autoLockTime: defaultAutoLockTime, // default wallets lockout time to 5 minutes
|
|
60
|
-
availableMediators: [Config.MEDIATOR_URL ?? ''],
|
|
61
|
-
selectedMediator: Config.MEDIATOR_URL ?? '',
|
|
62
|
-
bannerMessages: [],
|
|
63
|
-
},
|
|
64
|
-
tours: {
|
|
65
|
-
seenToursPrompt: false,
|
|
66
|
-
enableTours: true,
|
|
67
|
-
seenHomeTour: false,
|
|
68
|
-
seenCredentialsTour: false,
|
|
69
|
-
seenCredentialOfferTour: false,
|
|
70
|
-
seenProofRequestTour: false,
|
|
71
|
-
},
|
|
72
|
-
stateLoaded: false,
|
|
73
|
-
versionInfo: { needsUpdate: false, lastChecked: undefined, version: undefined },
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export const StoreContext = createContext<[State, Dispatch<ReducerAction<any>>]>([
|
|
77
|
-
defaultState,
|
|
78
|
-
() => {
|
|
79
|
-
return
|
|
80
|
-
},
|
|
81
|
-
])
|
|
82
|
-
|
|
83
|
-
export const mergeReducers = (a: Reducer, b: Reducer): Reducer => {
|
|
84
|
-
return <S extends State>(state: S, action: ReducerAction<any>): S => {
|
|
85
|
-
return a(b(state, action), action)
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export const defaultReducer = _defaultReducer
|
|
90
|
-
|
|
91
|
-
export const StoreProvider: React.FC<StoreProviderProps> = ({ children, initialState, reducer }) => {
|
|
92
|
-
const _reducer = reducer ?? defaultReducer
|
|
93
|
-
const _state = initialState ?? defaultState
|
|
94
|
-
const [state, dispatch] = useReducer(_reducer, _state)
|
|
95
|
-
|
|
96
|
-
return <StoreContext.Provider value={[state, dispatch]}>{children}</StoreContext.Provider>
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export const useStore = <S extends State>(): [S, Dispatch<ReducerAction<any>>] => {
|
|
100
|
-
const context = useContext(StoreContext)
|
|
101
|
-
|
|
102
|
-
return context as unknown as [S, Dispatch<ReducerAction<any>>]
|
|
103
|
-
}
|
package/src/contexts/theme.tsx
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { createContext, useCallback, useContext, useMemo } from 'react'
|
|
2
|
-
|
|
3
|
-
import { bifoldTheme, ITheme } from '../theme'
|
|
4
|
-
import { useStore } from './store'
|
|
5
|
-
import { DispatchAction } from './reducers/store'
|
|
6
|
-
|
|
7
|
-
export interface IThemeContext extends ITheme {
|
|
8
|
-
setTheme: (themeName: string) => void
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const ThemeContext = createContext<IThemeContext>({
|
|
12
|
-
...bifoldTheme,
|
|
13
|
-
setTheme: () => {},
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
export interface ThemeProviderProps extends React.PropsWithChildren {
|
|
17
|
-
themes: ITheme[]
|
|
18
|
-
defaultThemeName: string
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export const ThemeProvider = ({ themes, defaultThemeName, children }: ThemeProviderProps) => {
|
|
22
|
-
const [store, dispatch] = useStore()
|
|
23
|
-
|
|
24
|
-
const activeTheme = useMemo(() => {
|
|
25
|
-
return (
|
|
26
|
-
(store.preferences.theme && themes.find((t) => t.themeName === store.preferences.theme)) ||
|
|
27
|
-
themes.find((t) => t.themeName === defaultThemeName) ||
|
|
28
|
-
themes[0]
|
|
29
|
-
)
|
|
30
|
-
}, [store.preferences.theme, themes, defaultThemeName])
|
|
31
|
-
|
|
32
|
-
const setTheme = useCallback(
|
|
33
|
-
(themeName: string) => {
|
|
34
|
-
const newTheme = themes.find((t) => t.themeName === themeName) || themes[0]
|
|
35
|
-
dispatch({ type: DispatchAction.SET_THEME, payload: [newTheme.themeName] })
|
|
36
|
-
},
|
|
37
|
-
[themes, dispatch]
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
// prevent re-rendering of the context value
|
|
41
|
-
const value = useMemo(() => {
|
|
42
|
-
return {
|
|
43
|
-
...activeTheme,
|
|
44
|
-
setTheme,
|
|
45
|
-
}
|
|
46
|
-
}, [activeTheme, setTheme])
|
|
47
|
-
|
|
48
|
-
return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export const useTheme = () => useContext(ThemeContext)
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { createContext, ReactElement, useContext } from 'react'
|
|
2
|
-
import { LayoutRectangle } from 'react-native'
|
|
3
|
-
|
|
4
|
-
import { BaseTourID, TourID } from '../../types/tour'
|
|
5
|
-
|
|
6
|
-
export type Tours = {
|
|
7
|
-
[key: TourID]: TourStep[]
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface RenderProps {
|
|
11
|
-
/**
|
|
12
|
-
* The ID of the current tour selected
|
|
13
|
-
*/
|
|
14
|
-
currentTour: TourID
|
|
15
|
-
/**
|
|
16
|
-
* The index of the current step the tour is on.
|
|
17
|
-
*/
|
|
18
|
-
currentStep: number
|
|
19
|
-
/**
|
|
20
|
-
* Directly change the current spotlight
|
|
21
|
-
*/
|
|
22
|
-
changeSpot?: (spot: LayoutRectangle) => void
|
|
23
|
-
/**
|
|
24
|
-
* Goes to the next step, if any. Stops the tour on the last step.
|
|
25
|
-
*/
|
|
26
|
-
next: () => void
|
|
27
|
-
/**
|
|
28
|
-
* Goes to the previous step, if any.
|
|
29
|
-
*/
|
|
30
|
-
previous: () => void
|
|
31
|
-
/**
|
|
32
|
-
* Terminates the tour execution.
|
|
33
|
-
*/
|
|
34
|
-
stop: () => void
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export interface OSConfig<T> {
|
|
38
|
-
/**
|
|
39
|
-
* Generic setting which only applies to Android
|
|
40
|
-
*/
|
|
41
|
-
android: T
|
|
42
|
-
/**
|
|
43
|
-
* Generic setting which only applies to iOS
|
|
44
|
-
*/
|
|
45
|
-
ios: T
|
|
46
|
-
/**
|
|
47
|
-
* Generic setting which only applies to Web
|
|
48
|
-
*/
|
|
49
|
-
web: T
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export type BackdropPressBehavior = 'continue' | 'stop' | ((options: Tour) => void)
|
|
53
|
-
|
|
54
|
-
export interface TourStep {
|
|
55
|
-
/**
|
|
56
|
-
* Overrides the behavior of pressing the tour's backdrop for this specific
|
|
57
|
-
* step. You can use either one of the following values:
|
|
58
|
-
* - A callback function with the {@link Tour} options object in the
|
|
59
|
-
* first argument. This allows more granular control over the tour.
|
|
60
|
-
* - The `continue` literal string, which is a shortcut to move to the next
|
|
61
|
-
* step, and stop the tour on the last step.
|
|
62
|
-
* - the `stop` literal string, which is a shortcut to stop the tour.
|
|
63
|
-
*
|
|
64
|
-
* **NOTE:** You can also define a default behavior on the
|
|
65
|
-
* `TourProvider` props.
|
|
66
|
-
*/
|
|
67
|
-
onBackdropPress?: BackdropPressBehavior
|
|
68
|
-
/**
|
|
69
|
-
* A function or React function component to render the tooltip of the step.
|
|
70
|
-
* It receives the {@link RenderProps} so you can access the context of the
|
|
71
|
-
* tour within the tooltip.
|
|
72
|
-
*/
|
|
73
|
-
Render: (props: RenderProps) => ReactElement
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export interface Tour {
|
|
77
|
-
/**
|
|
78
|
-
* The ID of the tour
|
|
79
|
-
*/
|
|
80
|
-
currentTour: TourID
|
|
81
|
-
/**
|
|
82
|
-
* The current step index.
|
|
83
|
-
*/
|
|
84
|
-
currentStep?: number
|
|
85
|
-
/**
|
|
86
|
-
* Manually change the current spot (useful for steps that don't have an associated AttachTourStep)
|
|
87
|
-
*/
|
|
88
|
-
changeSpot: (spot: LayoutRectangle) => void
|
|
89
|
-
/**
|
|
90
|
-
* Goes to the next step, if any. Stops the tour on the last step.
|
|
91
|
-
*/
|
|
92
|
-
next: () => void
|
|
93
|
-
/**
|
|
94
|
-
* Goes to the previous step, if any.
|
|
95
|
-
*/
|
|
96
|
-
previous: () => void
|
|
97
|
-
/**
|
|
98
|
-
* Kicks off a tour from step `0`.
|
|
99
|
-
*/
|
|
100
|
-
start: (tourId: TourID) => void
|
|
101
|
-
/**
|
|
102
|
-
* Terminates the tour execution.
|
|
103
|
-
*/
|
|
104
|
-
stop: () => void
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export interface TourCtx extends Tour {
|
|
108
|
-
/**
|
|
109
|
-
* Programmatically change the spot layout
|
|
110
|
-
*
|
|
111
|
-
* @param spot the spot layout
|
|
112
|
-
*/
|
|
113
|
-
changeSpot: (spot: LayoutRectangle) => void
|
|
114
|
-
/**
|
|
115
|
-
* The spotlight layout.
|
|
116
|
-
*/
|
|
117
|
-
spot: LayoutRectangle
|
|
118
|
-
/**
|
|
119
|
-
* A dictionnary where the key is...
|
|
120
|
-
*/
|
|
121
|
-
tours: Tours
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export const ORIGIN_SPOT: LayoutRectangle = {
|
|
125
|
-
height: 0,
|
|
126
|
-
width: 0,
|
|
127
|
-
x: 0,
|
|
128
|
-
y: 0,
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
export const TourContext = createContext<TourCtx>({
|
|
132
|
-
currentTour: BaseTourID.HomeTour,
|
|
133
|
-
currentStep: undefined,
|
|
134
|
-
changeSpot: () => undefined,
|
|
135
|
-
next: () => undefined,
|
|
136
|
-
previous: () => undefined,
|
|
137
|
-
spot: ORIGIN_SPOT,
|
|
138
|
-
start: () => undefined,
|
|
139
|
-
tours: {},
|
|
140
|
-
stop: () => undefined,
|
|
141
|
-
})
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* React hook to access the {@link Tour} context.
|
|
145
|
-
*
|
|
146
|
-
* @returns the Tour context
|
|
147
|
-
*/
|
|
148
|
-
export function useTour(): Tour {
|
|
149
|
-
const { currentTour, currentStep, changeSpot, next, previous, start, stop } = useContext(TourContext)
|
|
150
|
-
|
|
151
|
-
return {
|
|
152
|
-
currentTour,
|
|
153
|
-
currentStep,
|
|
154
|
-
changeSpot,
|
|
155
|
-
next,
|
|
156
|
-
previous,
|
|
157
|
-
start,
|
|
158
|
-
stop,
|
|
159
|
-
}
|
|
160
|
-
}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef, Ref, useCallback, useImperativeHandle, useMemo, useState } from 'react'
|
|
2
|
-
import { ColorValue, LayoutRectangle } from 'react-native'
|
|
3
|
-
|
|
4
|
-
import { TourOverlay } from '../../components/tour/TourOverlay'
|
|
5
|
-
import { BaseTourID, ChildFn, TourID } from '../../types/tour'
|
|
6
|
-
import { isChildFunction } from '../../utils/helpers'
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
BackdropPressBehavior,
|
|
10
|
-
OSConfig,
|
|
11
|
-
Tour,
|
|
12
|
-
TourContext,
|
|
13
|
-
TourCtx,
|
|
14
|
-
TourStep,
|
|
15
|
-
ORIGIN_SPOT,
|
|
16
|
-
Tours,
|
|
17
|
-
} from './tour-context'
|
|
18
|
-
|
|
19
|
-
export interface TourProviderProps {
|
|
20
|
-
children: React.ReactNode | ChildFn<Tour>
|
|
21
|
-
/**
|
|
22
|
-
* Define if the animations in the tour should use the native driver or not.
|
|
23
|
-
* A boolean can be used to apply the same value to both Android and iOS, or
|
|
24
|
-
* an object with `android` and `ios` keys can be used to define a value for
|
|
25
|
-
* each OS.
|
|
26
|
-
*
|
|
27
|
-
* @default false
|
|
28
|
-
*/
|
|
29
|
-
nativeDriver?: boolean | OSConfig<boolean>
|
|
30
|
-
/**
|
|
31
|
-
* Sets the default behavior of pressing the tour's backdrop. You can use
|
|
32
|
-
* either one of the following values:
|
|
33
|
-
* - A callback function with the {@link Tour} options object in the
|
|
34
|
-
* first argument. This allows more franular control over the tour.
|
|
35
|
-
* - The `continue` literal string, which is a shortcut to move to the next
|
|
36
|
-
* step, and stop the tour on the last step.
|
|
37
|
-
* - the `stop` literal string, which is a shortcut to stop the tour.
|
|
38
|
-
*
|
|
39
|
-
* **NOTE:** You can also override this behavior on each step configuration.
|
|
40
|
-
*/
|
|
41
|
-
onBackdropPress?: BackdropPressBehavior
|
|
42
|
-
/**
|
|
43
|
-
* The color of the overlay of the tour.
|
|
44
|
-
*
|
|
45
|
-
* @default black
|
|
46
|
-
*/
|
|
47
|
-
overlayColor?: ColorValue
|
|
48
|
-
/**
|
|
49
|
-
* The opacity applied to the overlay of the tour (between 0 to 1).
|
|
50
|
-
*
|
|
51
|
-
* @default 0.45
|
|
52
|
-
*/
|
|
53
|
-
overlayOpacity?: number
|
|
54
|
-
/**
|
|
55
|
-
* The list of steps for the home tour.
|
|
56
|
-
*/
|
|
57
|
-
tours: Tours
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const TourProviderComponent = (props: TourProviderProps, ref: Ref<Tour>) => {
|
|
61
|
-
const {
|
|
62
|
-
children,
|
|
63
|
-
onBackdropPress,
|
|
64
|
-
overlayColor = 'black',
|
|
65
|
-
overlayOpacity = 0.45,
|
|
66
|
-
tours,
|
|
67
|
-
nativeDriver = false,
|
|
68
|
-
} = props
|
|
69
|
-
|
|
70
|
-
const [currentTour, setCurrentTour] = useState<TourID>(BaseTourID.HomeTour)
|
|
71
|
-
const [currentStep, setCurrentStep] = useState<number>()
|
|
72
|
-
const [spot, setSpot] = useState(ORIGIN_SPOT)
|
|
73
|
-
|
|
74
|
-
const renderStep = useCallback(
|
|
75
|
-
(index: number): void | Promise<void> => {
|
|
76
|
-
if (tours[currentTour]?.[index] !== undefined) {
|
|
77
|
-
setCurrentStep(index)
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
[currentTour, tours]
|
|
81
|
-
)
|
|
82
|
-
|
|
83
|
-
const changeSpot = useCallback((newSpot: LayoutRectangle): void => {
|
|
84
|
-
setSpot(newSpot)
|
|
85
|
-
}, [])
|
|
86
|
-
|
|
87
|
-
const start = useCallback(
|
|
88
|
-
(tourId: TourID): void => {
|
|
89
|
-
setCurrentTour(tourId)
|
|
90
|
-
renderStep(0)
|
|
91
|
-
},
|
|
92
|
-
[renderStep]
|
|
93
|
-
)
|
|
94
|
-
|
|
95
|
-
const stop = useCallback((): void => {
|
|
96
|
-
setCurrentStep(undefined)
|
|
97
|
-
setSpot(ORIGIN_SPOT)
|
|
98
|
-
}, [])
|
|
99
|
-
|
|
100
|
-
const next = useCallback((): void => {
|
|
101
|
-
if (currentTour && currentStep !== undefined && tours[currentTour]) {
|
|
102
|
-
currentStep === tours[currentTour].length - 1 ? stop() : renderStep(currentStep + 1)
|
|
103
|
-
}
|
|
104
|
-
}, [stop, renderStep, currentStep, currentTour, tours])
|
|
105
|
-
|
|
106
|
-
const previous = useCallback((): void => {
|
|
107
|
-
if (currentStep !== undefined && currentStep > 0) {
|
|
108
|
-
renderStep(currentStep - 1)
|
|
109
|
-
}
|
|
110
|
-
}, [renderStep, currentStep])
|
|
111
|
-
|
|
112
|
-
const tourStep = useMemo((): TourStep => {
|
|
113
|
-
return tours?.[currentTour]?.[currentStep ?? 0] ?? { Render: () => <></> }
|
|
114
|
-
}, [currentTour, currentStep, tours])
|
|
115
|
-
|
|
116
|
-
const tour = useMemo(
|
|
117
|
-
(): TourCtx => ({
|
|
118
|
-
changeSpot,
|
|
119
|
-
currentTour,
|
|
120
|
-
currentStep,
|
|
121
|
-
next,
|
|
122
|
-
previous,
|
|
123
|
-
spot,
|
|
124
|
-
start,
|
|
125
|
-
stop,
|
|
126
|
-
tours,
|
|
127
|
-
}),
|
|
128
|
-
[changeSpot, currentTour, currentStep, next, previous, spot, start, stop, tours]
|
|
129
|
-
)
|
|
130
|
-
|
|
131
|
-
useImperativeHandle(ref, () => ({
|
|
132
|
-
currentTour,
|
|
133
|
-
currentStep,
|
|
134
|
-
changeSpot,
|
|
135
|
-
next,
|
|
136
|
-
previous,
|
|
137
|
-
start,
|
|
138
|
-
stop,
|
|
139
|
-
}))
|
|
140
|
-
|
|
141
|
-
return (
|
|
142
|
-
<TourContext.Provider value={tour}>
|
|
143
|
-
{isChildFunction(children) ? <TourContext.Consumer>{children}</TourContext.Consumer> : <>{children}</>}
|
|
144
|
-
|
|
145
|
-
<TourOverlay
|
|
146
|
-
color={overlayColor}
|
|
147
|
-
currentStep={currentStep}
|
|
148
|
-
currentTour={currentTour}
|
|
149
|
-
changeSpot={changeSpot}
|
|
150
|
-
backdropOpacity={overlayOpacity}
|
|
151
|
-
onBackdropPress={onBackdropPress}
|
|
152
|
-
spot={spot}
|
|
153
|
-
tourStep={tourStep}
|
|
154
|
-
nativeDriver={nativeDriver}
|
|
155
|
-
/>
|
|
156
|
-
</TourContext.Provider>
|
|
157
|
-
)
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export const TourProvider = forwardRef<Tour, TourProviderProps>(TourProviderComponent)
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CredentialOverlay,
|
|
3
|
-
Field,
|
|
4
|
-
OCABundle,
|
|
5
|
-
OCABundleResolveAllParams,
|
|
6
|
-
OCABundleResolveDefaultParams,
|
|
7
|
-
OCABundleResolvePresentationFieldsParams,
|
|
8
|
-
} from '@bifold/oca/build/legacy'
|
|
9
|
-
import { TOKENS, useServices } from '../container-api'
|
|
10
|
-
import { useEffect, useState } from 'react'
|
|
11
|
-
import { BaseOverlay, BrandingOverlay, LegacyBrandingOverlay } from '@bifold/oca'
|
|
12
|
-
|
|
13
|
-
type BundleResolverParams<T> = T extends CredentialOverlay<BrandingOverlay | BaseOverlay | LegacyBrandingOverlay>
|
|
14
|
-
? OCABundleResolveAllParams
|
|
15
|
-
: T extends OCABundle
|
|
16
|
-
? OCABundleResolveDefaultParams
|
|
17
|
-
: T extends Field[]
|
|
18
|
-
? OCABundleResolvePresentationFieldsParams
|
|
19
|
-
: never
|
|
20
|
-
|
|
21
|
-
function isOCABundleResolveDefaultParams(
|
|
22
|
-
params: OCABundleResolveDefaultParams | OCABundleResolveAllParams
|
|
23
|
-
): params is OCABundleResolveDefaultParams {
|
|
24
|
-
return 'meta' in params && !('attributes' in params)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function isOCABundleResolveAllParams(
|
|
28
|
-
params: OCABundleResolveAllParams | OCABundleResolveDefaultParams
|
|
29
|
-
): params is OCABundleResolveAllParams {
|
|
30
|
-
return 'attributes' in params && 'meta' in params
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function isOCABundleResolvePresentationFieldsParams(params: any): params is OCABundleResolvePresentationFieldsParams {
|
|
34
|
-
return 'attributes' in params && !('meta' in params)
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export function useBranding<
|
|
38
|
-
T extends CredentialOverlay<BrandingOverlay | BaseOverlay | LegacyBrandingOverlay> | OCABundle | Field
|
|
39
|
-
>(params: BundleResolverParams<T>) {
|
|
40
|
-
const [bundleResolver] = useServices([TOKENS.UTIL_OCA_RESOLVER])
|
|
41
|
-
const [overlay, setOverlay] = useState<T>({} as T)
|
|
42
|
-
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
if (isOCABundleResolveDefaultParams(params)) {
|
|
45
|
-
bundleResolver.resolveDefaultBundle(params).then((bundle) => {
|
|
46
|
-
if (bundle) {
|
|
47
|
-
setOverlay(
|
|
48
|
-
(o) =>
|
|
49
|
-
({
|
|
50
|
-
...o,
|
|
51
|
-
...bundle,
|
|
52
|
-
brandingOverlay: bundle.brandingOverlay,
|
|
53
|
-
} as T)
|
|
54
|
-
)
|
|
55
|
-
}
|
|
56
|
-
})
|
|
57
|
-
} else if (isOCABundleResolveAllParams(params)) {
|
|
58
|
-
bundleResolver.resolveAllBundles(params).then((bundle) => {
|
|
59
|
-
setOverlay(
|
|
60
|
-
(o) =>
|
|
61
|
-
({
|
|
62
|
-
...o,
|
|
63
|
-
...bundle,
|
|
64
|
-
brandingOverlay: bundle.brandingOverlay,
|
|
65
|
-
} as T)
|
|
66
|
-
)
|
|
67
|
-
})
|
|
68
|
-
} else if (isOCABundleResolvePresentationFieldsParams(params)) {
|
|
69
|
-
bundleResolver.presentationFields(params).then((fields) => {
|
|
70
|
-
setOverlay(
|
|
71
|
-
(o) =>
|
|
72
|
-
({
|
|
73
|
-
...o,
|
|
74
|
-
presentationFields: fields,
|
|
75
|
-
} as T)
|
|
76
|
-
)
|
|
77
|
-
})
|
|
78
|
-
} else {
|
|
79
|
-
bundleResolver.resolve(params).then((bundle) => {
|
|
80
|
-
if (bundle) {
|
|
81
|
-
setOverlay(
|
|
82
|
-
(o) =>
|
|
83
|
-
({
|
|
84
|
-
...o,
|
|
85
|
-
...bundle,
|
|
86
|
-
brandingOverlay: bundle.brandingOverlay,
|
|
87
|
-
} as T)
|
|
88
|
-
)
|
|
89
|
-
}
|
|
90
|
-
})
|
|
91
|
-
}
|
|
92
|
-
}, [params, bundleResolver])
|
|
93
|
-
|
|
94
|
-
return { overlay }
|
|
95
|
-
}
|