@dynamic-labs/sdk-react-core 0.18.0-RC.22 → 0.18.0-RC.24
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/CHANGELOG.md +26 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +8 -8
- package/src/index.cjs +3 -0
- package/src/index.d.ts +2 -1
- package/src/index.js +2 -0
- package/src/lib/Main.cjs +3 -0
- package/src/lib/Main.js +3 -0
- package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.cjs +1 -0
- package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.js +1 -0
- package/src/lib/components/AnimatePresence/AnimatePresence.cjs +1 -0
- package/src/lib/components/AnimatePresence/AnimatePresence.js +1 -0
- package/src/lib/components/AuthProviderIcon/AuthProviderIcon.cjs +1 -0
- package/src/lib/components/AuthProviderIcon/AuthProviderIcon.js +1 -0
- package/src/lib/components/Divider/Divider.cjs +1 -0
- package/src/lib/components/Divider/Divider.js +1 -0
- package/src/lib/components/MenuList/Dropdown/Dropdown.cjs +1 -0
- package/src/lib/components/MenuList/Dropdown/Dropdown.js +1 -0
- package/src/lib/components/Modal/Modal.cjs +1 -0
- package/src/lib/components/Modal/Modal.js +1 -0
- package/src/lib/components/NetworkPicker/NetworkPicker.cjs +1 -0
- package/src/lib/components/NetworkPicker/NetworkPicker.js +1 -0
- package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.cjs +1 -0
- package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.js +1 -0
- package/src/lib/components/NetworkPicker/components/Network/Network.cjs +1 -0
- package/src/lib/components/NetworkPicker/components/Network/Network.js +1 -0
- package/src/lib/components/NetworkPicker/components/NonNetworkSwitchingSupportedControl/NonNetworkSwitchingSupportedControl.cjs +1 -0
- package/src/lib/components/NetworkPicker/components/NonNetworkSwitchingSupportedControl/NonNetworkSwitchingSupportedControl.js +1 -0
- package/src/lib/components/OTPVerificationView/OTPVerificationView.cjs +1 -0
- package/src/lib/components/OTPVerificationView/OTPVerificationView.js +1 -0
- package/src/lib/components/OverlayCard/OverlayCard.cjs +1 -0
- package/src/lib/components/OverlayCard/OverlayCard.js +1 -0
- package/src/lib/components/Popper/PopperContext/PopperContext.js +1 -1
- package/src/lib/components/Portal/Portal.cjs +1 -0
- package/src/lib/components/Portal/Portal.js +1 -0
- package/src/lib/components/Tooltip/Tooltip.cjs +1 -0
- package/src/lib/components/Tooltip/Tooltip.js +1 -0
- package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.cjs +1 -0
- package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.js +1 -0
- package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.cjs +1 -0
- package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.js +1 -0
- package/src/lib/components/UserAddress/UserAddress.cjs +1 -0
- package/src/lib/components/UserAddress/UserAddress.js +1 -0
- package/src/lib/components/UserProfile/UserProfile.cjs +6 -14
- package/src/lib/components/UserProfile/UserProfile.js +6 -14
- package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.cjs +1 -0
- package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.js +1 -0
- package/src/lib/components/UserProfile/parts/UserProfileSection/UserProfileSection.cjs +1 -0
- package/src/lib/components/UserProfile/parts/UserProfileSection/UserProfileSection.js +1 -0
- package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.cjs +13 -64
- package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.d.ts +2 -4
- package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.js +13 -64
- package/src/lib/context/AccountExistsContext/AccountExistsContext.cjs +27 -0
- package/src/lib/context/AccountExistsContext/AccountExistsContext.d.ts +17 -0
- package/src/lib/context/AccountExistsContext/AccountExistsContext.js +21 -0
- package/src/lib/context/AccountExistsContext/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/DynamicContext.cjs +4 -5
- package/src/lib/context/DynamicContext/DynamicContext.js +5 -6
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerAuthFlowCallbacks.cjs +1 -0
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerAuthFlowCallbacks.js +1 -0
- package/src/lib/context/MockContext/MockContext.cjs +36 -2
- package/src/lib/context/MockContext/MockContext.d.ts +1 -1
- package/src/lib/context/MockContext/MockContext.js +36 -2
- package/src/lib/context/MockContext/constants/index.cjs +64 -0
- package/src/lib/context/MockContext/constants/index.d.ts +2 -0
- package/src/lib/context/MockContext/constants/index.js +60 -0
- package/src/lib/context/QrCodeContext/QrCodeContext.cjs +1 -0
- package/src/lib/context/QrCodeContext/QrCodeContext.js +1 -0
- package/src/lib/context/SendBalanceContext/SendBalanceContext.cjs +1 -0
- package/src/lib/context/SendBalanceContext/SendBalanceContext.js +1 -0
- package/src/lib/context/ViewContext/ViewContext.d.ts +1 -1
- package/src/lib/context/WalletContext/WalletContext.cjs +1 -0
- package/src/lib/context/WalletContext/WalletContext.js +1 -0
- package/src/lib/data/api.cjs +6 -0
- package/src/lib/data/api.js +7 -1
- package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.cjs +1 -0
- package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.js +1 -0
- package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +3 -0
- package/src/lib/layout/DynamicAuthLayout/Header/header.js +3 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.cjs +1 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.js +1 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/Item/Item.cjs +1 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/Item/Item.js +1 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.cjs +1 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.js +1 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.cjs +1 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.js +1 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.cjs +1 -0
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.js +1 -0
- package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.cjs +1 -0
- package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.js +1 -0
- package/src/lib/layout/DynamicAuthLayout/WalletProgressStepper/WalletProgressStepper.cjs +1 -0
- package/src/lib/layout/DynamicAuthLayout/WalletProgressStepper/WalletProgressStepper.js +1 -0
- package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.cjs +1 -0
- package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.js +1 -0
- package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.cjs +1 -0
- package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.js +1 -0
- package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.cjs +1 -0
- package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.js +1 -0
- package/src/lib/modals/SendBalanceModal/SendBalanceModal.cjs +1 -0
- package/src/lib/modals/SendBalanceModal/SendBalanceModal.js +1 -0
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +1 -0
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +1 -0
- package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.cjs +1 -0
- package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.js +1 -0
- package/src/lib/shared/types/index.d.ts +1 -1
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/functions/getDynamicLayoutData/getDynamicLayoutData.cjs +1 -0
- package/src/lib/utils/functions/getDynamicLayoutData/getDynamicLayoutData.js +1 -0
- package/src/lib/utils/functions/index.d.ts +1 -0
- package/src/lib/utils/functions/isSocialKycEnabled/index.d.ts +1 -0
- package/src/lib/utils/functions/isSocialKycEnabled/isSocialKycEnabled.cjs +7 -0
- package/src/lib/utils/functions/isSocialKycEnabled/isSocialKycEnabled.d.ts +2 -0
- package/src/lib/utils/functions/isSocialKycEnabled/isSocialKycEnabled.js +3 -0
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +7 -1
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +7 -1
- package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.cjs +1 -0
- package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.js +1 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +2 -1
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +2 -1
- package/src/lib/utils/hooks/useAuthenticateConnectedUser/useAuthenticateConnectedUser.cjs +1 -0
- package/src/lib/utils/hooks/useAuthenticateConnectedUser/useAuthenticateConnectedUser.js +1 -0
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +18 -2
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +1 -1
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +18 -2
- package/src/lib/utils/hooks/useKYCFlag/useKYCFlag.cjs +17 -2
- package/src/lib/utils/hooks/useKYCFlag/useKYCFlag.js +17 -2
- package/src/lib/utils/hooks/useSocialAccounts/index.d.ts +1 -0
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +159 -0
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.d.ts +10 -0
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +155 -0
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +7 -0
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +8 -1
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +2 -2
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +1 -1
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +2 -2
- package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +1 -0
- package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.js +1 -0
- package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.cjs +1 -0
- package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.js +1 -0
- package/src/lib/views/AccountExistsView/AccountExistsView.cjs +73 -0
- package/src/lib/views/AccountExistsView/AccountExistsView.d.ts +2 -0
- package/src/lib/views/AccountExistsView/AccountExistsView.js +69 -0
- package/src/lib/views/AccountExistsView/index.d.ts +1 -0
- package/src/lib/views/CollectUserDataView/CollectUserDataView.cjs +1 -0
- package/src/lib/views/CollectUserDataView/CollectUserDataView.js +1 -0
- package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +1 -0
- package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +1 -0
- package/src/lib/views/CollectUserDataView/UserDataFields/index.cjs +1 -0
- package/src/lib/views/CollectUserDataView/UserDataFields/index.js +1 -0
- package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.cjs +1 -0
- package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.js +1 -0
- package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.cjs +1 -0
- package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.js +1 -0
- package/src/lib/views/EmailUpdate/EmailUpdate.cjs +1 -0
- package/src/lib/views/EmailUpdate/EmailUpdate.js +1 -0
- package/src/lib/views/EmailVerification/EmailVerification.cjs +7 -0
- package/src/lib/views/EmailVerification/EmailVerification.js +8 -1
- package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +1 -0
- package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +1 -0
- package/src/lib/views/LoginWithEmailView/components/ListItemButton/ListItemButton.cjs +1 -0
- package/src/lib/views/LoginWithEmailView/components/ListItemButton/ListItemButton.js +1 -0
- package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.cjs +1 -0
- package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.js +1 -0
- package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.cjs +1 -0
- package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.js +1 -0
- package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +1 -0
- package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +1 -0
- package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs +1 -0
- package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js +1 -0
- package/src/lib/views/NoAccess/NoAccess.cjs +1 -0
- package/src/lib/views/NoAccess/NoAccess.js +1 -0
- package/src/lib/views/NoQrNotInstalledView/NoQrNotInstalledView.cjs +1 -0
- package/src/lib/views/NoQrNotInstalledView/NoQrNotInstalledView.js +1 -0
- package/src/lib/views/NoQrNotInstalledView/WalletHelpLink.cjs +1 -0
- package/src/lib/views/NoQrNotInstalledView/WalletHelpLink.js +1 -0
- package/src/lib/views/PendingConnectView/PendingConnectView.cjs +1 -0
- package/src/lib/views/PendingConnectView/PendingConnectView.js +1 -0
- package/src/lib/views/PendingSignatureView/PendingSignatureView.cjs +1 -0
- package/src/lib/views/PendingSignatureView/PendingSignatureView.js +1 -0
- package/src/lib/views/QrCodeView/QRCode.cjs +1 -0
- package/src/lib/views/QrCodeView/QRCode.js +1 -0
- package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.cjs +1 -0
- package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.js +1 -0
- package/src/lib/views/QrCodeView/QrCodeView.cjs +1 -0
- package/src/lib/views/QrCodeView/QrCodeView.js +1 -0
- package/src/lib/views/SendBalanceView/SendBalanceView.cjs +1 -0
- package/src/lib/views/SendBalanceView/SendBalanceView.js +1 -0
- package/src/lib/views/SocialRedirectView/SocialRedirectView.cjs +1 -0
- package/src/lib/views/SocialRedirectView/SocialRedirectView.js +1 -0
- package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.cjs +1 -0
- package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.js +1 -0
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +1 -0
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +1 -0
- package/src/lib/views/TransactionConfirmationView/hooks/useTransactionData/useTransactionData.cjs +1 -0
- package/src/lib/views/TransactionConfirmationView/hooks/useTransactionData/useTransactionData.js +1 -0
- package/src/lib/views/WalletList/SearchNotFoundMessage/SearchNotFoundMessage.cjs +1 -0
- package/src/lib/views/WalletList/SearchNotFoundMessage/SearchNotFoundMessage.js +1 -0
- package/src/lib/views/WalletList/WalletListItem/WalletListItem.cjs +1 -0
- package/src/lib/views/WalletList/WalletListItem/WalletListItem.js +1 -0
- package/src/lib/views/WalletLockedView/WalletLockedView.cjs +1 -0
- package/src/lib/views/WalletLockedView/WalletLockedView.js +1 -0
- package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.cjs +1 -0
- package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.js +1 -0
- package/src/lib/views/WalletUsedView/WalletUsedView.cjs +1 -0
- package/src/lib/views/WalletUsedView/WalletUsedView.js +1 -0
- package/src/lib/views/viewToComponentMap.cjs +2 -0
- package/src/lib/views/viewToComponentMap.js +2 -0
- package/src/lib/widgets/DynamicBridgeWidget/DynamicBridgeWidget.cjs +6 -5
- package/src/lib/widgets/DynamicBridgeWidget/DynamicBridgeWidget.js +6 -5
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeUserProfile/DynamicBridgeUserProfile.cjs +1 -0
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeUserProfile/DynamicBridgeUserProfile.js +1 -0
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCard/DynamicBridgeWalletCard.cjs +1 -0
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCard/DynamicBridgeWalletCard.js +1 -0
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.cjs +1 -0
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.js +1 -0
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWidgetEmptyCard/DynamicBridgeWidgetEmptyCard.cjs +1 -0
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWidgetEmptyCard/DynamicBridgeWidgetEmptyCard.js +1 -0
- package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.cjs +14 -10
- package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.js +14 -10
- package/src/lib/widgets/DynamicWidget/DynamicWidget.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/DynamicWidget.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/AccountControl/AccountControl.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/AccountControl/AccountControl.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/Balance/Balance.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/Balance/Balance.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/DotsMenu/DotsMenu.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/DotsMenu/DotsMenu.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/DotsMenuDropdown/DotsMenuDropdown.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/DotsMenuDropdown/DotsMenuDropdown.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicUserProfile/DynamicUserProfile.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicUserProfile/DynamicUserProfile.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetDropdown/DynamicWidgetDropdown.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetDropdown/DynamicWidgetDropdown.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetModal/DynamicWidgetModal.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetModal/DynamicWidgetModal.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/EmailConnectorPendingSignModalContent/EmailConnectorPendingSignModalContent.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/EmailConnectorPendingSignModalContent/EmailConnectorPendingSignModalContent.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/EmptyWallets/EmptyWallets.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/EmptyWallets/EmptyWallets.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.js +1 -0
- package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.js +1 -0
- package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/NoQrNotInstalledModalView/NoQrNotInstalledModalView.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/NoQrNotInstalledModalView/NoQrNotInstalledModalView.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PrimaryNotConnectedModal/PrimaryNotConnectedModal.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/PrimaryNotConnectedModal/PrimaryNotConnectedModal.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.js +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.js +1 -0
- package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.js +1 -0
- package/src/lib/widgets/DynamicWidget/views/ProfileView/ProfileView.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/views/ProfileView/ProfileView.js +1 -0
- package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.cjs +1 -0
- package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.js +1 -0
- package/src/lib/widgets/FundingWidget/views/FundWalletView/FundWalletView.cjs +1 -0
- package/src/lib/widgets/FundingWidget/views/FundWalletView/FundWalletView.js +1 -0
|
@@ -98,11 +98,23 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
98
98
|
return Promise.resolve();
|
|
99
99
|
};
|
|
100
100
|
// Updates connected wallet (network and address) and verifies connected wallet connection
|
|
101
|
-
const refreshConnectedWallet = (walletId, walletConnector) => __awaiter(void 0, void 0, void 0, function* () {
|
|
101
|
+
const refreshConnectedWallet = (walletId, walletConnector, shouldCallCallback = false) => __awaiter(void 0, void 0, void 0, function* () {
|
|
102
102
|
if (shouldManuallyReconnectOnRefresh(walletConnector)) {
|
|
103
103
|
yield walletConnector.connect();
|
|
104
104
|
}
|
|
105
105
|
const currentWalletConnectorAddress = yield walletConnector.fetchPublicAddress();
|
|
106
|
+
if (onBeforeConnectSuccessConfirmation && shouldCallCallback) {
|
|
107
|
+
const shouldProceedWithConnection = yield onBeforeConnectSuccessConfirmation({
|
|
108
|
+
address: currentWalletConnectorAddress,
|
|
109
|
+
chain: walletConnector.connectedChain,
|
|
110
|
+
connector: walletConnector,
|
|
111
|
+
});
|
|
112
|
+
if (!shouldProceedWithConnection) {
|
|
113
|
+
logger.info('Connection was not established because onBeforeConnectSuccessConfirmation returned false');
|
|
114
|
+
setShowAuthFlow(false);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
106
118
|
if (!currentWalletConnectorAddress) {
|
|
107
119
|
logger.error('Could not refresh the wallet. The wallet address is not available');
|
|
108
120
|
return;
|
|
@@ -123,7 +135,11 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
123
135
|
throw error;
|
|
124
136
|
}
|
|
125
137
|
if (onBeforeConnectSuccessConfirmation) {
|
|
126
|
-
const shouldProceedWithConnection = yield onBeforeConnectSuccessConfirmation(
|
|
138
|
+
const shouldProceedWithConnection = yield onBeforeConnectSuccessConfirmation({
|
|
139
|
+
address: publicWalletAddress,
|
|
140
|
+
chain: walletConnector.connectedChain,
|
|
141
|
+
connector: walletConnector,
|
|
142
|
+
});
|
|
127
143
|
if (!shouldProceedWithConnection) {
|
|
128
144
|
logger.info('Connection was not established because onBeforeConnectSuccessConfirmation returned false');
|
|
129
145
|
setShowAuthFlow(false);
|
|
@@ -5,8 +5,23 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
6
6
|
var useOnlyConnectedMode = require('../useOnlyConnectedMode/useOnlyConnectedMode.cjs');
|
|
7
7
|
var getUserProfileFields = require('../../functions/getUserProfileFields/getUserProfileFields.cjs');
|
|
8
|
+
require('@dynamic-labs/sdk-api');
|
|
9
|
+
require('../../../shared/logger.cjs');
|
|
10
|
+
require('@dynamic-labs/iconic');
|
|
11
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
12
|
+
require('react/jsx-runtime');
|
|
13
|
+
require('../../../context/ViewContext/ViewContext.cjs');
|
|
14
|
+
require('react');
|
|
15
|
+
require('@dynamic-labs/wallet-book');
|
|
16
|
+
require('@dynamic-labs/utils');
|
|
17
|
+
require('../../constants/colors.cjs');
|
|
18
|
+
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
19
|
+
require('ethers');
|
|
20
|
+
require('../../../shared/consts/index.cjs');
|
|
21
|
+
require('@dynamic-labs/multi-wallet');
|
|
22
|
+
var isSocialKycEnabled = require('../../functions/isSocialKycEnabled/isSocialKycEnabled.cjs');
|
|
8
23
|
|
|
9
|
-
|
|
24
|
+
/* eslint-disable max-len */
|
|
10
25
|
/**
|
|
11
26
|
* A custom React hook that checks if KYC fields are enabled in the project settings or defined in the user profile.
|
|
12
27
|
*
|
|
@@ -21,7 +36,7 @@ const useKYCFlag = () => {
|
|
|
21
36
|
projectSettingsKyc: projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.kyc,
|
|
22
37
|
user,
|
|
23
38
|
});
|
|
24
|
-
return hasAnyKYCFields.length > 0 ||
|
|
39
|
+
return hasAnyKYCFields.length > 0 || isSocialKycEnabled.isSocialKycEnabled(projectSettings);
|
|
25
40
|
};
|
|
26
41
|
|
|
27
42
|
exports.useKYCFlag = useKYCFlag;
|
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
|
|
2
2
|
import { useOnlyConnectedMode } from '../useOnlyConnectedMode/useOnlyConnectedMode.js';
|
|
3
3
|
import { getUserProfileFields } from '../../functions/getUserProfileFields/getUserProfileFields.js';
|
|
4
|
+
import '@dynamic-labs/sdk-api';
|
|
5
|
+
import '../../../shared/logger.js';
|
|
6
|
+
import '@dynamic-labs/iconic';
|
|
7
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
8
|
+
import 'react/jsx-runtime';
|
|
9
|
+
import '../../../context/ViewContext/ViewContext.js';
|
|
10
|
+
import 'react';
|
|
11
|
+
import '@dynamic-labs/wallet-book';
|
|
12
|
+
import '@dynamic-labs/utils';
|
|
13
|
+
import '../../constants/colors.js';
|
|
14
|
+
import '../../../shared/utils/classes/storage/localStorage.js';
|
|
15
|
+
import 'ethers';
|
|
16
|
+
import '../../../shared/consts/index.js';
|
|
17
|
+
import '@dynamic-labs/multi-wallet';
|
|
18
|
+
import { isSocialKycEnabled } from '../../functions/isSocialKycEnabled/isSocialKycEnabled.js';
|
|
4
19
|
|
|
5
|
-
|
|
20
|
+
/* eslint-disable max-len */
|
|
6
21
|
/**
|
|
7
22
|
* A custom React hook that checks if KYC fields are enabled in the project settings or defined in the user profile.
|
|
8
23
|
*
|
|
@@ -17,7 +32,7 @@ const useKYCFlag = () => {
|
|
|
17
32
|
projectSettingsKyc: projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.kyc,
|
|
18
33
|
user,
|
|
19
34
|
});
|
|
20
|
-
return hasAnyKYCFields.length > 0 ||
|
|
35
|
+
return hasAnyKYCFields.length > 0 || isSocialKycEnabled(projectSettings);
|
|
21
36
|
};
|
|
22
37
|
|
|
23
38
|
export { useKYCFlag };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useSocialAccounts } from './useSocialAccounts';
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
8
|
+
var api = require('../../../data/api.cjs');
|
|
9
|
+
var useUpdateUserProfileByJWTCallback = require('../useUpdateUserProfileByJWTCallback/useUpdateUserProfileByJWTCallback.cjs');
|
|
10
|
+
require('@dynamic-labs/sdk-api');
|
|
11
|
+
var logger = require('../../../shared/logger.cjs');
|
|
12
|
+
require('@dynamic-labs/iconic');
|
|
13
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
14
|
+
require('react/jsx-runtime');
|
|
15
|
+
require('../../../context/ViewContext/ViewContext.cjs');
|
|
16
|
+
require('@dynamic-labs/wallet-book');
|
|
17
|
+
require('@dynamic-labs/utils');
|
|
18
|
+
require('../../constants/colors.cjs');
|
|
19
|
+
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
20
|
+
require('ethers');
|
|
21
|
+
require('../../../shared/consts/index.cjs');
|
|
22
|
+
require('@dynamic-labs/multi-wallet');
|
|
23
|
+
var getAuthToken = require('../../functions/getAuthToken/getAuthToken.cjs');
|
|
24
|
+
var index = require('../../functions/getEnabledOAuthProviders/index.cjs');
|
|
25
|
+
var isSocialKycEnabled = require('../../functions/isSocialKycEnabled/isSocialKycEnabled.cjs');
|
|
26
|
+
|
|
27
|
+
const useSocialAccounts = () => {
|
|
28
|
+
var _a;
|
|
29
|
+
const { environmentId, user, projectSettings, onboardingOnlyJwt } = useInternalDynamicContext.useInternalDynamicContext();
|
|
30
|
+
const { updateUserProfileByJWT } = useUpdateUserProfileByJWTCallback.useUpdateUserProfileByJWTCallback();
|
|
31
|
+
const [isProcessing, setIsProcessing] = React.useState(false);
|
|
32
|
+
const [error, setError] = React.useState();
|
|
33
|
+
const userJwt = (_a = getAuthToken.getAuthToken()) !== null && _a !== void 0 ? _a : onboardingOnlyJwt;
|
|
34
|
+
const oauthProviders = index.getEnabledOAuthProviders(projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers);
|
|
35
|
+
const verifiedOAuthCredentialsMap = React.useMemo(() => {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
const verifiedOAuthCredential = (_b = (_a = user === null || user === void 0 ? void 0 : user.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.filter((credential) => credential.format === 'oauth')) !== null && _b !== void 0 ? _b : [];
|
|
38
|
+
return Object.fromEntries(new Map(verifiedOAuthCredential.map((credential) => {
|
|
39
|
+
var _a;
|
|
40
|
+
return [
|
|
41
|
+
(_a = credential.oauthProvider) !== null && _a !== void 0 ? _a : credential.id,
|
|
42
|
+
credential,
|
|
43
|
+
];
|
|
44
|
+
})));
|
|
45
|
+
}, [user === null || user === void 0 ? void 0 : user.verifiedCredentials]);
|
|
46
|
+
const handleError = (message) => {
|
|
47
|
+
logger.logger.error(message);
|
|
48
|
+
setIsProcessing(false);
|
|
49
|
+
setError(message);
|
|
50
|
+
};
|
|
51
|
+
const linkSocialAccount = (provider) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
52
|
+
setError(undefined);
|
|
53
|
+
setIsProcessing(true);
|
|
54
|
+
if (!isSocialKycEnabled.isSocialKycEnabled(projectSettings)) {
|
|
55
|
+
handleError('Social linking is not enabled on the dashboard');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (!provider) {
|
|
59
|
+
handleError('Provider is required');
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const verifiedCredential = verifiedOAuthCredentialsMap[provider];
|
|
63
|
+
if (verifiedCredential) {
|
|
64
|
+
handleError(`Account already linked for provider: ${provider}`);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const oauthProvider = oauthProviders.find((p) => p.provider === provider);
|
|
68
|
+
if (!oauthProvider) {
|
|
69
|
+
handleError(`Provider is not enabled on the dashboard: ${provider}`);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const handleAuthWindowMessage = (event) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
+
var _b, _c, _d;
|
|
74
|
+
if (((_b = event.data) === null || _b === void 0 ? void 0 : _b.type) === 'authorization_response') {
|
|
75
|
+
logger.logger.debug('Message received', { data: event.data });
|
|
76
|
+
}
|
|
77
|
+
if (((_c = event.data) === null || _c === void 0 ? void 0 : _c.type) !== 'authorization_response' ||
|
|
78
|
+
((_d = event.data) === null || _d === void 0 ? void 0 : _d.provider) !== provider) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const { code } = event.data;
|
|
82
|
+
const jwt = yield api.verifyOAuth(environmentId, provider, {
|
|
83
|
+
code,
|
|
84
|
+
}, String(userJwt));
|
|
85
|
+
if (!jwt) {
|
|
86
|
+
handleError(`Failed to link social account: ${provider}`);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
yield updateUserProfileByJWT(jwt);
|
|
90
|
+
setIsProcessing(false);
|
|
91
|
+
});
|
|
92
|
+
window.addEventListener('message', handleAuthWindowMessage);
|
|
93
|
+
const authWindow = window.open(oauthProvider.authorizationUrl, '_blank', 'width=500,height=600');
|
|
94
|
+
const authWindowInterval = setInterval(() => {
|
|
95
|
+
if (authWindow === null || authWindow === void 0 ? void 0 : authWindow.closed) {
|
|
96
|
+
window.removeEventListener('message', handleAuthWindowMessage);
|
|
97
|
+
clearInterval(authWindowInterval);
|
|
98
|
+
setIsProcessing(false);
|
|
99
|
+
}
|
|
100
|
+
}, 1000);
|
|
101
|
+
});
|
|
102
|
+
const unlinkSocialAccount = (provider) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
103
|
+
var _e;
|
|
104
|
+
setError(undefined);
|
|
105
|
+
setIsProcessing(true);
|
|
106
|
+
if (!provider) {
|
|
107
|
+
handleError('Provider is required');
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const verifiedCredential = verifiedOAuthCredentialsMap[provider];
|
|
111
|
+
if (!verifiedCredential) {
|
|
112
|
+
handleError(`No account linked for provider: ${provider}`);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
const jwt = yield api.unlinkOAuth({
|
|
117
|
+
environmentId,
|
|
118
|
+
verifiedCrentialId: (_e = verifiedCredential.id) !== null && _e !== void 0 ? _e : '',
|
|
119
|
+
}, String(userJwt));
|
|
120
|
+
if (!jwt) {
|
|
121
|
+
handleError(`Failed to unlink social account: ${provider} | ${verifiedCredential.id}`);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
yield updateUserProfileByJWT(jwt);
|
|
125
|
+
setIsProcessing(false);
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
handleError(`Failed to unlink social account: ${provider} | ${verifiedCredential.id}`);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
const isLinked = (provider) => Boolean(verifiedOAuthCredentialsMap[provider]);
|
|
132
|
+
const getLinkedAccountInformation = (provider) => {
|
|
133
|
+
const verifiedCredential = verifiedOAuthCredentialsMap[provider];
|
|
134
|
+
if (!verifiedCredential) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const { id, oauthAccountId, oauthAccountPhotos, oauthDisplayName, oauthEmails, oauthProvider, oauthUsername, publicIdentifier, } = verifiedCredential;
|
|
138
|
+
return {
|
|
139
|
+
accountId: oauthAccountId,
|
|
140
|
+
avatar: oauthAccountPhotos === null || oauthAccountPhotos === void 0 ? void 0 : oauthAccountPhotos[0],
|
|
141
|
+
displayName: oauthDisplayName,
|
|
142
|
+
email: oauthEmails === null || oauthEmails === void 0 ? void 0 : oauthEmails[0],
|
|
143
|
+
id,
|
|
144
|
+
provider: oauthProvider,
|
|
145
|
+
publicIdentifier,
|
|
146
|
+
username: oauthUsername,
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
return {
|
|
150
|
+
error,
|
|
151
|
+
getLinkedAccountInformation,
|
|
152
|
+
isLinked,
|
|
153
|
+
isProcessing,
|
|
154
|
+
linkSocialAccount,
|
|
155
|
+
unlinkSocialAccount,
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
exports.useSocialAccounts = useSocialAccounts;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ProviderEnum } from '@dynamic-labs/sdk-api';
|
|
2
|
+
import { SocialAccountInformation } from '@dynamic-labs/types';
|
|
3
|
+
export declare const useSocialAccounts: () => {
|
|
4
|
+
readonly error: string | undefined;
|
|
5
|
+
readonly getLinkedAccountInformation: (provider: ProviderEnum) => SocialAccountInformation | undefined;
|
|
6
|
+
readonly isLinked: (provider: ProviderEnum) => boolean;
|
|
7
|
+
readonly isProcessing: boolean;
|
|
8
|
+
readonly linkSocialAccount: (provider: ProviderEnum) => Promise<void>;
|
|
9
|
+
readonly unlinkSocialAccount: (provider: ProviderEnum) => Promise<void>;
|
|
10
|
+
};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
2
|
+
import { useState, useMemo } from 'react';
|
|
3
|
+
import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
|
|
4
|
+
import { unlinkOAuth, verifyOAuth } from '../../../data/api.js';
|
|
5
|
+
import { useUpdateUserProfileByJWTCallback } from '../useUpdateUserProfileByJWTCallback/useUpdateUserProfileByJWTCallback.js';
|
|
6
|
+
import '@dynamic-labs/sdk-api';
|
|
7
|
+
import { logger } from '../../../shared/logger.js';
|
|
8
|
+
import '@dynamic-labs/iconic';
|
|
9
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
10
|
+
import 'react/jsx-runtime';
|
|
11
|
+
import '../../../context/ViewContext/ViewContext.js';
|
|
12
|
+
import '@dynamic-labs/wallet-book';
|
|
13
|
+
import '@dynamic-labs/utils';
|
|
14
|
+
import '../../constants/colors.js';
|
|
15
|
+
import '../../../shared/utils/classes/storage/localStorage.js';
|
|
16
|
+
import 'ethers';
|
|
17
|
+
import '../../../shared/consts/index.js';
|
|
18
|
+
import '@dynamic-labs/multi-wallet';
|
|
19
|
+
import { getAuthToken } from '../../functions/getAuthToken/getAuthToken.js';
|
|
20
|
+
import { getEnabledOAuthProviders } from '../../functions/getEnabledOAuthProviders/index.js';
|
|
21
|
+
import { isSocialKycEnabled } from '../../functions/isSocialKycEnabled/isSocialKycEnabled.js';
|
|
22
|
+
|
|
23
|
+
const useSocialAccounts = () => {
|
|
24
|
+
var _a;
|
|
25
|
+
const { environmentId, user, projectSettings, onboardingOnlyJwt } = useInternalDynamicContext();
|
|
26
|
+
const { updateUserProfileByJWT } = useUpdateUserProfileByJWTCallback();
|
|
27
|
+
const [isProcessing, setIsProcessing] = useState(false);
|
|
28
|
+
const [error, setError] = useState();
|
|
29
|
+
const userJwt = (_a = getAuthToken()) !== null && _a !== void 0 ? _a : onboardingOnlyJwt;
|
|
30
|
+
const oauthProviders = getEnabledOAuthProviders(projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers);
|
|
31
|
+
const verifiedOAuthCredentialsMap = useMemo(() => {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
const verifiedOAuthCredential = (_b = (_a = user === null || user === void 0 ? void 0 : user.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.filter((credential) => credential.format === 'oauth')) !== null && _b !== void 0 ? _b : [];
|
|
34
|
+
return Object.fromEntries(new Map(verifiedOAuthCredential.map((credential) => {
|
|
35
|
+
var _a;
|
|
36
|
+
return [
|
|
37
|
+
(_a = credential.oauthProvider) !== null && _a !== void 0 ? _a : credential.id,
|
|
38
|
+
credential,
|
|
39
|
+
];
|
|
40
|
+
})));
|
|
41
|
+
}, [user === null || user === void 0 ? void 0 : user.verifiedCredentials]);
|
|
42
|
+
const handleError = (message) => {
|
|
43
|
+
logger.error(message);
|
|
44
|
+
setIsProcessing(false);
|
|
45
|
+
setError(message);
|
|
46
|
+
};
|
|
47
|
+
const linkSocialAccount = (provider) => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
|
+
setError(undefined);
|
|
49
|
+
setIsProcessing(true);
|
|
50
|
+
if (!isSocialKycEnabled(projectSettings)) {
|
|
51
|
+
handleError('Social linking is not enabled on the dashboard');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (!provider) {
|
|
55
|
+
handleError('Provider is required');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const verifiedCredential = verifiedOAuthCredentialsMap[provider];
|
|
59
|
+
if (verifiedCredential) {
|
|
60
|
+
handleError(`Account already linked for provider: ${provider}`);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const oauthProvider = oauthProviders.find((p) => p.provider === provider);
|
|
64
|
+
if (!oauthProvider) {
|
|
65
|
+
handleError(`Provider is not enabled on the dashboard: ${provider}`);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const handleAuthWindowMessage = (event) => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
+
var _b, _c, _d;
|
|
70
|
+
if (((_b = event.data) === null || _b === void 0 ? void 0 : _b.type) === 'authorization_response') {
|
|
71
|
+
logger.debug('Message received', { data: event.data });
|
|
72
|
+
}
|
|
73
|
+
if (((_c = event.data) === null || _c === void 0 ? void 0 : _c.type) !== 'authorization_response' ||
|
|
74
|
+
((_d = event.data) === null || _d === void 0 ? void 0 : _d.provider) !== provider) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const { code } = event.data;
|
|
78
|
+
const jwt = yield verifyOAuth(environmentId, provider, {
|
|
79
|
+
code,
|
|
80
|
+
}, String(userJwt));
|
|
81
|
+
if (!jwt) {
|
|
82
|
+
handleError(`Failed to link social account: ${provider}`);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
yield updateUserProfileByJWT(jwt);
|
|
86
|
+
setIsProcessing(false);
|
|
87
|
+
});
|
|
88
|
+
window.addEventListener('message', handleAuthWindowMessage);
|
|
89
|
+
const authWindow = window.open(oauthProvider.authorizationUrl, '_blank', 'width=500,height=600');
|
|
90
|
+
const authWindowInterval = setInterval(() => {
|
|
91
|
+
if (authWindow === null || authWindow === void 0 ? void 0 : authWindow.closed) {
|
|
92
|
+
window.removeEventListener('message', handleAuthWindowMessage);
|
|
93
|
+
clearInterval(authWindowInterval);
|
|
94
|
+
setIsProcessing(false);
|
|
95
|
+
}
|
|
96
|
+
}, 1000);
|
|
97
|
+
});
|
|
98
|
+
const unlinkSocialAccount = (provider) => __awaiter(void 0, void 0, void 0, function* () {
|
|
99
|
+
var _e;
|
|
100
|
+
setError(undefined);
|
|
101
|
+
setIsProcessing(true);
|
|
102
|
+
if (!provider) {
|
|
103
|
+
handleError('Provider is required');
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const verifiedCredential = verifiedOAuthCredentialsMap[provider];
|
|
107
|
+
if (!verifiedCredential) {
|
|
108
|
+
handleError(`No account linked for provider: ${provider}`);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
const jwt = yield unlinkOAuth({
|
|
113
|
+
environmentId,
|
|
114
|
+
verifiedCrentialId: (_e = verifiedCredential.id) !== null && _e !== void 0 ? _e : '',
|
|
115
|
+
}, String(userJwt));
|
|
116
|
+
if (!jwt) {
|
|
117
|
+
handleError(`Failed to unlink social account: ${provider} | ${verifiedCredential.id}`);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
yield updateUserProfileByJWT(jwt);
|
|
121
|
+
setIsProcessing(false);
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
handleError(`Failed to unlink social account: ${provider} | ${verifiedCredential.id}`);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
const isLinked = (provider) => Boolean(verifiedOAuthCredentialsMap[provider]);
|
|
128
|
+
const getLinkedAccountInformation = (provider) => {
|
|
129
|
+
const verifiedCredential = verifiedOAuthCredentialsMap[provider];
|
|
130
|
+
if (!verifiedCredential) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const { id, oauthAccountId, oauthAccountPhotos, oauthDisplayName, oauthEmails, oauthProvider, oauthUsername, publicIdentifier, } = verifiedCredential;
|
|
134
|
+
return {
|
|
135
|
+
accountId: oauthAccountId,
|
|
136
|
+
avatar: oauthAccountPhotos === null || oauthAccountPhotos === void 0 ? void 0 : oauthAccountPhotos[0],
|
|
137
|
+
displayName: oauthDisplayName,
|
|
138
|
+
email: oauthEmails === null || oauthEmails === void 0 ? void 0 : oauthEmails[0],
|
|
139
|
+
id,
|
|
140
|
+
provider: oauthProvider,
|
|
141
|
+
publicIdentifier,
|
|
142
|
+
username: oauthUsername,
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
return {
|
|
146
|
+
error,
|
|
147
|
+
getLinkedAccountInformation,
|
|
148
|
+
isLinked,
|
|
149
|
+
isProcessing,
|
|
150
|
+
linkSocialAccount,
|
|
151
|
+
unlinkSocialAccount,
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
export { useSocialAccounts };
|
|
@@ -28,12 +28,14 @@ var ErrorContext = require('../../../context/ErrorContext/ErrorContext.cjs');
|
|
|
28
28
|
var getSiweStatement = require('../../functions/getSiweStatement/getSiweStatement.cjs');
|
|
29
29
|
var getWalletProvider = require('../../functions/getWalletProvider/getWalletProvider.cjs');
|
|
30
30
|
var AccessDeniedContext = require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
31
|
+
var AccountExistsContext = require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
31
32
|
|
|
32
33
|
// This logic is used to both verify or link a wallet
|
|
33
34
|
// Since we are re-using the different screens to authenticate or link the wallet.
|
|
34
35
|
// This logic is the best place to determine whether we should verify or verify and link.
|
|
35
36
|
const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, }) => {
|
|
36
37
|
const { setDeniedAddress, setDeniedOauthProvider } = AccessDeniedContext.useAccessDeniedContext();
|
|
38
|
+
const { setExistentAccountData } = AccountExistsContext.useAccountExistsContext();
|
|
37
39
|
const { setView, goToInitialView } = ViewContext.useViewContext();
|
|
38
40
|
const { setErrorMessage, setError } = ErrorContext.useErrorContext();
|
|
39
41
|
const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallet, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, setIsVerificationInProgress, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
@@ -123,6 +125,11 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
|
|
|
123
125
|
setView('no-access');
|
|
124
126
|
return;
|
|
125
127
|
}
|
|
128
|
+
if (e instanceof utils.AccountExistsError) {
|
|
129
|
+
setExistentAccountData(e.errorPayload);
|
|
130
|
+
setView('account-exists');
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
126
133
|
if (connectedWallet && authMode === 'connect-only') {
|
|
127
134
|
throw new utils.DynamicError(e.message);
|
|
128
135
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
2
2
|
import { isSocialWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import { DynamicError, WalletUsedError, ChainalysisError, GateBlockedError, NoAccessError } from '@dynamic-labs/utils';
|
|
3
|
+
import { DynamicError, WalletUsedError, ChainalysisError, GateBlockedError, NoAccessError, AccountExistsError } from '@dynamic-labs/utils';
|
|
4
4
|
import { verifyWallet, linkWallet } from '../../../data/api.js';
|
|
5
5
|
import { storeAuthToken } from '../../functions/storeAuthToken/index.js';
|
|
6
6
|
import '@dynamic-labs/multi-wallet';
|
|
@@ -24,12 +24,14 @@ import { useErrorContext } from '../../../context/ErrorContext/ErrorContext.js';
|
|
|
24
24
|
import { getSiweStatement } from '../../functions/getSiweStatement/getSiweStatement.js';
|
|
25
25
|
import { getWalletProvider } from '../../functions/getWalletProvider/getWalletProvider.js';
|
|
26
26
|
import { useAccessDeniedContext } from '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
27
|
+
import { useAccountExistsContext } from '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
27
28
|
|
|
28
29
|
// This logic is used to both verify or link a wallet
|
|
29
30
|
// Since we are re-using the different screens to authenticate or link the wallet.
|
|
30
31
|
// This logic is the best place to determine whether we should verify or verify and link.
|
|
31
32
|
const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, }) => {
|
|
32
33
|
const { setDeniedAddress, setDeniedOauthProvider } = useAccessDeniedContext();
|
|
34
|
+
const { setExistentAccountData } = useAccountExistsContext();
|
|
33
35
|
const { setView, goToInitialView } = useViewContext();
|
|
34
36
|
const { setErrorMessage, setError } = useErrorContext();
|
|
35
37
|
const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallet, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, setIsVerificationInProgress, } = useInternalDynamicContext();
|
|
@@ -119,6 +121,11 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
|
|
|
119
121
|
setView('no-access');
|
|
120
122
|
return;
|
|
121
123
|
}
|
|
124
|
+
if (e instanceof AccountExistsError) {
|
|
125
|
+
setExistentAccountData(e.errorPayload);
|
|
126
|
+
setView('account-exists');
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
122
129
|
if (connectedWallet && authMode === 'connect-only') {
|
|
123
130
|
throw new DynamicError(e.message);
|
|
124
131
|
}
|
|
@@ -96,7 +96,7 @@ const useWalletEventListeners = ({ computeConnectedStateForWallets, handleLogOut
|
|
|
96
96
|
const [newAddress] = accounts;
|
|
97
97
|
const newWallet = secondaryWallets.find((wallet) => walletConnectorCore.isSameAddress(wallet.address, newAddress, wallet.chain));
|
|
98
98
|
if (authMode === 'connect-only') {
|
|
99
|
-
refreshConnectedWallet(primaryWallet.id, primaryWallet.connector);
|
|
99
|
+
refreshConnectedWallet(primaryWallet.id, primaryWallet.connector, true);
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
102
|
if (walletConnectorCore.isSameAddress(newAddress, primaryWallet.address, primaryWallet.chain)) {
|
|
@@ -160,7 +160,7 @@ const useWalletEventListeners = ({ computeConnectedStateForWallets, handleLogOut
|
|
|
160
160
|
const secondaryListeners = {
|
|
161
161
|
onAccountChange: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
162
162
|
if (authMode === 'connect-only' && secondaryWallets.length) {
|
|
163
|
-
refreshConnectedWallet(secondaryWallets[0].id, secondaryWallets[0].connector);
|
|
163
|
+
refreshConnectedWallet(secondaryWallets[0].id, secondaryWallets[0].connector, true);
|
|
164
164
|
return;
|
|
165
165
|
}
|
|
166
166
|
if (multiWalletWidgetState === 'awaiting_account_switch') {
|
|
@@ -17,7 +17,7 @@ export type UseWalletEventListenersArgs = {
|
|
|
17
17
|
setSelectedWalletWithAction(walletWithAction: WalletWithAction | null): void;
|
|
18
18
|
user: UserProfile | undefined;
|
|
19
19
|
authMode: AuthModeType;
|
|
20
|
-
refreshConnectedWallet: (walletId: string, walletConnector: WalletConnector) => Promise<void>;
|
|
20
|
+
refreshConnectedWallet: (walletId: string, walletConnector: WalletConnector, shouldCallCallback?: boolean) => Promise<void>;
|
|
21
21
|
};
|
|
22
22
|
export declare const useWalletEventListeners: ({ computeConnectedStateForWallets, handleLogOut, multiWallet, multiWalletWidgetState, primaryWallet, secondaryWallets, selectedWalletConnector, selectedWalletWithAction, setSelectedWalletConnector, setSelectedWalletWithAction, setMultiWalletWidgetState, user, setPrimaryWalletId, authMode, refreshConnectedWallet, }: UseWalletEventListenersArgs) => {
|
|
23
23
|
loadingNetwork: boolean;
|
|
@@ -92,7 +92,7 @@ const useWalletEventListeners = ({ computeConnectedStateForWallets, handleLogOut
|
|
|
92
92
|
const [newAddress] = accounts;
|
|
93
93
|
const newWallet = secondaryWallets.find((wallet) => isSameAddress(wallet.address, newAddress, wallet.chain));
|
|
94
94
|
if (authMode === 'connect-only') {
|
|
95
|
-
refreshConnectedWallet(primaryWallet.id, primaryWallet.connector);
|
|
95
|
+
refreshConnectedWallet(primaryWallet.id, primaryWallet.connector, true);
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
98
|
if (isSameAddress(newAddress, primaryWallet.address, primaryWallet.chain)) {
|
|
@@ -156,7 +156,7 @@ const useWalletEventListeners = ({ computeConnectedStateForWallets, handleLogOut
|
|
|
156
156
|
const secondaryListeners = {
|
|
157
157
|
onAccountChange: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
158
158
|
if (authMode === 'connect-only' && secondaryWallets.length) {
|
|
159
|
-
refreshConnectedWallet(secondaryWallets[0].id, secondaryWallets[0].connector);
|
|
159
|
+
refreshConnectedWallet(secondaryWallets[0].id, secondaryWallets[0].connector, true);
|
|
160
160
|
return;
|
|
161
161
|
}
|
|
162
162
|
if (multiWalletWidgetState === 'awaiting_account_switch') {
|
|
@@ -25,6 +25,7 @@ var isSelectedWalletAlreadyConnected = require('../../functions/isSelectedWallet
|
|
|
25
25
|
var useConnectAndSign = require('../authenticationHooks/useConnectAndSign/useConnectAndSign.cjs');
|
|
26
26
|
require('../../../config/ApiEndpoint.cjs');
|
|
27
27
|
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
28
|
+
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
28
29
|
var useConnectAndSignSplitSteps = require('../authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs');
|
|
29
30
|
|
|
30
31
|
const useWalletItemActions = () => {
|
|
@@ -21,6 +21,7 @@ import { isSelectedWalletAlreadyConnected } from '../../functions/isSelectedWall
|
|
|
21
21
|
import { useConnectAndSign } from '../authenticationHooks/useConnectAndSign/useConnectAndSign.js';
|
|
22
22
|
import '../../../config/ApiEndpoint.js';
|
|
23
23
|
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
24
|
+
import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
24
25
|
import { useConnectAndSignSplitSteps } from '../authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js';
|
|
25
26
|
|
|
26
27
|
const useWalletItemActions = () => {
|
|
@@ -32,6 +32,7 @@ require('@dynamic-labs/rpc-providers');
|
|
|
32
32
|
require('../useWallets/utils/verifyMagicIsSetup/verifyMagicIsSetup.cjs');
|
|
33
33
|
require('../../../context/ErrorContext/ErrorContext.cjs');
|
|
34
34
|
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
35
|
+
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
35
36
|
var useConfirmationModal = require('../useConfirmationModal/useConfirmationModal.cjs');
|
|
36
37
|
require('../../../context/MockContext/MockContext.cjs');
|
|
37
38
|
require('../../../context/CaptchaContext/CaptchaContext.cjs');
|
|
@@ -28,6 +28,7 @@ import '@dynamic-labs/rpc-providers';
|
|
|
28
28
|
import '../useWallets/utils/verifyMagicIsSetup/verifyMagicIsSetup.js';
|
|
29
29
|
import '../../../context/ErrorContext/ErrorContext.js';
|
|
30
30
|
import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
31
|
+
import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
31
32
|
import { useConfirmationModal } from '../useConfirmationModal/useConfirmationModal.js';
|
|
32
33
|
import '../../../context/MockContext/MockContext.js';
|
|
33
34
|
import '../../../context/CaptchaContext/CaptchaContext.js';
|