@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.
Files changed (290) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +8 -8
  5. package/src/index.cjs +3 -0
  6. package/src/index.d.ts +2 -1
  7. package/src/index.js +2 -0
  8. package/src/lib/Main.cjs +3 -0
  9. package/src/lib/Main.js +3 -0
  10. package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.cjs +1 -0
  11. package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.js +1 -0
  12. package/src/lib/components/AnimatePresence/AnimatePresence.cjs +1 -0
  13. package/src/lib/components/AnimatePresence/AnimatePresence.js +1 -0
  14. package/src/lib/components/AuthProviderIcon/AuthProviderIcon.cjs +1 -0
  15. package/src/lib/components/AuthProviderIcon/AuthProviderIcon.js +1 -0
  16. package/src/lib/components/Divider/Divider.cjs +1 -0
  17. package/src/lib/components/Divider/Divider.js +1 -0
  18. package/src/lib/components/MenuList/Dropdown/Dropdown.cjs +1 -0
  19. package/src/lib/components/MenuList/Dropdown/Dropdown.js +1 -0
  20. package/src/lib/components/Modal/Modal.cjs +1 -0
  21. package/src/lib/components/Modal/Modal.js +1 -0
  22. package/src/lib/components/NetworkPicker/NetworkPicker.cjs +1 -0
  23. package/src/lib/components/NetworkPicker/NetworkPicker.js +1 -0
  24. package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.cjs +1 -0
  25. package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.js +1 -0
  26. package/src/lib/components/NetworkPicker/components/Network/Network.cjs +1 -0
  27. package/src/lib/components/NetworkPicker/components/Network/Network.js +1 -0
  28. package/src/lib/components/NetworkPicker/components/NonNetworkSwitchingSupportedControl/NonNetworkSwitchingSupportedControl.cjs +1 -0
  29. package/src/lib/components/NetworkPicker/components/NonNetworkSwitchingSupportedControl/NonNetworkSwitchingSupportedControl.js +1 -0
  30. package/src/lib/components/OTPVerificationView/OTPVerificationView.cjs +1 -0
  31. package/src/lib/components/OTPVerificationView/OTPVerificationView.js +1 -0
  32. package/src/lib/components/OverlayCard/OverlayCard.cjs +1 -0
  33. package/src/lib/components/OverlayCard/OverlayCard.js +1 -0
  34. package/src/lib/components/Popper/PopperContext/PopperContext.js +1 -1
  35. package/src/lib/components/Portal/Portal.cjs +1 -0
  36. package/src/lib/components/Portal/Portal.js +1 -0
  37. package/src/lib/components/Tooltip/Tooltip.cjs +1 -0
  38. package/src/lib/components/Tooltip/Tooltip.js +1 -0
  39. package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.cjs +1 -0
  40. package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.js +1 -0
  41. package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.cjs +1 -0
  42. package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.js +1 -0
  43. package/src/lib/components/UserAddress/UserAddress.cjs +1 -0
  44. package/src/lib/components/UserAddress/UserAddress.js +1 -0
  45. package/src/lib/components/UserProfile/UserProfile.cjs +6 -14
  46. package/src/lib/components/UserProfile/UserProfile.js +6 -14
  47. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.cjs +1 -0
  48. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.js +1 -0
  49. package/src/lib/components/UserProfile/parts/UserProfileSection/UserProfileSection.cjs +1 -0
  50. package/src/lib/components/UserProfile/parts/UserProfileSection/UserProfileSection.js +1 -0
  51. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.cjs +13 -64
  52. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.d.ts +2 -4
  53. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.js +13 -64
  54. package/src/lib/context/AccountExistsContext/AccountExistsContext.cjs +27 -0
  55. package/src/lib/context/AccountExistsContext/AccountExistsContext.d.ts +17 -0
  56. package/src/lib/context/AccountExistsContext/AccountExistsContext.js +21 -0
  57. package/src/lib/context/AccountExistsContext/index.d.ts +1 -0
  58. package/src/lib/context/DynamicContext/DynamicContext.cjs +4 -5
  59. package/src/lib/context/DynamicContext/DynamicContext.js +5 -6
  60. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerAuthFlowCallbacks.cjs +1 -0
  61. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerAuthFlowCallbacks.js +1 -0
  62. package/src/lib/context/MockContext/MockContext.cjs +36 -2
  63. package/src/lib/context/MockContext/MockContext.d.ts +1 -1
  64. package/src/lib/context/MockContext/MockContext.js +36 -2
  65. package/src/lib/context/MockContext/constants/index.cjs +64 -0
  66. package/src/lib/context/MockContext/constants/index.d.ts +2 -0
  67. package/src/lib/context/MockContext/constants/index.js +60 -0
  68. package/src/lib/context/QrCodeContext/QrCodeContext.cjs +1 -0
  69. package/src/lib/context/QrCodeContext/QrCodeContext.js +1 -0
  70. package/src/lib/context/SendBalanceContext/SendBalanceContext.cjs +1 -0
  71. package/src/lib/context/SendBalanceContext/SendBalanceContext.js +1 -0
  72. package/src/lib/context/ViewContext/ViewContext.d.ts +1 -1
  73. package/src/lib/context/WalletContext/WalletContext.cjs +1 -0
  74. package/src/lib/context/WalletContext/WalletContext.js +1 -0
  75. package/src/lib/data/api.cjs +6 -0
  76. package/src/lib/data/api.js +7 -1
  77. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.cjs +1 -0
  78. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.js +1 -0
  79. package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +3 -0
  80. package/src/lib/layout/DynamicAuthLayout/Header/header.js +3 -0
  81. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.cjs +1 -0
  82. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.js +1 -0
  83. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/Item/Item.cjs +1 -0
  84. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/Item/Item.js +1 -0
  85. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.cjs +1 -0
  86. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.js +1 -0
  87. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.cjs +1 -0
  88. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.js +1 -0
  89. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.cjs +1 -0
  90. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.js +1 -0
  91. package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.cjs +1 -0
  92. package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.js +1 -0
  93. package/src/lib/layout/DynamicAuthLayout/WalletProgressStepper/WalletProgressStepper.cjs +1 -0
  94. package/src/lib/layout/DynamicAuthLayout/WalletProgressStepper/WalletProgressStepper.js +1 -0
  95. package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.cjs +1 -0
  96. package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.js +1 -0
  97. package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.cjs +1 -0
  98. package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.js +1 -0
  99. package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.cjs +1 -0
  100. package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.js +1 -0
  101. package/src/lib/modals/SendBalanceModal/SendBalanceModal.cjs +1 -0
  102. package/src/lib/modals/SendBalanceModal/SendBalanceModal.js +1 -0
  103. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +1 -0
  104. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +1 -0
  105. package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.cjs +1 -0
  106. package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.js +1 -0
  107. package/src/lib/shared/types/index.d.ts +1 -1
  108. package/src/lib/styles/index.shadow.cjs +1 -1
  109. package/src/lib/styles/index.shadow.js +1 -1
  110. package/src/lib/utils/functions/getDynamicLayoutData/getDynamicLayoutData.cjs +1 -0
  111. package/src/lib/utils/functions/getDynamicLayoutData/getDynamicLayoutData.js +1 -0
  112. package/src/lib/utils/functions/index.d.ts +1 -0
  113. package/src/lib/utils/functions/isSocialKycEnabled/index.d.ts +1 -0
  114. package/src/lib/utils/functions/isSocialKycEnabled/isSocialKycEnabled.cjs +7 -0
  115. package/src/lib/utils/functions/isSocialKycEnabled/isSocialKycEnabled.d.ts +2 -0
  116. package/src/lib/utils/functions/isSocialKycEnabled/isSocialKycEnabled.js +3 -0
  117. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +7 -1
  118. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +7 -1
  119. package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.cjs +1 -0
  120. package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.js +1 -0
  121. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +2 -1
  122. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +2 -1
  123. package/src/lib/utils/hooks/useAuthenticateConnectedUser/useAuthenticateConnectedUser.cjs +1 -0
  124. package/src/lib/utils/hooks/useAuthenticateConnectedUser/useAuthenticateConnectedUser.js +1 -0
  125. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +18 -2
  126. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +1 -1
  127. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +18 -2
  128. package/src/lib/utils/hooks/useKYCFlag/useKYCFlag.cjs +17 -2
  129. package/src/lib/utils/hooks/useKYCFlag/useKYCFlag.js +17 -2
  130. package/src/lib/utils/hooks/useSocialAccounts/index.d.ts +1 -0
  131. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +159 -0
  132. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.d.ts +10 -0
  133. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +155 -0
  134. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +7 -0
  135. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +8 -1
  136. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +2 -2
  137. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +1 -1
  138. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +2 -2
  139. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +1 -0
  140. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.js +1 -0
  141. package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.cjs +1 -0
  142. package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.js +1 -0
  143. package/src/lib/views/AccountExistsView/AccountExistsView.cjs +73 -0
  144. package/src/lib/views/AccountExistsView/AccountExistsView.d.ts +2 -0
  145. package/src/lib/views/AccountExistsView/AccountExistsView.js +69 -0
  146. package/src/lib/views/AccountExistsView/index.d.ts +1 -0
  147. package/src/lib/views/CollectUserDataView/CollectUserDataView.cjs +1 -0
  148. package/src/lib/views/CollectUserDataView/CollectUserDataView.js +1 -0
  149. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +1 -0
  150. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +1 -0
  151. package/src/lib/views/CollectUserDataView/UserDataFields/index.cjs +1 -0
  152. package/src/lib/views/CollectUserDataView/UserDataFields/index.js +1 -0
  153. package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.cjs +1 -0
  154. package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.js +1 -0
  155. package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.cjs +1 -0
  156. package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.js +1 -0
  157. package/src/lib/views/EmailUpdate/EmailUpdate.cjs +1 -0
  158. package/src/lib/views/EmailUpdate/EmailUpdate.js +1 -0
  159. package/src/lib/views/EmailVerification/EmailVerification.cjs +7 -0
  160. package/src/lib/views/EmailVerification/EmailVerification.js +8 -1
  161. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +1 -0
  162. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +1 -0
  163. package/src/lib/views/LoginWithEmailView/components/ListItemButton/ListItemButton.cjs +1 -0
  164. package/src/lib/views/LoginWithEmailView/components/ListItemButton/ListItemButton.js +1 -0
  165. package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.cjs +1 -0
  166. package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.js +1 -0
  167. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.cjs +1 -0
  168. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.js +1 -0
  169. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +1 -0
  170. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +1 -0
  171. package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs +1 -0
  172. package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js +1 -0
  173. package/src/lib/views/NoAccess/NoAccess.cjs +1 -0
  174. package/src/lib/views/NoAccess/NoAccess.js +1 -0
  175. package/src/lib/views/NoQrNotInstalledView/NoQrNotInstalledView.cjs +1 -0
  176. package/src/lib/views/NoQrNotInstalledView/NoQrNotInstalledView.js +1 -0
  177. package/src/lib/views/NoQrNotInstalledView/WalletHelpLink.cjs +1 -0
  178. package/src/lib/views/NoQrNotInstalledView/WalletHelpLink.js +1 -0
  179. package/src/lib/views/PendingConnectView/PendingConnectView.cjs +1 -0
  180. package/src/lib/views/PendingConnectView/PendingConnectView.js +1 -0
  181. package/src/lib/views/PendingSignatureView/PendingSignatureView.cjs +1 -0
  182. package/src/lib/views/PendingSignatureView/PendingSignatureView.js +1 -0
  183. package/src/lib/views/QrCodeView/QRCode.cjs +1 -0
  184. package/src/lib/views/QrCodeView/QRCode.js +1 -0
  185. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.cjs +1 -0
  186. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.js +1 -0
  187. package/src/lib/views/QrCodeView/QrCodeView.cjs +1 -0
  188. package/src/lib/views/QrCodeView/QrCodeView.js +1 -0
  189. package/src/lib/views/SendBalanceView/SendBalanceView.cjs +1 -0
  190. package/src/lib/views/SendBalanceView/SendBalanceView.js +1 -0
  191. package/src/lib/views/SocialRedirectView/SocialRedirectView.cjs +1 -0
  192. package/src/lib/views/SocialRedirectView/SocialRedirectView.js +1 -0
  193. package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.cjs +1 -0
  194. package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.js +1 -0
  195. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +1 -0
  196. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +1 -0
  197. package/src/lib/views/TransactionConfirmationView/hooks/useTransactionData/useTransactionData.cjs +1 -0
  198. package/src/lib/views/TransactionConfirmationView/hooks/useTransactionData/useTransactionData.js +1 -0
  199. package/src/lib/views/WalletList/SearchNotFoundMessage/SearchNotFoundMessage.cjs +1 -0
  200. package/src/lib/views/WalletList/SearchNotFoundMessage/SearchNotFoundMessage.js +1 -0
  201. package/src/lib/views/WalletList/WalletListItem/WalletListItem.cjs +1 -0
  202. package/src/lib/views/WalletList/WalletListItem/WalletListItem.js +1 -0
  203. package/src/lib/views/WalletLockedView/WalletLockedView.cjs +1 -0
  204. package/src/lib/views/WalletLockedView/WalletLockedView.js +1 -0
  205. package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.cjs +1 -0
  206. package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.js +1 -0
  207. package/src/lib/views/WalletUsedView/WalletUsedView.cjs +1 -0
  208. package/src/lib/views/WalletUsedView/WalletUsedView.js +1 -0
  209. package/src/lib/views/viewToComponentMap.cjs +2 -0
  210. package/src/lib/views/viewToComponentMap.js +2 -0
  211. package/src/lib/widgets/DynamicBridgeWidget/DynamicBridgeWidget.cjs +6 -5
  212. package/src/lib/widgets/DynamicBridgeWidget/DynamicBridgeWidget.js +6 -5
  213. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeUserProfile/DynamicBridgeUserProfile.cjs +1 -0
  214. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeUserProfile/DynamicBridgeUserProfile.js +1 -0
  215. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCard/DynamicBridgeWalletCard.cjs +1 -0
  216. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCard/DynamicBridgeWalletCard.js +1 -0
  217. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.cjs +1 -0
  218. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.js +1 -0
  219. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWidgetEmptyCard/DynamicBridgeWidgetEmptyCard.cjs +1 -0
  220. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWidgetEmptyCard/DynamicBridgeWidgetEmptyCard.js +1 -0
  221. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.cjs +14 -10
  222. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.js +14 -10
  223. package/src/lib/widgets/DynamicWidget/DynamicWidget.cjs +1 -0
  224. package/src/lib/widgets/DynamicWidget/DynamicWidget.js +1 -0
  225. package/src/lib/widgets/DynamicWidget/components/AccountControl/AccountControl.cjs +1 -0
  226. package/src/lib/widgets/DynamicWidget/components/AccountControl/AccountControl.js +1 -0
  227. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +1 -0
  228. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +1 -0
  229. package/src/lib/widgets/DynamicWidget/components/Balance/Balance.cjs +1 -0
  230. package/src/lib/widgets/DynamicWidget/components/Balance/Balance.js +1 -0
  231. package/src/lib/widgets/DynamicWidget/components/DotsMenu/DotsMenu.cjs +1 -0
  232. package/src/lib/widgets/DynamicWidget/components/DotsMenu/DotsMenu.js +1 -0
  233. package/src/lib/widgets/DynamicWidget/components/DotsMenuDropdown/DotsMenuDropdown.cjs +1 -0
  234. package/src/lib/widgets/DynamicWidget/components/DotsMenuDropdown/DotsMenuDropdown.js +1 -0
  235. package/src/lib/widgets/DynamicWidget/components/DynamicUserProfile/DynamicUserProfile.cjs +1 -0
  236. package/src/lib/widgets/DynamicWidget/components/DynamicUserProfile/DynamicUserProfile.js +1 -0
  237. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs +1 -0
  238. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js +1 -0
  239. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +1 -0
  240. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +1 -0
  241. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetDropdown/DynamicWidgetDropdown.cjs +1 -0
  242. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetDropdown/DynamicWidgetDropdown.js +1 -0
  243. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetModal/DynamicWidgetModal.cjs +1 -0
  244. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetModal/DynamicWidgetModal.js +1 -0
  245. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.cjs +1 -0
  246. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.js +1 -0
  247. package/src/lib/widgets/DynamicWidget/components/EmailConnectorPendingSignModalContent/EmailConnectorPendingSignModalContent.cjs +1 -0
  248. package/src/lib/widgets/DynamicWidget/components/EmailConnectorPendingSignModalContent/EmailConnectorPendingSignModalContent.js +1 -0
  249. package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.cjs +1 -0
  250. package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.js +1 -0
  251. package/src/lib/widgets/DynamicWidget/components/EmptyWallets/EmptyWallets.cjs +1 -0
  252. package/src/lib/widgets/DynamicWidget/components/EmptyWallets/EmptyWallets.js +1 -0
  253. package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.cjs +1 -0
  254. package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.js +1 -0
  255. package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.cjs +1 -0
  256. package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.js +1 -0
  257. package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.cjs +1 -0
  258. package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.js +1 -0
  259. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +1 -0
  260. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +1 -0
  261. package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.cjs +1 -0
  262. package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.js +1 -0
  263. package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.cjs +1 -0
  264. package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.js +1 -0
  265. package/src/lib/widgets/DynamicWidget/prompts/NoQrNotInstalledModalView/NoQrNotInstalledModalView.cjs +1 -0
  266. package/src/lib/widgets/DynamicWidget/prompts/NoQrNotInstalledModalView/NoQrNotInstalledModalView.js +1 -0
  267. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.cjs +1 -0
  268. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.js +1 -0
  269. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.cjs +1 -0
  270. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.js +1 -0
  271. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.cjs +1 -0
  272. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.js +1 -0
  273. package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.cjs +1 -0
  274. package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.js +1 -0
  275. package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.cjs +1 -0
  276. package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.js +1 -0
  277. package/src/lib/widgets/DynamicWidget/prompts/PrimaryNotConnectedModal/PrimaryNotConnectedModal.cjs +1 -0
  278. package/src/lib/widgets/DynamicWidget/prompts/PrimaryNotConnectedModal/PrimaryNotConnectedModal.js +1 -0
  279. package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.cjs +1 -0
  280. package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.js +1 -0
  281. package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.cjs +1 -0
  282. package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.js +1 -0
  283. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.cjs +1 -0
  284. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.js +1 -0
  285. package/src/lib/widgets/DynamicWidget/views/ProfileView/ProfileView.cjs +1 -0
  286. package/src/lib/widgets/DynamicWidget/views/ProfileView/ProfileView.js +1 -0
  287. package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.cjs +1 -0
  288. package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.js +1 -0
  289. package/src/lib/widgets/FundingWidget/views/FundWalletView/FundWalletView.cjs +1 -0
  290. 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(publicWalletAddress);
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
- const isSocialEnabled = (kyc = []) => { var _a; return Boolean((_a = kyc.find(({ name }) => name === 'social')) === null || _a === void 0 ? void 0 : _a.enabled); };
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 || isSocialEnabled(projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.kyc);
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
- const isSocialEnabled = (kyc = []) => { var _a; return Boolean((_a = kyc.find(({ name }) => name === 'social')) === null || _a === void 0 ? void 0 : _a.enabled); };
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 || isSocialEnabled(projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.kyc);
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';