@dynamic-labs/sdk-react-core 0.18.0-RC.16 → 0.18.0-RC.17

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 (355) hide show
  1. package/CHANGELOG.md +24 -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.js +2 -0
  7. package/src/lib/Main.cjs +1 -0
  8. package/src/lib/Main.js +1 -0
  9. package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.cjs +1 -0
  10. package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.js +1 -0
  11. package/src/lib/components/AnimatePresence/AnimatePresence.cjs +1 -0
  12. package/src/lib/components/AnimatePresence/AnimatePresence.js +1 -0
  13. package/src/lib/components/AuthProviderIcon/AuthProviderIcon.cjs +1 -0
  14. package/src/lib/components/AuthProviderIcon/AuthProviderIcon.js +1 -0
  15. package/src/lib/components/Button/Button.cjs +12 -4
  16. package/src/lib/components/Button/Button.d.ts +3 -2
  17. package/src/lib/components/Button/Button.js +12 -4
  18. package/src/lib/components/ChainCard/ChainCard.cjs +1 -1
  19. package/src/lib/components/ChainCard/ChainCard.js +1 -1
  20. package/src/lib/components/Divider/Divider.cjs +1 -0
  21. package/src/lib/components/Divider/Divider.js +1 -0
  22. package/src/lib/components/IconWithSpinner/IconWithSpinner.cjs +2 -2
  23. package/src/lib/components/IconWithSpinner/IconWithSpinner.js +2 -2
  24. package/src/lib/components/LegacySafariCssOverrides/LegacySafariCssOverrides.cjs +9 -0
  25. package/src/lib/components/LegacySafariCssOverrides/LegacySafariCssOverrides.d.ts +2 -0
  26. package/src/lib/components/LegacySafariCssOverrides/LegacySafariCssOverrides.js +5 -0
  27. package/src/lib/components/LegacySafariCssOverrides/index.d.ts +1 -0
  28. package/src/lib/components/MenuList/Dropdown/Dropdown.cjs +85 -0
  29. package/src/lib/components/MenuList/Dropdown/Dropdown.d.ts +16 -0
  30. package/src/lib/components/MenuList/Dropdown/Dropdown.js +81 -0
  31. package/src/lib/components/MenuList/Dropdown/index.d.ts +1 -0
  32. package/src/lib/components/MenuList/MenuList/MenuList.cjs +34 -0
  33. package/src/lib/components/MenuList/MenuList/MenuList.d.ts +15 -0
  34. package/src/lib/components/MenuList/MenuList/MenuList.js +30 -0
  35. package/src/lib/components/MenuList/MenuList/index.d.ts +1 -0
  36. package/src/lib/components/MenuList/index.d.ts +1 -0
  37. package/src/lib/components/MenuList/utils/index.d.ts +1 -0
  38. package/src/lib/components/{Popper → MenuList}/utils/watchToScrollInHierarchy/watchToScrollInHierarchy.cjs +6 -1
  39. package/src/lib/components/MenuList/utils/watchToScrollInHierarchy/watchToScrollInHierarchy.d.ts +5 -0
  40. package/src/lib/components/{Popper → MenuList}/utils/watchToScrollInHierarchy/watchToScrollInHierarchy.js +6 -1
  41. package/src/lib/components/Modal/Modal.cjs +1 -0
  42. package/src/lib/components/Modal/Modal.js +1 -0
  43. package/src/lib/components/NetworkPicker/NetworkPicker.cjs +9 -12
  44. package/src/lib/components/NetworkPicker/NetworkPicker.js +9 -12
  45. package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.cjs +1 -0
  46. package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.js +1 -0
  47. package/src/lib/components/NetworkPicker/components/Network/Network.cjs +1 -0
  48. package/src/lib/components/NetworkPicker/components/Network/Network.js +1 -0
  49. package/src/lib/components/NetworkPicker/components/NonNetworkSwitchingSupportedControl/NonNetworkSwitchingSupportedControl.cjs +1 -0
  50. package/src/lib/components/NetworkPicker/components/NonNetworkSwitchingSupportedControl/NonNetworkSwitchingSupportedControl.js +1 -0
  51. package/src/lib/components/OTPVerificationView/OTPVerificationView.cjs +1 -0
  52. package/src/lib/components/OTPVerificationView/OTPVerificationView.js +1 -0
  53. package/src/lib/components/OverlayCard/OverlayCard.cjs +10 -11
  54. package/src/lib/components/OverlayCard/OverlayCard.d.ts +4 -2
  55. package/src/lib/components/OverlayCard/OverlayCard.js +11 -11
  56. package/src/lib/components/Popper/Popper/Popper.cjs +12 -12
  57. package/src/lib/components/Popper/Popper/Popper.d.ts +7 -4
  58. package/src/lib/components/Popper/Popper/Popper.js +12 -12
  59. package/src/lib/components/Popper/PopperContent/PopperContent.cjs +1 -1
  60. package/src/lib/components/Popper/PopperContent/PopperContent.d.ts +2 -1
  61. package/src/lib/components/Popper/PopperContent/PopperContent.js +1 -1
  62. package/src/lib/components/Popper/utils/getChildPosition/getChildPosition.cjs +1 -0
  63. package/src/lib/components/Popper/utils/getChildPosition/getChildPosition.d.ts +1 -0
  64. package/src/lib/components/Popper/utils/getChildPosition/getChildPosition.js +1 -0
  65. package/src/lib/components/Popper/utils/index.d.ts +0 -1
  66. package/src/lib/components/Portal/Portal.cjs +3 -2
  67. package/src/lib/components/Portal/Portal.js +3 -2
  68. package/src/lib/components/ShadowDOM/ShadowDOM.cjs +4 -2
  69. package/src/lib/components/ShadowDOM/ShadowDOM.js +4 -2
  70. package/src/lib/components/Tooltip/Tooltip.cjs +1 -0
  71. package/src/lib/components/Tooltip/Tooltip.js +1 -0
  72. package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.cjs +1 -0
  73. package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.js +1 -0
  74. package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.cjs +1 -0
  75. package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.js +1 -0
  76. package/src/lib/components/UserAddress/UserAddress.cjs +1 -0
  77. package/src/lib/components/UserAddress/UserAddress.js +1 -0
  78. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.cjs +1 -0
  79. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.js +1 -0
  80. package/src/lib/components/UserProfile/parts/UserProfileSection/UserProfileSection.cjs +1 -0
  81. package/src/lib/components/UserProfile/parts/UserProfileSection/UserProfileSection.js +1 -0
  82. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.cjs +1 -0
  83. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.js +1 -0
  84. package/src/lib/components/index.d.ts +1 -0
  85. package/src/lib/context/DynamicContext/DynamicContext.cjs +80 -48
  86. package/src/lib/context/DynamicContext/DynamicContext.d.ts +7 -134
  87. package/src/lib/context/DynamicContext/DynamicContext.js +81 -49
  88. package/src/lib/context/DynamicContext/types/index.d.ts +144 -0
  89. package/src/lib/context/DynamicContext/useCustomerCallbacks/types.d.ts +5 -1
  90. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerAuthFlowCallbacks.cjs +1 -0
  91. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerAuthFlowCallbacks.js +1 -0
  92. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +9 -3
  93. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.d.ts +2 -2
  94. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +9 -3
  95. package/src/lib/context/DynamicContext/useCustomerCallbacks/utils/disableAuthVerificationFlag/disableAuthVerificationFlag.cjs +27 -0
  96. package/src/lib/context/DynamicContext/useCustomerCallbacks/utils/disableAuthVerificationFlag/disableAuthVerificationFlag.d.ts +3 -0
  97. package/src/lib/context/DynamicContext/useCustomerCallbacks/utils/disableAuthVerificationFlag/disableAuthVerificationFlag.js +23 -0
  98. package/src/lib/context/DynamicContext/useCustomerCallbacks/utils/disableAuthVerificationFlag/index.d.ts +1 -0
  99. package/src/lib/context/DynamicContext/useCustomerCallbacks/utils/index.d.ts +1 -0
  100. package/src/lib/context/DynamicContext/useDynamicContext.cjs +5 -1
  101. package/src/lib/context/DynamicContext/useDynamicContext.d.ts +4 -2
  102. package/src/lib/context/DynamicContext/useDynamicContext.js +5 -1
  103. package/src/lib/context/DynamicContext/useInternalDynamicContext.d.ts +1 -1
  104. package/src/lib/context/QrCodeContext/QrCodeContext.cjs +1 -0
  105. package/src/lib/context/QrCodeContext/QrCodeContext.js +1 -0
  106. package/src/lib/context/SendBalanceContext/SendBalanceContext.cjs +1 -0
  107. package/src/lib/context/SendBalanceContext/SendBalanceContext.js +1 -0
  108. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +2 -1
  109. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +2 -1
  110. package/src/lib/context/WalletContext/WalletContext.cjs +3 -3
  111. package/src/lib/context/WalletContext/WalletContext.d.ts +1 -3
  112. package/src/lib/context/WalletContext/WalletContext.js +3 -3
  113. package/src/lib/data/api.cjs +14 -0
  114. package/src/lib/data/api.d.ts +1 -0
  115. package/src/lib/data/api.js +14 -1
  116. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.cjs +1 -0
  117. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.js +1 -0
  118. package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +2 -1
  119. package/src/lib/layout/DynamicAuthLayout/Header/header.js +2 -1
  120. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.cjs +2 -1
  121. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.js +2 -1
  122. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/Item/Item.cjs +1 -0
  123. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/Item/Item.js +1 -0
  124. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.cjs +1 -0
  125. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.js +1 -0
  126. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.cjs +1 -0
  127. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.js +1 -0
  128. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.cjs +1 -0
  129. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.js +1 -0
  130. package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.cjs +1 -0
  131. package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.js +1 -0
  132. package/src/lib/layout/DynamicAuthLayout/WalletProgressStepper/WalletProgressStepper.cjs +1 -0
  133. package/src/lib/layout/DynamicAuthLayout/WalletProgressStepper/WalletProgressStepper.js +1 -0
  134. package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.cjs +1 -0
  135. package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.js +1 -0
  136. package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.cjs +1 -0
  137. package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.js +1 -0
  138. package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.cjs +1 -0
  139. package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.js +1 -0
  140. package/src/lib/modals/SendBalanceModal/SendBalanceModal.cjs +1 -0
  141. package/src/lib/modals/SendBalanceModal/SendBalanceModal.js +1 -0
  142. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +1 -0
  143. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +1 -0
  144. package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.cjs +1 -0
  145. package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.js +1 -0
  146. package/src/lib/shared/types/index.d.ts +2 -1
  147. package/src/lib/shared/utils/hooks/index.d.ts +1 -0
  148. package/src/lib/shared/utils/hooks/useForwardedRef/index.d.ts +1 -0
  149. package/src/lib/shared/utils/hooks/useForwardedRef/useForwardedRef.cjs +25 -0
  150. package/src/lib/shared/utils/hooks/useForwardedRef/useForwardedRef.d.ts +2 -0
  151. package/src/lib/shared/utils/hooks/useForwardedRef/useForwardedRef.js +21 -0
  152. package/src/lib/styles/index.shadow.cjs +1 -1
  153. package/src/lib/styles/index.shadow.js +1 -1
  154. package/src/lib/utils/functions/createUserProfile/createUserProfile.cjs +1 -1
  155. package/src/lib/utils/functions/createUserProfile/createUserProfile.js +1 -1
  156. package/src/lib/utils/functions/getMissingChains/getMissingChains.cjs +1 -1
  157. package/src/lib/utils/functions/getMissingChains/getMissingChains.d.ts +1 -1
  158. package/src/lib/utils/functions/getMissingChains/getMissingChains.js +1 -1
  159. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +5 -1
  160. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +5 -1
  161. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +7 -1
  162. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +7 -1
  163. package/src/lib/utils/hooks/index.d.ts +0 -1
  164. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +3 -3
  165. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.d.ts +3 -3
  166. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +3 -3
  167. package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.cjs +8 -11
  168. package/src/lib/utils/hooks/multiWallet/useVerifyOnAwaitingSignature/useVerifyOnAwaitingSignature.js +8 -11
  169. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +97 -84
  170. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +5 -7
  171. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +99 -86
  172. package/src/lib/utils/hooks/useConnectWithEmail/useConnectWithEmail.cjs +5 -0
  173. package/src/lib/utils/hooks/useConnectWithEmail/useConnectWithEmail.js +5 -0
  174. package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.cjs +69 -0
  175. package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.d.ts +1 -0
  176. package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.js +65 -0
  177. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.cjs +2 -1
  178. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.d.ts +3 -1
  179. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.js +3 -2
  180. package/src/lib/utils/hooks/useHandleWalletsToConnect/useHandleWalletsToConnect.cjs +5 -0
  181. package/src/lib/utils/hooks/useHandleWalletsToConnect/useHandleWalletsToConnect.js +5 -0
  182. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +3 -1
  183. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +3 -1
  184. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +11 -2
  185. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.d.ts +3 -2
  186. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +11 -2
  187. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +18 -8
  188. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +3 -3
  189. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +18 -8
  190. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +4 -4
  191. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.js +4 -4
  192. package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.cjs +1 -0
  193. package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.js +1 -0
  194. package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.cjs +2 -1
  195. package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.js +2 -1
  196. package/src/lib/views/CollectUserDataView/CollectUserDataView.cjs +1 -0
  197. package/src/lib/views/CollectUserDataView/CollectUserDataView.js +1 -0
  198. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +1 -0
  199. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +1 -0
  200. package/src/lib/views/CollectUserDataView/UserDataFields/index.cjs +1 -0
  201. package/src/lib/views/CollectUserDataView/UserDataFields/index.js +1 -0
  202. package/src/lib/views/CollectUserDataView/fieldsConfig.cjs +8 -4
  203. package/src/lib/views/CollectUserDataView/fieldsConfig.js +8 -4
  204. package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.cjs +1 -0
  205. package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.js +1 -0
  206. package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.cjs +1 -0
  207. package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.js +1 -0
  208. package/src/lib/views/EmailUpdate/EmailUpdate.cjs +1 -0
  209. package/src/lib/views/EmailUpdate/EmailUpdate.js +1 -0
  210. package/src/lib/views/EmailVerification/EmailVerification.cjs +1 -0
  211. package/src/lib/views/EmailVerification/EmailVerification.js +1 -0
  212. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +1 -0
  213. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +1 -0
  214. package/src/lib/views/LoginWithEmailView/components/ListItemButton/ListItemButton.cjs +1 -0
  215. package/src/lib/views/LoginWithEmailView/components/ListItemButton/ListItemButton.js +1 -0
  216. package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.cjs +1 -0
  217. package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.js +1 -0
  218. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.cjs +1 -0
  219. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.js +1 -0
  220. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +9 -10
  221. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +10 -11
  222. package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs +12 -12
  223. package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js +13 -13
  224. package/src/lib/views/NoAccess/NoAccess.cjs +1 -0
  225. package/src/lib/views/NoAccess/NoAccess.js +1 -0
  226. package/src/lib/views/NoQrNotInstalledView/NoQrNotInstalledView.cjs +1 -0
  227. package/src/lib/views/NoQrNotInstalledView/NoQrNotInstalledView.js +1 -0
  228. package/src/lib/views/NoQrNotInstalledView/WalletHelpLink.cjs +1 -0
  229. package/src/lib/views/NoQrNotInstalledView/WalletHelpLink.js +1 -0
  230. package/src/lib/views/PendingConnectView/PendingConnectView.cjs +1 -0
  231. package/src/lib/views/PendingConnectView/PendingConnectView.js +1 -0
  232. package/src/lib/views/PendingSignatureView/PendingSignatureView.cjs +1 -0
  233. package/src/lib/views/PendingSignatureView/PendingSignatureView.js +1 -0
  234. package/src/lib/views/QrCodeView/QRCode.cjs +1 -0
  235. package/src/lib/views/QrCodeView/QRCode.js +1 -0
  236. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.cjs +1 -0
  237. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.js +1 -0
  238. package/src/lib/views/QrCodeView/QrCodeView.cjs +1 -0
  239. package/src/lib/views/QrCodeView/QrCodeView.js +1 -0
  240. package/src/lib/views/SendBalanceView/SendBalanceView.cjs +1 -0
  241. package/src/lib/views/SendBalanceView/SendBalanceView.js +1 -0
  242. package/src/lib/views/SocialRedirectView/SocialRedirectView.cjs +1 -0
  243. package/src/lib/views/SocialRedirectView/SocialRedirectView.js +1 -0
  244. package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.cjs +1 -0
  245. package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.js +1 -0
  246. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +1 -0
  247. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +1 -0
  248. package/src/lib/views/TransactionConfirmationView/hooks/useTransactionData/useTransactionData.cjs +1 -0
  249. package/src/lib/views/TransactionConfirmationView/hooks/useTransactionData/useTransactionData.js +1 -0
  250. package/src/lib/views/WalletList/SearchNotFoundMessage/SearchNotFoundMessage.cjs +1 -0
  251. package/src/lib/views/WalletList/SearchNotFoundMessage/SearchNotFoundMessage.js +1 -0
  252. package/src/lib/views/WalletList/WalletListItem/WalletListItem.cjs +2 -1
  253. package/src/lib/views/WalletList/WalletListItem/WalletListItem.js +2 -1
  254. package/src/lib/views/WalletLockedView/WalletLockedView.cjs +1 -0
  255. package/src/lib/views/WalletLockedView/WalletLockedView.js +1 -0
  256. package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.cjs +1 -0
  257. package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.js +1 -0
  258. package/src/lib/views/WalletUsedView/WalletUsedView.cjs +1 -0
  259. package/src/lib/views/WalletUsedView/WalletUsedView.js +1 -0
  260. package/src/lib/widgets/DynamicBridgeWidget/DynamicBridgeWidget.cjs +2 -1
  261. package/src/lib/widgets/DynamicBridgeWidget/DynamicBridgeWidget.js +2 -1
  262. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeUserProfile/DynamicBridgeUserProfile.cjs +1 -0
  263. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeUserProfile/DynamicBridgeUserProfile.js +1 -0
  264. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCard/DynamicBridgeWalletCard.cjs +1 -0
  265. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCard/DynamicBridgeWalletCard.js +1 -0
  266. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.cjs +1 -0
  267. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.js +1 -0
  268. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWidgetEmptyCard/DynamicBridgeWidgetEmptyCard.cjs +1 -0
  269. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWidgetEmptyCard/DynamicBridgeWidgetEmptyCard.js +1 -0
  270. package/src/lib/widgets/DynamicBridgeWidget/context/DynamicBridgeWidgetContext/DynamicBridgeWidgetContext.cjs +2 -0
  271. package/src/lib/widgets/DynamicBridgeWidget/context/DynamicBridgeWidgetContext/DynamicBridgeWidgetContext.js +2 -0
  272. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.cjs +2 -1
  273. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.js +2 -1
  274. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs +1 -1
  275. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js +1 -1
  276. package/src/lib/widgets/DynamicWidget/DynamicWidget.cjs +10 -3
  277. package/src/lib/widgets/DynamicWidget/DynamicWidget.js +12 -5
  278. package/src/lib/widgets/DynamicWidget/components/AccountControl/AccountControl.cjs +1 -0
  279. package/src/lib/widgets/DynamicWidget/components/AccountControl/AccountControl.js +1 -0
  280. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +5 -4
  281. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +5 -4
  282. package/src/lib/widgets/DynamicWidget/components/Balance/Balance.cjs +1 -0
  283. package/src/lib/widgets/DynamicWidget/components/Balance/Balance.js +1 -0
  284. package/src/lib/widgets/DynamicWidget/components/DotsMenu/DotsMenu.cjs +5 -4
  285. package/src/lib/widgets/DynamicWidget/components/DotsMenu/DotsMenu.d.ts +4 -7
  286. package/src/lib/widgets/DynamicWidget/components/DotsMenu/DotsMenu.js +5 -4
  287. package/src/lib/widgets/DynamicWidget/components/DotsMenuDropdown/DotsMenuDropdown.cjs +1 -0
  288. package/src/lib/widgets/DynamicWidget/components/DotsMenuDropdown/DotsMenuDropdown.js +1 -0
  289. package/src/lib/widgets/DynamicWidget/components/DynamicUserProfile/DynamicUserProfile.cjs +4 -1
  290. package/src/lib/widgets/DynamicWidget/components/DynamicUserProfile/DynamicUserProfile.js +4 -1
  291. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs +1 -0
  292. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js +1 -0
  293. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +4 -3
  294. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +4 -3
  295. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetDropdown/DynamicWidgetDropdown.cjs +1 -0
  296. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetDropdown/DynamicWidgetDropdown.js +1 -0
  297. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetModal/DynamicWidgetModal.cjs +1 -0
  298. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetModal/DynamicWidgetModal.js +1 -0
  299. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.cjs +1 -0
  300. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.js +1 -0
  301. package/src/lib/widgets/DynamicWidget/components/EmailConnectorPendingSignModalContent/EmailConnectorPendingSignModalContent.cjs +1 -0
  302. package/src/lib/widgets/DynamicWidget/components/EmailConnectorPendingSignModalContent/EmailConnectorPendingSignModalContent.js +1 -0
  303. package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.cjs +1 -0
  304. package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.js +1 -0
  305. package/src/lib/widgets/DynamicWidget/components/EmptyWallets/EmptyWallets.cjs +1 -0
  306. package/src/lib/widgets/DynamicWidget/components/EmptyWallets/EmptyWallets.js +1 -0
  307. package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.cjs +1 -0
  308. package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.js +1 -0
  309. package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.cjs +2 -1
  310. package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.js +2 -1
  311. package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.cjs +1 -0
  312. package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.js +1 -0
  313. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +1 -0
  314. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +1 -0
  315. package/src/lib/widgets/DynamicWidget/helpers/helpers.cjs +17 -1
  316. package/src/lib/widgets/DynamicWidget/helpers/helpers.js +17 -1
  317. package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.cjs +1 -0
  318. package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.js +1 -0
  319. package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.cjs +1 -0
  320. package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.js +1 -0
  321. package/src/lib/widgets/DynamicWidget/prompts/NoQrNotInstalledModalView/NoQrNotInstalledModalView.cjs +1 -0
  322. package/src/lib/widgets/DynamicWidget/prompts/NoQrNotInstalledModalView/NoQrNotInstalledModalView.js +1 -0
  323. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.cjs +1 -0
  324. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.js +1 -0
  325. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.cjs +1 -0
  326. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.js +1 -0
  327. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.cjs +1 -0
  328. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.js +1 -0
  329. package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.cjs +1 -0
  330. package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.js +1 -0
  331. package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.cjs +1 -0
  332. package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.js +1 -0
  333. package/src/lib/widgets/DynamicWidget/prompts/PrimaryNotConnectedModal/PrimaryNotConnectedModal.cjs +1 -0
  334. package/src/lib/widgets/DynamicWidget/prompts/PrimaryNotConnectedModal/PrimaryNotConnectedModal.js +1 -0
  335. package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.cjs +1 -0
  336. package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.js +1 -0
  337. package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.cjs +1 -0
  338. package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.js +1 -0
  339. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.cjs +1 -0
  340. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.js +1 -0
  341. package/src/lib/widgets/DynamicWidget/views/ProfileView/ProfileView.cjs +1 -0
  342. package/src/lib/widgets/DynamicWidget/views/ProfileView/ProfileView.js +1 -0
  343. package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.cjs +1 -0
  344. package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.js +1 -0
  345. package/src/lib/widgets/FundingWidget/views/FundWalletView/FundWalletView.cjs +1 -0
  346. package/src/lib/widgets/FundingWidget/views/FundWalletView/FundWalletView.js +1 -0
  347. package/src/lib/components/NetworkPicker/components/ActionList/ActionList.cjs +0 -71
  348. package/src/lib/components/NetworkPicker/components/ActionList/ActionList.d.ts +0 -12
  349. package/src/lib/components/NetworkPicker/components/ActionList/ActionList.js +0 -65
  350. package/src/lib/components/NetworkPicker/components/ActionList/index.d.ts +0 -1
  351. package/src/lib/components/Popper/utils/watchToScrollInHierarchy/watchToScrollInHierarchy.d.ts +0 -1
  352. package/src/lib/utils/hooks/useWalletConnectorEvents/useWalletConnectorEvents.cjs +0 -17
  353. package/src/lib/utils/hooks/useWalletConnectorEvents/useWalletConnectorEvents.d.ts +0 -2
  354. package/src/lib/utils/hooks/useWalletConnectorEvents/useWalletConnectorEvents.js +0 -13
  355. /package/src/lib/components/{Popper → MenuList}/utils/watchToScrollInHierarchy/index.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
2
- import { useCallback, useMemo } from 'react';
3
- import { getWalletConnectorByName, isSameAddress } from '@dynamic-labs/wallet-connector-core';
2
+ import { useState, useCallback, useEffect, useMemo } from 'react';
3
+ import { getWalletConnectorByName, logger } from '@dynamic-labs/wallet-connector-core';
4
4
  import '@dynamic-labs/sdk-api';
5
5
  import '../../../shared/logger.js';
6
6
  import '@dynamic-labs/iconic';
@@ -21,10 +21,52 @@ import { shouldManuallyReconnectOnRefresh } from '../../functions/shouldManually
21
21
 
22
22
  const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, }) => {
23
23
  const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage(CONNECTED_WALLETS_INFO, []);
24
+ const [connectedWallets, setConnectedWallets] = useState([]);
25
+ // The function to update and define the connectedWallets list.
26
+ // It uses walletConnector to get the current wallet address and network
27
+ // The address and network in the runtime are updated by the event listeners
28
+ // The event listeners are updating `connectedWallets` list.
29
+ // It should be called on the first render and when connectedWalletsInfo updates
30
+ const updateConnectedWalletsList = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
31
+ const walletConnectors = wallets.map((wallet) => wallet.walletConnector);
32
+ if (!walletConnectors.length) {
33
+ return;
34
+ }
35
+ const nextConnectedWallets = (yield Promise.all(connectedWalletsInfo.map((storedConnectedWalletInfo) => __awaiter(void 0, void 0, void 0, function* () {
36
+ const walletConnector = getWalletConnectorByName(walletConnectors, storedConnectedWalletInfo.walletConnectorKey);
37
+ if (!walletConnector) {
38
+ logger.error('Could not find walletConnector: ' +
39
+ storedConnectedWalletInfo.walletConnectorKey);
40
+ return Promise.resolve(null);
41
+ }
42
+ const [walletAddress] = yield walletConnector.getConnectedAccounts();
43
+ const walletNetwork = yield walletConnector.getNetwork();
44
+ const walletChain = walletConnector.connectedChain;
45
+ const walletObject = {
46
+ address:
47
+ // We use `storedConnectedWalletInfo.lastWalletAddress` as a workaround to Braavos issue
48
+ // Braavos during initialization returns an empty string as a wallet address
49
+ walletAddress ||
50
+ storedConnectedWalletInfo.lastWalletAddress ||
51
+ '',
52
+ chain: walletChain || '',
53
+ connected: true,
54
+ connector: walletConnector,
55
+ id: storedConnectedWalletInfo.id,
56
+ network: walletNetwork,
57
+ };
58
+ return Promise.resolve(walletObject);
59
+ })))).filter((wallet) => Boolean(wallet));
60
+ setConnectedWallets(nextConnectedWallets);
61
+ }), [connectedWalletsInfo, wallets]);
62
+ // Generate the connectedWallets list when connectedWalletsInfo (localStorage) or memoized wallet connector updates
63
+ useEffect(() => {
64
+ updateConnectedWalletsList();
65
+ }, [updateConnectedWalletsList]);
24
66
  const getNextIdAvailable = useCallback((currentWallets) => {
25
67
  const existingIds = currentWallets.map(({ id }) => id);
26
68
  const sortedIds = existingIds
27
- .map((id) => Number(id.replace('connect-only-wallet-', '')))
69
+ .map((id) => Number(id.replace('connect-wallet-', '')))
28
70
  .sort((a, b) => a - b);
29
71
  for (let i = 0; i < sortedIds.length; i++) {
30
72
  if (sortedIds[i] !== i) {
@@ -33,82 +75,44 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
33
75
  }
34
76
  return sortedIds.length;
35
77
  }, []);
36
- const connectedWallets = useMemo(() => connectedWalletsInfo
37
- .map((connectedWallet) => {
38
- const walletConnector = getWalletConnectorByName(wallets.map((wallet) => wallet.walletConnector), connectedWallet.name);
39
- if (!walletConnector) {
40
- return null;
78
+ const updateConnectedWalletById = useCallback((walletId, walletObject) => {
79
+ const clonedConnectedWalletsList = [...connectedWallets];
80
+ const connectedWalletIndex = clonedConnectedWalletsList.findIndex((connectedWallet) => connectedWallet.id === walletId);
81
+ if (connectedWalletIndex > -1) {
82
+ clonedConnectedWalletsList[connectedWalletIndex] = Object.assign(Object.assign({}, clonedConnectedWalletsList[connectedWalletIndex]), walletObject);
83
+ setConnectedWallets(clonedConnectedWalletsList);
41
84
  }
42
- const connectedWalletInfo = {
43
- address: connectedWallet.walletPublicKey,
44
- chain: connectedWallet.chain,
45
- connected: true,
46
- connector: walletConnector,
47
- id: connectedWallet.id,
48
- network: connectedWallet.network,
49
- };
50
- return connectedWalletInfo;
51
- })
52
- .filter((wc) => wc !== null), [connectedWalletsInfo, wallets]);
53
- const updateConnectedWalletById = useCallback((walletId, connectedWalletConnectorObject) => {
54
- setConnectedWalletsInfo((currentWallets) => currentWallets.map((currentWallet) => {
55
- if (currentWallet.id === walletId) {
56
- return Object.assign(Object.assign({}, currentWallet), connectedWalletConnectorObject);
57
- }
58
- return currentWallet;
59
- }));
60
- }, [setConnectedWalletsInfo]);
85
+ }, [connectedWallets]);
61
86
  const connectedWallet = connectedWallets[0] || null;
62
- const setConnectedStates = useCallback((walletConnector, address, chain, walletConnectorNetwork) => {
63
- setConnectedWalletsInfo((currentWallets) => {
64
- const existingWalletIndex = currentWallets.findIndex((currentWallet) => currentWallet.name === walletConnector.name);
65
- const exists = currentWallets.some((currentWallet) => currentWallet.walletPublicKey === address);
66
- // this is done, to make sure we're not adding two wallets with the same address to the array
67
- if (exists) {
68
- return currentWallets;
69
- }
70
- // when calling this function with a new wallet that has the same wallet connector as
71
- // an existing one in the array, we intend to replace the existing wallet with the new one.
72
- if (existingWalletIndex !== -1) {
73
- const updatedWallets = [...currentWallets];
74
- updatedWallets[existingWalletIndex] = Object.assign(Object.assign({}, updatedWallets[existingWalletIndex]), { chain, provider: getWalletProvider(walletConnector), walletPublicKey: address });
75
- return updatedWallets;
76
- }
77
- // otherwise, add new wallet to connectedWalletsInfo array
78
- return [
79
- ...currentWallets,
80
- {
81
- chain,
82
- id: `connect-only-wallet-${getNextIdAvailable(currentWallets)}`,
83
- name: walletConnector.name,
84
- network: walletConnectorNetwork,
85
- provider: getWalletProvider(walletConnector),
86
- walletPublicKey: address,
87
- },
88
- ];
87
+ // Keeps connected wallet data inside localStorage
88
+ const applyConnectedWalletToStore = ({ walletId, walletAddress, walletConnectorKey, walletChain, provider, }) => {
89
+ const nextConnectedWalletsInfo = [...connectedWalletsInfo];
90
+ nextConnectedWalletsInfo.push({
91
+ id: walletId,
92
+ lastWalletAddress: walletAddress,
93
+ provider,
94
+ walletChain,
95
+ walletConnectorKey,
89
96
  });
90
- }, [getNextIdAvailable, setConnectedWalletsInfo]);
91
- const connectWalletByAddressAndChain = useCallback((name, address, chain) => __awaiter(void 0, void 0, void 0, function* () {
92
- const walletConnector = getWalletConnectorByName(wallets.map((wallet) => wallet.walletConnector), name);
93
- if (walletConnector) {
94
- if (shouldManuallyReconnectOnRefresh(walletConnector)) {
95
- yield walletConnector.connect();
96
- }
97
- const connectedAccounts = yield walletConnector.getConnectedAccounts();
98
- const result = connectedAccounts.filter((account) => isSameAddress(account, address, chain));
99
- const walletNetwork = yield walletConnector.getNetwork();
100
- if (result.length > 0) {
101
- walletConnector.connect();
102
- setConnectedStates(walletConnector, address, chain, walletNetwork);
103
- }
104
- else {
105
- removeConnectedWalletsInfo();
106
- }
97
+ setConnectedWalletsInfo(nextConnectedWalletsInfo);
98
+ return Promise.resolve();
99
+ };
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* () {
102
+ if (shouldManuallyReconnectOnRefresh(walletConnector)) {
103
+ yield walletConnector.connect();
107
104
  }
108
- else {
109
- removeConnectedWalletsInfo();
105
+ const currentWalletConnectorAddress = yield walletConnector.fetchPublicAddress();
106
+ if (!currentWalletConnectorAddress) {
107
+ logger.error('Could not refresh the wallet. The wallet address is not available');
108
+ return;
110
109
  }
111
- }), [removeConnectedWalletsInfo, setConnectedStates, wallets]);
110
+ const currentWalletConnectoNetwork = yield walletConnector.getNetwork();
111
+ updateConnectedWalletById(walletId, {
112
+ address: currentWalletConnectorAddress,
113
+ network: currentWalletConnectoNetwork,
114
+ });
115
+ });
112
116
  const shouldSkipCreatingVisit = useMemo(() => (authMode === 'connect-only' && !enableVisitTrackingOnConnectOnly) ||
113
117
  connectedWallet, [authMode, connectedWallet, enableVisitTrackingOnConnectOnly]);
114
118
  const connectWallet = (walletConnector, fetchPublicAddressOpts) => __awaiter(void 0, void 0, void 0, function* () {
@@ -118,29 +122,39 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
118
122
  error.code = 'missing-public-address';
119
123
  throw error;
120
124
  }
121
- const chain = walletConnector.connectedChain || '';
122
- const walletConnectorNetwork = yield walletConnector.getNetwork();
123
- // when we connect first wallet, it should be set as a primary wallet
124
- const shouldSetPrimaryWalletId = authMode === 'connect-only' && !primaryWalletId;
125
- if (shouldSetPrimaryWalletId) {
126
- setPrimaryWalletId(`connect-only-wallet-${getNextIdAvailable(connectedWalletsInfo)}`);
125
+ const walletId = `connect-wallet-${getNextIdAvailable(connectedWalletsInfo)}`;
126
+ if (!primaryWalletId) {
127
+ setPrimaryWalletId(walletId);
128
+ }
129
+ const walletChain = walletConnector.connectedChain;
130
+ const isWalletStored = connectedWalletsInfo.some(({ walletConnectorKey: storedWalletConnectorKey }) => storedWalletConnectorKey === walletConnector.name);
131
+ if (isWalletStored) {
132
+ yield updateConnectedWalletsList();
133
+ }
134
+ else {
135
+ applyConnectedWalletToStore({
136
+ provider: getWalletProvider(walletConnector),
137
+ walletAddress: publicWalletAddress,
138
+ walletChain,
139
+ walletConnectorKey: walletConnector.name,
140
+ walletId,
141
+ });
127
142
  }
128
- setConnectedStates(walletConnector, publicWalletAddress, chain, walletConnectorNetwork);
129
143
  if (shouldSkipCreatingVisit) {
130
- return publicWalletAddress;
144
+ return Promise.resolve(publicWalletAddress);
131
145
  }
132
146
  // send information to backend to kick off background jobs
133
147
  // so verify/sign on the next step could go by more quickly
134
148
  // this is async work, but DO NOT AWAIT
135
149
  createVisit({
136
150
  authMode,
137
- chain,
151
+ chain: walletChain || '',
138
152
  environmentId,
139
153
  publicWalletAddress,
140
154
  walletName: walletConnector.name,
141
155
  walletProvider: getWalletProvider(walletConnector),
142
156
  });
143
- return publicWalletAddress;
157
+ return Promise.resolve(publicWalletAddress);
144
158
  });
145
159
  const unlinkConnectedWallet = (walletId) => {
146
160
  const filteredWallets = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
@@ -153,14 +167,13 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
153
167
  const getConnectedWalletById = useCallback((walletId) => connectedWallets.find((wallet) => wallet.id === walletId), [connectedWallets]);
154
168
  return {
155
169
  connectWallet,
156
- connectWalletByAddressAndChain,
157
170
  connectedWallet,
158
171
  connectedWallets,
159
172
  connectedWalletsInfo,
160
173
  getConnectedWalletById,
174
+ refreshConnectedWallet,
161
175
  removeConnectedWalletsInfo,
162
176
  unlinkConnectedWallet,
163
- updateConnectedWalletById,
164
177
  };
165
178
  };
166
179
 
@@ -17,13 +17,17 @@ require('../../../shared/utils/classes/storage/localStorage.cjs');
17
17
  require('ethers');
18
18
  require('../../../shared/consts/index.cjs');
19
19
  var ErrorContext = require('../../../context/ErrorContext/ErrorContext.cjs');
20
+ var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
20
21
 
21
22
  const useConnectWithEmail = ({ emailWalletConnector, handleConnect, }) => {
22
23
  const { error } = ErrorContext.useErrorContext();
23
24
  const [loading, setLoading] = React.useState(false);
25
+ const { ongoingVerifications } = useInternalDynamicContext.useInternalDynamicContext();
24
26
  const connectWithEmail = (email) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
25
27
  if (!email || !emailWalletConnector || loading)
26
28
  return;
29
+ // Indicate auth verification process start
30
+ ongoingVerifications.setAuthVerification(true);
27
31
  setLoading(true);
28
32
  emailWalletConnector.setEmail(email);
29
33
  try {
@@ -31,6 +35,7 @@ const useConnectWithEmail = ({ emailWalletConnector, handleConnect, }) => {
31
35
  }
32
36
  catch (e) {
33
37
  logger.logger.error(e);
38
+ ongoingVerifications.setAuthVerification(false);
34
39
  setLoading(false);
35
40
  }
36
41
  });
@@ -13,13 +13,17 @@ import '../../../shared/utils/classes/storage/localStorage.js';
13
13
  import 'ethers';
14
14
  import '../../../shared/consts/index.js';
15
15
  import { useErrorContext } from '../../../context/ErrorContext/ErrorContext.js';
16
+ import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
16
17
 
17
18
  const useConnectWithEmail = ({ emailWalletConnector, handleConnect, }) => {
18
19
  const { error } = useErrorContext();
19
20
  const [loading, setLoading] = useState(false);
21
+ const { ongoingVerifications } = useInternalDynamicContext();
20
22
  const connectWithEmail = (email) => __awaiter(void 0, void 0, void 0, function* () {
21
23
  if (!email || !emailWalletConnector || loading)
22
24
  return;
25
+ // Indicate auth verification process start
26
+ ongoingVerifications.setAuthVerification(true);
23
27
  setLoading(true);
24
28
  emailWalletConnector.setEmail(email);
25
29
  try {
@@ -27,6 +31,7 @@ const useConnectWithEmail = ({ emailWalletConnector, handleConnect, }) => {
27
31
  }
28
32
  catch (e) {
29
33
  logger.error(e);
34
+ ongoingVerifications.setAuthVerification(false);
30
35
  setLoading(false);
31
36
  }
32
37
  });
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
7
+ var ViewContext = require('../../../context/ViewContext/ViewContext.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('@dynamic-labs/wallet-book');
14
+ require('@dynamic-labs/utils');
15
+ require('../../constants/colors.cjs');
16
+ require('../../../shared/utils/classes/storage/localStorage.cjs');
17
+ require('ethers');
18
+ require('../../../shared/consts/index.cjs');
19
+ require('@dynamic-labs/multi-wallet');
20
+ var isSupportedNetwork = require('../../functions/isSupportedNetwork/isSupportedNetwork.cjs');
21
+ var isProgrammableNetworkSwitchSupported = require('../../functions/isProgrammableNetworkSwitchSupported/isProgrammableNetworkSwitchSupported.cjs');
22
+
23
+ const useConnectedWalletsNetworkValidation = () => {
24
+ const { connectedWallets, selectedWalletConnector, setSelectedWalletConnector, setShowAuthFlow, showAuthFlow, walletsToConnectByChain, isBridgeFlow, } = useInternalDynamicContext.useInternalDynamicContext();
25
+ const { view, setView } = ViewContext.useViewContext();
26
+ React.useEffect(() => {
27
+ if (!isBridgeFlow) {
28
+ return;
29
+ }
30
+ const connectedWalletsWithInvalidNetwork = connectedWallets.filter((connectedWallet) => {
31
+ const isChainInWalletsToConnect = walletsToConnectByChain === null || walletsToConnectByChain === void 0 ? void 0 : walletsToConnectByChain.some((walletToConnectByChain) => walletToConnectByChain.chain === connectedWallet.chain);
32
+ const isSupported = isSupportedNetwork.isSupportedNetwork({
33
+ network: connectedWallet.network,
34
+ walletConnector: connectedWallet.connector,
35
+ });
36
+ return !isChainInWalletsToConnect && !isSupported;
37
+ });
38
+ if (connectedWalletsWithInvalidNetwork.length) {
39
+ // If we found wallets that require a change of network
40
+ // then, one by one, in the first one we require a change of network.
41
+ const [connectedWalletWithInvalidNetwork] = connectedWalletsWithInvalidNetwork;
42
+ // Keeps the first wallet connectedWallet in setSelectedWalletConnector
43
+ // This is required because NetworkNotSupported uses walletConnector to display wallet icon, address etc.
44
+ if (connectedWalletWithInvalidNetwork.connector.name !==
45
+ (selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.name)) {
46
+ setSelectedWalletConnector(connectedWalletWithInvalidNetwork.connector);
47
+ }
48
+ const networkNotSupportedView = isProgrammableNetworkSwitchSupported.isProgrammableNetworkSwitchSupported(connectedWalletWithInvalidNetwork.connector)
49
+ ? 'network-not-supported'
50
+ : 'network-not-supported-manual';
51
+ if (!showAuthFlow) {
52
+ setShowAuthFlow(true);
53
+ }
54
+ setView(networkNotSupportedView);
55
+ }
56
+ }, [
57
+ isBridgeFlow,
58
+ connectedWallets,
59
+ view,
60
+ selectedWalletConnector,
61
+ walletsToConnectByChain,
62
+ showAuthFlow,
63
+ setView,
64
+ setSelectedWalletConnector,
65
+ setShowAuthFlow,
66
+ ]);
67
+ };
68
+
69
+ exports.useConnectedWalletsNetworkValidation = useConnectedWalletsNetworkValidation;
@@ -0,0 +1 @@
1
+ export declare const useConnectedWalletsNetworkValidation: () => void;
@@ -0,0 +1,65 @@
1
+ import { useEffect } from 'react';
2
+ import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
3
+ import { useViewContext } from '../../../context/ViewContext/ViewContext.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 '@dynamic-labs/wallet-book';
10
+ import '@dynamic-labs/utils';
11
+ import '../../constants/colors.js';
12
+ import '../../../shared/utils/classes/storage/localStorage.js';
13
+ import 'ethers';
14
+ import '../../../shared/consts/index.js';
15
+ import '@dynamic-labs/multi-wallet';
16
+ import { isSupportedNetwork } from '../../functions/isSupportedNetwork/isSupportedNetwork.js';
17
+ import { isProgrammableNetworkSwitchSupported } from '../../functions/isProgrammableNetworkSwitchSupported/isProgrammableNetworkSwitchSupported.js';
18
+
19
+ const useConnectedWalletsNetworkValidation = () => {
20
+ const { connectedWallets, selectedWalletConnector, setSelectedWalletConnector, setShowAuthFlow, showAuthFlow, walletsToConnectByChain, isBridgeFlow, } = useInternalDynamicContext();
21
+ const { view, setView } = useViewContext();
22
+ useEffect(() => {
23
+ if (!isBridgeFlow) {
24
+ return;
25
+ }
26
+ const connectedWalletsWithInvalidNetwork = connectedWallets.filter((connectedWallet) => {
27
+ const isChainInWalletsToConnect = walletsToConnectByChain === null || walletsToConnectByChain === void 0 ? void 0 : walletsToConnectByChain.some((walletToConnectByChain) => walletToConnectByChain.chain === connectedWallet.chain);
28
+ const isSupported = isSupportedNetwork({
29
+ network: connectedWallet.network,
30
+ walletConnector: connectedWallet.connector,
31
+ });
32
+ return !isChainInWalletsToConnect && !isSupported;
33
+ });
34
+ if (connectedWalletsWithInvalidNetwork.length) {
35
+ // If we found wallets that require a change of network
36
+ // then, one by one, in the first one we require a change of network.
37
+ const [connectedWalletWithInvalidNetwork] = connectedWalletsWithInvalidNetwork;
38
+ // Keeps the first wallet connectedWallet in setSelectedWalletConnector
39
+ // This is required because NetworkNotSupported uses walletConnector to display wallet icon, address etc.
40
+ if (connectedWalletWithInvalidNetwork.connector.name !==
41
+ (selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.name)) {
42
+ setSelectedWalletConnector(connectedWalletWithInvalidNetwork.connector);
43
+ }
44
+ const networkNotSupportedView = isProgrammableNetworkSwitchSupported(connectedWalletWithInvalidNetwork.connector)
45
+ ? 'network-not-supported'
46
+ : 'network-not-supported-manual';
47
+ if (!showAuthFlow) {
48
+ setShowAuthFlow(true);
49
+ }
50
+ setView(networkNotSupportedView);
51
+ }
52
+ }, [
53
+ isBridgeFlow,
54
+ connectedWallets,
55
+ view,
56
+ selectedWalletConnector,
57
+ walletsToConnectByChain,
58
+ showAuthFlow,
59
+ setView,
60
+ setSelectedWalletConnector,
61
+ setShowAuthFlow,
62
+ ]);
63
+ };
64
+
65
+ export { useConnectedWalletsNetworkValidation };
@@ -22,7 +22,7 @@ var validators = require('../../../context/DynamicContext/validators.cjs');
22
22
  require('@dynamic-labs/multi-wallet');
23
23
  var index = require('../../functions/getEnabledProviders/index.cjs');
24
24
 
25
- const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, }) => {
25
+ const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, dynamicContextProps, }) => {
26
26
  const [lsSettings, setLsSettings, removeLsSettings] = useLocalStorage.useLocalStorage(localStorage.PROJECT_SETTINGS_STORAGE_KEY, undefined, validators.validateLocalStorageExpiry);
27
27
  const [isLoading, setLoading] = React.useState(false);
28
28
  const [retries, setRetries] = React.useState(0);
@@ -44,6 +44,7 @@ const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, })
44
44
  environmentId &&
45
45
  retries < maxRetries) {
46
46
  setLoading(true);
47
+ api.sendDynamicProps(environmentId, dynamicContextProps);
47
48
  api.fetchProjectSettings(environmentId)
48
49
  .then((response) => {
49
50
  if (!response)
@@ -1,9 +1,11 @@
1
+ import { DynamicContextProps } from '../../../context/DynamicContext';
1
2
  export type fetchProjectSettingsProps = {
2
3
  authToken: string | undefined;
3
4
  environmentId: string;
4
5
  maxRetries?: number;
6
+ dynamicContextProps: Pick<DynamicContextProps, 'settings'>;
5
7
  };
6
- export declare const useFetchProjectSettings: ({ authToken, environmentId, maxRetries, }: fetchProjectSettingsProps) => {
8
+ export declare const useFetchProjectSettings: ({ authToken, environmentId, maxRetries, dynamicContextProps, }: fetchProjectSettingsProps) => {
7
9
  isLoading: boolean;
8
10
  projectSettings: import("@dynamic-labs/sdk-api").ProjectSettings | undefined;
9
11
  removeLsSettings: () => void;
@@ -1,6 +1,6 @@
1
1
  import { useState, useEffect, useMemo } from 'react';
2
2
  import { DynamicError } from '@dynamic-labs/utils';
3
- import { fetchProjectSettings } from '../../../data/api.js';
3
+ import { sendDynamicProps, fetchProjectSettings } from '../../../data/api.js';
4
4
  import '@dynamic-labs/sdk-api';
5
5
  import '../../../shared/logger.js';
6
6
  import '@dynamic-labs/iconic';
@@ -18,7 +18,7 @@ import { validateLocalStorageExpiry } from '../../../context/DynamicContext/vali
18
18
  import '@dynamic-labs/multi-wallet';
19
19
  import { getEnabledProviders } from '../../functions/getEnabledProviders/index.js';
20
20
 
21
- const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, }) => {
21
+ const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, dynamicContextProps, }) => {
22
22
  const [lsSettings, setLsSettings, removeLsSettings] = useLocalStorage(PROJECT_SETTINGS_STORAGE_KEY, undefined, validateLocalStorageExpiry);
23
23
  const [isLoading, setLoading] = useState(false);
24
24
  const [retries, setRetries] = useState(0);
@@ -40,6 +40,7 @@ const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, })
40
40
  environmentId &&
41
41
  retries < maxRetries) {
42
42
  setLoading(true);
43
+ sendDynamicProps(environmentId, dynamicContextProps);
43
44
  fetchProjectSettings(environmentId)
44
45
  .then((response) => {
45
46
  if (!response)
@@ -14,6 +14,11 @@ const useHandleWalletsToConnect = () => {
14
14
  setShowAuthFlow(false);
15
15
  return;
16
16
  }
17
+ // Avoid showing wallet-list when wallet updates network to the correct one in run time (bridge mode)
18
+ if (walletsToConnectByChain.length === 0) {
19
+ setShowAuthFlow(false);
20
+ return goToInitialView();
21
+ }
17
22
  const [firstWallet, ...restOfTheWallets] = walletsToConnectByChain;
18
23
  if (firstWallet.numberOfWallets > 1) {
19
24
  const updatedWallets = [
@@ -10,6 +10,11 @@ const useHandleWalletsToConnect = () => {
10
10
  setShowAuthFlow(false);
11
11
  return;
12
12
  }
13
+ // Avoid showing wallet-list when wallet updates network to the correct one in run time (bridge mode)
14
+ if (walletsToConnectByChain.length === 0) {
15
+ setShowAuthFlow(false);
16
+ return goToInitialView();
17
+ }
13
18
  const [firstWallet, ...restOfTheWallets] = walletsToConnectByChain;
14
19
  if (firstWallet.numberOfWallets > 1) {
15
20
  const updatedWallets = [
@@ -36,7 +36,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
36
36
  const { setDeniedAddress, setDeniedOauthProvider } = AccessDeniedContext.useAccessDeniedContext();
37
37
  const { setView, goToInitialView } = ViewContext.useViewContext();
38
38
  const { setErrorMessage, setError } = ErrorContext.useErrorContext();
39
- const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallet, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, } = useInternalDynamicContext.useInternalDynamicContext();
39
+ const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallet, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, ongoingVerifications, } = useInternalDynamicContext.useInternalDynamicContext();
40
40
  // If the user is not already logged it means that we only need to verify
41
41
  // We need this boolean for the part of the logic where we already persisted a new authToken,
42
42
  // and need to distinguish between logic for verify or linking.
@@ -90,6 +90,8 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
90
90
  };
91
91
  const handleError = (e, walletConnector, address, oauth) => {
92
92
  removeConnectedWalletsInfo();
93
+ // Ensure auth verification flag is taken down
94
+ ongoingVerifications.setAuthVerification(false);
93
95
  // This is a special case where the user is trying to link a wallet
94
96
  // and the wallet is already linked and we don't want to kill the session.
95
97
  if (e instanceof utils.WalletUsedError) {
@@ -32,7 +32,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
32
32
  const { setDeniedAddress, setDeniedOauthProvider } = useAccessDeniedContext();
33
33
  const { setView, goToInitialView } = useViewContext();
34
34
  const { setErrorMessage, setError } = useErrorContext();
35
- const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallet, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, } = useInternalDynamicContext();
35
+ const { setUser, multiWalletWidgetState, debugError, multiWallet: multiWalletEnabled, appName, primaryWalletId, setCallback, setShowAuthFlow, setPrimaryWalletId, siweStatement, connectedWallet, authMode, setOnboardingOnlyJwt, authToken, setAuthMode, removeConnectedWalletsInfo, ongoingVerifications, } = useInternalDynamicContext();
36
36
  // If the user is not already logged it means that we only need to verify
37
37
  // We need this boolean for the part of the logic where we already persisted a new authToken,
38
38
  // and need to distinguish between logic for verify or linking.
@@ -86,6 +86,8 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
86
86
  };
87
87
  const handleError = (e, walletConnector, address, oauth) => {
88
88
  removeConnectedWalletsInfo();
89
+ // Ensure auth verification flag is taken down
90
+ ongoingVerifications.setAuthVerification(false);
89
91
  // This is a special case where the user is trying to link a wallet
90
92
  // and the wallet is already linked and we don't want to kill the session.
91
93
  if (e instanceof WalletUsedError) {
@@ -21,7 +21,7 @@ var useWalletsConnectionState = require('../useWalletsConnectionState/useWallets
21
21
  var createLinkedWalletsFromWalletOptions = require('./utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.cjs');
22
22
  var reconnectSocialWallet = require('./reconnectSocialWallet.cjs');
23
23
 
24
- const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, }) => {
24
+ const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, }) => {
25
25
  const [showQrcodeModal, setShowQrcodeModal] = React.useState(false);
26
26
  const linkedWallets = React.useMemo(() => {
27
27
  if (!authToken) {
@@ -33,7 +33,16 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: a
33
33
  walletOptions: availableWallets,
34
34
  });
35
35
  }, [authToken, primaryWalletId, availableWallets]);
36
- const walletsBasedOnAuthMode = React.useMemo(() => (authMode === 'connect-only' ? connectedWallets : linkedWallets), [authMode, connectedWallets, linkedWallets]);
36
+ const walletsBasedOnAuthMode = React.useMemo(() => {
37
+ // Before signing the first message we are using connected wallets list
38
+ // This is because we want the first connected wallet to have events applied by useWalletEventListeners
39
+ // In connect-and-sign mode, events are only applied after the message is signed.
40
+ // This change ensures that events will be applied even before the signature.
41
+ if (authMode === 'connect-and-sign' && user) {
42
+ return linkedWallets;
43
+ }
44
+ return connectedWallets;
45
+ }, [authMode, connectedWallets, linkedWallets, user]);
37
46
  const { connectedWalletMap, computeConnectedStateForWallets, didConnectedStateLoad, } = useWalletsConnectionState.useWalletsConnectionState(walletsBasedOnAuthMode);
38
47
  const wallets = React.useMemo(() => walletsBasedOnAuthMode.map((wallet) => (Object.assign(Object.assign({}, wallet), { connected: Boolean(connectedWalletMap[wallet.id]) }))), [connectedWalletMap, walletsBasedOnAuthMode]);
39
48
  React.useEffect(() => {
@@ -1,5 +1,5 @@
1
1
  import { Dispatch, SetStateAction } from 'react';
2
- import { WalletOption, Wallet, MultiWalletWidgetState, AuthModeType } from '../../../shared';
2
+ import { WalletOption, Wallet, MultiWalletWidgetState, AuthModeType, UserProfile } from '../../../shared';
3
3
  import { MultiWalletWidgetStateSetter } from '../multiWallet';
4
4
  import { WalletConnector } from '../../../..';
5
5
  type Props = {
@@ -13,6 +13,7 @@ type Props = {
13
13
  wallets: WalletOption[];
14
14
  setPrimaryWalletId: (walletId: string) => void;
15
15
  primaryWalletId: string | undefined;
16
+ user?: UserProfile;
16
17
  };
17
18
  export interface UseWalletConnectors {
18
19
  computeConnectedStateForWallets: () => Promise<void>;
@@ -27,5 +28,5 @@ export interface UseWalletConnectors {
27
28
  walletConnectors: WalletConnector[];
28
29
  wallets: Wallet[];
29
30
  }
30
- export declare const useWalletConnectors: ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, }: Props) => UseWalletConnectors;
31
+ export declare const useWalletConnectors: ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, }: Props) => UseWalletConnectors;
31
32
  export {};
@@ -17,7 +17,7 @@ import { useWalletsConnectionState } from '../useWalletsConnectionState/useWalle
17
17
  import { createLinkedWalletsFromWalletOptions } from './utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.js';
18
18
  import { reconnectSocialWallet } from './reconnectSocialWallet.js';
19
19
 
20
- const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, }) => {
20
+ const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, }) => {
21
21
  const [showQrcodeModal, setShowQrcodeModal] = useState(false);
22
22
  const linkedWallets = useMemo(() => {
23
23
  if (!authToken) {
@@ -29,7 +29,16 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: a
29
29
  walletOptions: availableWallets,
30
30
  });
31
31
  }, [authToken, primaryWalletId, availableWallets]);
32
- const walletsBasedOnAuthMode = useMemo(() => (authMode === 'connect-only' ? connectedWallets : linkedWallets), [authMode, connectedWallets, linkedWallets]);
32
+ const walletsBasedOnAuthMode = useMemo(() => {
33
+ // Before signing the first message we are using connected wallets list
34
+ // This is because we want the first connected wallet to have events applied by useWalletEventListeners
35
+ // In connect-and-sign mode, events are only applied after the message is signed.
36
+ // This change ensures that events will be applied even before the signature.
37
+ if (authMode === 'connect-and-sign' && user) {
38
+ return linkedWallets;
39
+ }
40
+ return connectedWallets;
41
+ }, [authMode, connectedWallets, linkedWallets, user]);
33
42
  const { connectedWalletMap, computeConnectedStateForWallets, didConnectedStateLoad, } = useWalletsConnectionState(walletsBasedOnAuthMode);
34
43
  const wallets = useMemo(() => walletsBasedOnAuthMode.map((wallet) => (Object.assign(Object.assign({}, wallet), { connected: Boolean(connectedWalletMap[wallet.id]) }))), [connectedWalletMap, walletsBasedOnAuthMode]);
35
44
  useEffect(() => {