@dynamic-labs/sdk-react-core 0.18.0-RC.6 → 0.18.0-RC.8

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 (210) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +8 -8
  5. package/src/index.cjs +6 -0
  6. package/src/index.js +3 -0
  7. package/src/lib/Main.cjs +2 -2
  8. package/src/lib/Main.js +2 -2
  9. package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.cjs +5 -3
  10. package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.js +6 -4
  11. package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.types.d.ts +1 -0
  12. package/src/lib/components/DynamicConnectButton/DynamicConnectButton.cjs +2 -5
  13. package/src/lib/components/DynamicConnectButton/DynamicConnectButton.d.ts +1 -9
  14. package/src/lib/components/DynamicConnectButton/DynamicConnectButton.js +2 -4
  15. package/src/lib/components/DynamicConnectButton/components/ConnectButton.cjs +11 -0
  16. package/src/lib/components/DynamicConnectButton/components/ConnectButton.d.ts +9 -0
  17. package/src/lib/components/DynamicConnectButton/components/ConnectButton.js +7 -0
  18. package/src/lib/components/ModalHeader/ModalHeader.types.d.ts +1 -1
  19. package/src/lib/components/NetworkPicker/NetworkPicker.cjs +26 -1
  20. package/src/lib/components/NetworkPicker/NetworkPicker.js +26 -1
  21. package/src/lib/components/NetworkPicker/components/Network/Network.cjs +3 -1
  22. package/src/lib/components/NetworkPicker/components/Network/Network.d.ts +2 -1
  23. package/src/lib/components/NetworkPicker/components/Network/Network.js +3 -1
  24. package/src/lib/components/NetworkPicker/components/NetworkAction/NetworkAction.cjs +6 -1
  25. package/src/lib/components/NetworkPicker/components/NetworkAction/NetworkAction.d.ts +2 -1
  26. package/src/lib/components/NetworkPicker/components/NetworkAction/NetworkAction.js +6 -1
  27. package/src/lib/components/OTPVerificationView/OTPVerificationView.cjs +2 -3
  28. package/src/lib/components/OTPVerificationView/OTPVerificationView.d.ts +0 -2
  29. package/src/lib/components/OTPVerificationView/OTPVerificationView.js +2 -3
  30. package/src/lib/components/SelectWalletChainLayout/SelectWalletChainLayout.cjs +2 -1
  31. package/src/lib/components/SelectWalletChainLayout/SelectWalletChainLayout.js +2 -1
  32. package/src/lib/components/Tooltip/Tooltip.cjs +1 -1
  33. package/src/lib/components/Tooltip/Tooltip.js +1 -1
  34. package/src/lib/components/TosAndPp/TosAndPp.cjs +6 -5
  35. package/src/lib/components/TosAndPp/TosAndPp.d.ts +3 -4
  36. package/src/lib/components/TosAndPp/TosAndPp.js +6 -5
  37. package/src/lib/components/Transition/transition.type.d.ts +3 -3
  38. package/src/lib/context/DynamicContext/DynamicContext.cjs +28 -18
  39. package/src/lib/context/DynamicContext/DynamicContext.d.ts +4 -1
  40. package/src/lib/context/DynamicContext/DynamicContext.js +29 -19
  41. package/src/lib/context/DynamicContext/helpers.cjs +1 -2
  42. package/src/lib/context/DynamicContext/helpers.js +1 -2
  43. package/src/lib/context/ErrorContext/ErrorContext.cjs +6 -0
  44. package/src/lib/context/ErrorContext/ErrorContext.js +6 -0
  45. package/src/lib/context/MockContext/MockContext.cjs +2 -14
  46. package/src/lib/context/MockContext/MockContext.js +2 -14
  47. package/src/lib/context/ViewContext/ViewContext.d.ts +1 -1
  48. package/src/lib/context/WalletContext/WalletContext.cjs +46 -0
  49. package/src/lib/context/WalletContext/WalletContext.d.ts +7 -0
  50. package/src/lib/context/WalletContext/WalletContext.js +41 -0
  51. package/src/lib/context/WalletContext/index.d.ts +1 -0
  52. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.cjs +22 -63
  53. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.d.ts +1 -6
  54. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.js +23 -64
  55. package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +34 -15
  56. package/src/lib/layout/DynamicAuthLayout/Header/header.d.ts +1 -1
  57. package/src/lib/layout/DynamicAuthLayout/Header/header.js +35 -16
  58. package/src/lib/layout/DynamicAuthLayout/Header/header.types.d.ts +2 -0
  59. package/src/lib/layout/DynamicAuthLayout/{FooterContent/EmptyFooterContent/empty-footer-content.cjs → HelpContent/EmptyHelpContent/EmptyHelpContent.cjs} +2 -2
  60. package/src/lib/layout/DynamicAuthLayout/HelpContent/EmptyHelpContent/EmptyHelpContent.d.ts +2 -0
  61. package/src/lib/layout/DynamicAuthLayout/HelpContent/EmptyHelpContent/EmptyHelpContent.js +6 -0
  62. package/src/lib/layout/DynamicAuthLayout/HelpContent/EmptyHelpContent/index.d.ts +1 -0
  63. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpContent.cjs +36 -0
  64. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpContent.d.ts +2 -0
  65. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpContent.js +32 -0
  66. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.cjs +56 -0
  67. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.d.ts +2 -0
  68. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.js +52 -0
  69. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/index.d.ts +1 -0
  70. package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent/WalletListFooterContent.cjs → HelpContent/WalletListHelpContent/WalletListHelpContent.cjs} +3 -3
  71. package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent/WalletListFooterContent.d.ts → HelpContent/WalletListHelpContent/WalletListHelpContent.d.ts} +1 -1
  72. package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent/WalletListFooterContent.js → HelpContent/WalletListHelpContent/WalletListHelpContent.js} +3 -3
  73. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/index.d.ts +1 -0
  74. package/src/lib/layout/DynamicAuthLayout/{FooterContent → HelpContent}/WalletMoreInfoContent/WalletMoreInfoContent.cjs +3 -5
  75. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.d.ts +7 -0
  76. package/src/lib/layout/DynamicAuthLayout/{FooterContent → HelpContent}/WalletMoreInfoContent/WalletMoreInfoContent.js +3 -5
  77. package/src/lib/layout/DynamicAuthLayout/HelpContent/index.d.ts +4 -0
  78. package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.cjs +49 -0
  79. package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.d.ts +2 -0
  80. package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.js +45 -0
  81. package/src/lib/layout/DynamicAuthLayout/ToSFooter/index.d.ts +1 -0
  82. package/src/lib/shared/assets/chevron-left.cjs +5 -5
  83. package/src/lib/shared/assets/chevron-left.js +5 -5
  84. package/src/lib/shared/assets/close.cjs +5 -5
  85. package/src/lib/shared/assets/close.js +5 -5
  86. package/src/lib/shared/assets/footer-info-icon.cjs +2 -2
  87. package/src/lib/shared/assets/footer-info-icon.js +2 -2
  88. package/src/lib/shared/assets/index.d.ts +1 -0
  89. package/src/lib/shared/assets/question-mark.cjs +58 -0
  90. package/src/lib/shared/assets/question-mark.js +34 -0
  91. package/src/lib/shared/utils/hooks/index.d.ts +1 -0
  92. package/src/lib/shared/utils/hooks/useMediaQuery/index.d.ts +1 -0
  93. package/src/lib/shared/utils/hooks/useMediaQuery/useMediaQuery.cjs +31 -0
  94. package/src/lib/shared/utils/hooks/useMediaQuery/useMediaQuery.d.ts +1 -0
  95. package/src/lib/shared/utils/hooks/useMediaQuery/useMediaQuery.js +27 -0
  96. package/src/lib/styles/index.shadow.cjs +1 -1
  97. package/src/lib/styles/index.shadow.js +1 -1
  98. package/src/lib/utils/functions/getDynamicLayoutData/getDynamicLayoutData.cjs +7 -27
  99. package/src/lib/utils/functions/getDynamicLayoutData/getDynamicLayoutData.d.ts +3 -4
  100. package/src/lib/utils/functions/getDynamicLayoutData/getDynamicLayoutData.js +8 -28
  101. package/src/lib/utils/functions/walletListBuilder/walletListBuilder.cjs +1 -1
  102. package/src/lib/utils/functions/walletListBuilder/walletListBuilder.js +1 -1
  103. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +2 -1
  104. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +2 -1
  105. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +3 -1
  106. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +3 -1
  107. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +13 -0
  108. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +13 -0
  109. package/src/lib/utils/hooks/index.d.ts +4 -0
  110. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +9 -1
  111. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +9 -1
  112. package/src/lib/utils/hooks/useAuthLayoutChecks/index.d.ts +1 -0
  113. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +68 -0
  114. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.d.ts +10 -0
  115. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +64 -0
  116. package/src/lib/utils/hooks/useColorSchemePreference/useColorSchemePreference.cjs +16 -18
  117. package/src/lib/utils/hooks/useColorSchemePreference/useColorSchemePreference.js +16 -18
  118. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +20 -6
  119. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +14 -2
  120. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +20 -6
  121. package/src/lib/utils/hooks/useCountdown/useCountdown.cjs +39 -0
  122. package/src/lib/utils/hooks/useCountdown/useCountdown.d.ts +11 -0
  123. package/src/lib/utils/hooks/useCountdown/useCountdown.js +35 -0
  124. package/src/lib/utils/hooks/useInterval/useInterval.d.ts +1 -0
  125. package/src/lib/utils/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs +10 -0
  126. package/src/lib/utils/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +2 -0
  127. package/src/lib/utils/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +6 -0
  128. package/src/lib/utils/hooks/useKeyboardEventListener/useKeyboardEventListener.cjs +6 -8
  129. package/src/lib/utils/hooks/useKeyboardEventListener/useKeyboardEventListener.js +7 -9
  130. package/src/lib/utils/hooks/useRpcProviders/useRpcProviders.cjs +6 -28
  131. package/src/lib/utils/hooks/useRpcProviders/useRpcProviders.d.ts +0 -1
  132. package/src/lib/utils/hooks/useRpcProviders/useRpcProviders.js +7 -29
  133. package/src/lib/utils/hooks/useTimeout/useTimeout.cjs +27 -0
  134. package/src/lib/utils/hooks/useTimeout/useTimeout.d.ts +1 -0
  135. package/src/lib/utils/hooks/useTimeout/useTimeout.js +23 -0
  136. package/src/lib/utils/hooks/useTransition/useTransition.cjs +16 -24
  137. package/src/lib/utils/hooks/useTransition/useTransition.d.ts +3 -3
  138. package/src/lib/utils/hooks/useTransition/useTransition.js +17 -25
  139. package/src/lib/utils/hooks/useTransitionEvents/useTransitionEvents.cjs +11 -9
  140. package/src/lib/utils/hooks/useTransitionEvents/useTransitionEvents.js +11 -9
  141. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +4 -1
  142. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +4 -1
  143. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +1 -0
  144. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +1 -0
  145. package/src/lib/utils/hooks/useWallets/useWallets.cjs +4 -1
  146. package/src/lib/utils/hooks/useWallets/useWallets.d.ts +2 -1
  147. package/src/lib/utils/hooks/useWallets/useWallets.js +4 -1
  148. package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.cjs +2 -3
  149. package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.js +2 -3
  150. package/src/lib/views/EmailUpdate/EmailUpdate.cjs +2 -1
  151. package/src/lib/views/EmailUpdate/EmailUpdate.js +2 -1
  152. package/src/lib/views/EmailVerification/EmailVerification.cjs +13 -23
  153. package/src/lib/views/EmailVerification/EmailVerification.js +14 -24
  154. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +2 -2
  155. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +2 -2
  156. package/src/lib/views/LoginWithEmailView/LoginWithEmailView.cjs +3 -0
  157. package/src/lib/views/LoginWithEmailView/LoginWithEmailView.js +3 -0
  158. package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.cjs +2 -1
  159. package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.js +2 -1
  160. package/src/lib/views/PendingConnectView/PendingConnectView.cjs +2 -3
  161. package/src/lib/views/PendingConnectView/PendingConnectView.js +2 -3
  162. package/src/lib/views/PendingSignatureView/PendingSignatureView.cjs +2 -3
  163. package/src/lib/views/PendingSignatureView/PendingSignatureView.js +2 -3
  164. package/src/lib/views/QrCodeView/QRCode.cjs +36 -4
  165. package/src/lib/views/QrCodeView/QRCode.js +37 -5
  166. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.cjs +2 -2
  167. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.d.ts +1 -3
  168. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.js +2 -2
  169. package/src/lib/views/QrCodeView/QrCodeView.cjs +5 -8
  170. package/src/lib/views/QrCodeView/QrCodeView.js +5 -8
  171. package/src/lib/views/SocialRedirectView/SocialRedirectView.cjs +2 -4
  172. package/src/lib/views/SocialRedirectView/SocialRedirectView.js +2 -4
  173. package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs +15 -0
  174. package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.js +15 -0
  175. package/src/lib/views/WalletList/data.cjs +2 -1
  176. package/src/lib/views/WalletList/data.js +2 -1
  177. package/src/lib/views/WalletLockedView/WalletLockedView.cjs +63 -0
  178. package/src/lib/views/WalletLockedView/WalletLockedView.d.ts +2 -0
  179. package/src/lib/views/WalletLockedView/WalletLockedView.js +59 -0
  180. package/src/lib/views/WalletLockedView/index.d.ts +1 -0
  181. package/src/lib/views/viewToComponentMap.cjs +2 -0
  182. package/src/lib/views/viewToComponentMap.js +2 -0
  183. package/src/lib/widgets/DynamicBridgeWidget/DynamicBridgeWidget.cjs +2 -2
  184. package/src/lib/widgets/DynamicBridgeWidget/DynamicBridgeWidget.js +2 -2
  185. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeConnectButton/DynamicBridgeConnectButton.cjs +23 -0
  186. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeConnectButton/DynamicBridgeConnectButton.d.ts +8 -0
  187. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeConnectButton/DynamicBridgeConnectButton.js +19 -0
  188. package/src/lib/widgets/DynamicBridgeWidget/index.d.ts +1 -0
  189. package/src/lib/layout/DynamicAuthLayout/Footer/Footer.cjs +0 -67
  190. package/src/lib/layout/DynamicAuthLayout/Footer/Footer.d.ts +0 -10
  191. package/src/lib/layout/DynamicAuthLayout/Footer/Footer.js +0 -63
  192. package/src/lib/layout/DynamicAuthLayout/Footer/index.d.ts +0 -1
  193. package/src/lib/layout/DynamicAuthLayout/FooterContent/EmptyFooterContent/empty-footer-content.d.ts +0 -2
  194. package/src/lib/layout/DynamicAuthLayout/FooterContent/EmptyFooterContent/empty-footer-content.js +0 -6
  195. package/src/lib/layout/DynamicAuthLayout/FooterContent/WalletListFooterContent/index.d.ts +0 -1
  196. package/src/lib/layout/DynamicAuthLayout/FooterContent/WalletMoreInfoContent/WalletMoreInfoContent.d.ts +0 -8
  197. package/src/lib/layout/DynamicAuthLayout/FooterContent/index.d.ts +0 -3
  198. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/Item/Item.cjs +0 -0
  199. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/Item/Item.d.ts +0 -0
  200. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/Item/Item.js +0 -0
  201. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/Item/index.d.ts +0 -0
  202. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/NewToWeb3WalletItem/NewToWeb3WalletItem.cjs +0 -0
  203. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/NewToWeb3WalletItem/NewToWeb3WalletItem.d.ts +0 -0
  204. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/NewToWeb3WalletItem/NewToWeb3WalletItem.js +0 -0
  205. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/NewToWeb3WalletItem/index.d.ts +0 -0
  206. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.cjs +0 -0
  207. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.d.ts +0 -0
  208. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.js +0 -0
  209. /package/src/lib/layout/DynamicAuthLayout/{FooterContent/WalletListFooterContent → HelpContent/WalletListHelpContent}/WalletExtensionOrAppContinueButton/index.d.ts +0 -0
  210. /package/src/lib/layout/DynamicAuthLayout/{FooterContent → HelpContent}/WalletMoreInfoContent/index.d.ts +0 -0
@@ -10,7 +10,7 @@ var useVerifyWallet = require('../../useVerifyWallet/useVerifyWallet.cjs');
10
10
  var showPendingConnectView = require('../helpers/showPendingConnectView.cjs');
11
11
  var isConnectOnly = require('../helpers/isConnectOnly.cjs');
12
12
  require('@dynamic-labs/sdk-api');
13
- require('../../../../shared/logger.cjs');
13
+ var logger = require('../../../../shared/logger.cjs');
14
14
  require('@dynamic-labs/iconic');
15
15
  require('@dynamic-labs/wallet-connector-core');
16
16
  require('react/jsx-runtime');
@@ -61,6 +61,7 @@ const useConnectAndSignSplitSteps = () => {
61
61
  setView('pending-signature');
62
62
  }
63
63
  catch (err) {
64
+ logger.logger.debug(err);
64
65
  setErrorMessage(err.toString());
65
66
  goToInitialView();
66
67
  return;
@@ -78,6 +79,7 @@ const useConnectAndSignSplitSteps = () => {
78
79
  });
79
80
  }
80
81
  catch (err) {
82
+ logger.logger.debug(err);
81
83
  setErrorMessage(err.toString());
82
84
  goToInitialView();
83
85
  return;
@@ -6,7 +6,7 @@ import { useVerifyWallet } from '../../useVerifyWallet/useVerifyWallet.js';
6
6
  import { showPendingConnectView } from '../helpers/showPendingConnectView.js';
7
7
  import { isConnectOnly } from '../helpers/isConnectOnly.js';
8
8
  import '@dynamic-labs/sdk-api';
9
- import '../../../../shared/logger.js';
9
+ import { logger } from '../../../../shared/logger.js';
10
10
  import '@dynamic-labs/iconic';
11
11
  import '@dynamic-labs/wallet-connector-core';
12
12
  import 'react/jsx-runtime';
@@ -57,6 +57,7 @@ const useConnectAndSignSplitSteps = () => {
57
57
  setView('pending-signature');
58
58
  }
59
59
  catch (err) {
60
+ logger.debug(err);
60
61
  setErrorMessage(err.toString());
61
62
  goToInitialView();
62
63
  return;
@@ -74,6 +75,7 @@ const useConnectAndSignSplitSteps = () => {
74
75
  });
75
76
  }
76
77
  catch (err) {
78
+ logger.debug(err);
77
79
  setErrorMessage(err.toString());
78
80
  goToInitialView();
79
81
  return;
@@ -7,6 +7,18 @@ var useInternalDynamicContext = require('../../../../context/DynamicContext/useI
7
7
  var ViewContext = require('../../../../context/ViewContext/ViewContext.cjs');
8
8
  var ErrorContext = require('../../../../context/ErrorContext/ErrorContext.cjs');
9
9
  var useVerifyWallet = require('../../useVerifyWallet/useVerifyWallet.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('react');
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');
10
22
 
11
23
  const useSignConnectOnlyUser = () => {
12
24
  const { setView } = ViewContext.useViewContext();
@@ -37,6 +49,7 @@ const useSignConnectOnlyUser = () => {
37
49
  });
38
50
  }
39
51
  catch (err) {
52
+ logger.logger.debug(err);
40
53
  setErrorMessage(err.toString());
41
54
  setShowAuthFlow(false);
42
55
  return;
@@ -3,6 +3,18 @@ import { useInternalDynamicContext } from '../../../../context/DynamicContext/us
3
3
  import { useViewContext } from '../../../../context/ViewContext/ViewContext.js';
4
4
  import { useErrorContext } from '../../../../context/ErrorContext/ErrorContext.js';
5
5
  import { useVerifyWallet } from '../../useVerifyWallet/useVerifyWallet.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 'react';
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';
6
18
 
7
19
  const useSignConnectOnlyUser = () => {
8
20
  const { setView } = useViewContext();
@@ -33,6 +45,7 @@ const useSignConnectOnlyUser = () => {
33
45
  });
34
46
  }
35
47
  catch (err) {
48
+ logger.debug(err);
36
49
  setErrorMessage(err.toString());
37
50
  setShowAuthFlow(false);
38
51
  return;
@@ -24,3 +24,7 @@ export { useColorSchemePreference } from './useColorSchemePreference';
24
24
  export { useGetSocialIcon } from './useGetSocialIcon';
25
25
  export { useIconThemeVariant } from './useIconThemeVariant';
26
26
  export type { IconThemeVariant } from './useIconThemeVariant';
27
+ export { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';
28
+ export { useTimeout } from './useTimeout/useTimeout';
29
+ export { useInterval } from './useInterval/useInterval';
30
+ export { useCountdown } from './useCountdown/useCountdown';
@@ -5,8 +5,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
7
7
  var isWalletLinked = require('../../../functions/isWalletLinked/isWalletLinked.cjs');
8
+ var ViewContext = require('../../../../context/ViewContext/ViewContext.cjs');
9
+ var useInternalDynamicContext = require('../../../../context/DynamicContext/useInternalDynamicContext.cjs');
8
10
 
9
11
  const useSyncPrimaryWallet = ({ computeConnectedStateForWallets, handleLogOut, multiWalletWidgetState, primaryWallet, secondaryWallets, setMultiWalletWidgetState, setPrimaryWallet, setShowWidgetStatePopup, showWidgetStatePopup, canSync = true, }) => {
12
+ const { setShowAuthFlow } = useInternalDynamicContext.useInternalDynamicContext();
13
+ const { setView } = ViewContext.useViewContext();
10
14
  const handlePrimaryWalletNotActive = React.useCallback((connectedAddress) => {
11
15
  if (!primaryWallet)
12
16
  return;
@@ -72,7 +76,9 @@ const useSyncPrimaryWallet = ({ computeConnectedStateForWallets, handleLogOut, m
72
76
  computeConnectedStateForWallets();
73
77
  return;
74
78
  }
75
- handleLogOut();
79
+ // no wallet is connected
80
+ setShowAuthFlow(true);
81
+ setView('wallet-locked-view');
76
82
  });
77
83
  }, [
78
84
  primaryWallet,
@@ -84,6 +90,8 @@ const useSyncPrimaryWallet = ({ computeConnectedStateForWallets, handleLogOut, m
84
90
  handleLogOut,
85
91
  setPrimaryWallet,
86
92
  canSync,
93
+ setView,
94
+ setShowAuthFlow,
87
95
  ]);
88
96
  };
89
97
 
@@ -1,8 +1,12 @@
1
1
  import { useCallback, useEffect } from 'react';
2
2
  import { isSameAddress } from '@dynamic-labs/wallet-connector-core';
3
3
  import { isWalletLinked } from '../../../functions/isWalletLinked/isWalletLinked.js';
4
+ import { useViewContext } from '../../../../context/ViewContext/ViewContext.js';
5
+ import { useInternalDynamicContext } from '../../../../context/DynamicContext/useInternalDynamicContext.js';
4
6
 
5
7
  const useSyncPrimaryWallet = ({ computeConnectedStateForWallets, handleLogOut, multiWalletWidgetState, primaryWallet, secondaryWallets, setMultiWalletWidgetState, setPrimaryWallet, setShowWidgetStatePopup, showWidgetStatePopup, canSync = true, }) => {
8
+ const { setShowAuthFlow } = useInternalDynamicContext();
9
+ const { setView } = useViewContext();
6
10
  const handlePrimaryWalletNotActive = useCallback((connectedAddress) => {
7
11
  if (!primaryWallet)
8
12
  return;
@@ -68,7 +72,9 @@ const useSyncPrimaryWallet = ({ computeConnectedStateForWallets, handleLogOut, m
68
72
  computeConnectedStateForWallets();
69
73
  return;
70
74
  }
71
- handleLogOut();
75
+ // no wallet is connected
76
+ setShowAuthFlow(true);
77
+ setView('wallet-locked-view');
72
78
  });
73
79
  }, [
74
80
  primaryWallet,
@@ -80,6 +86,8 @@ const useSyncPrimaryWallet = ({ computeConnectedStateForWallets, handleLogOut, m
80
86
  handleLogOut,
81
87
  setPrimaryWallet,
82
88
  canSync,
89
+ setView,
90
+ setShowAuthFlow,
83
91
  ]);
84
92
  };
85
93
 
@@ -0,0 +1 @@
1
+ export { useAuthLayoutChecks } from './useAuthLayoutChecks';
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
6
+ var MockContext = require('../../../context/MockContext/MockContext.cjs');
7
+ var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
8
+ var isUserLinkingWallet = require('../../../shared/utils/functions/isUserLinkingWallet/isUserLinkingWallet.cjs');
9
+ var QrCodeContext = require('../../../context/QrCodeContext/QrCodeContext.cjs');
10
+ var getDynamicLayoutData = require('../../functions/getDynamicLayoutData/getDynamicLayoutData.cjs');
11
+
12
+ const useAuthLayoutChecks = (walletConnector) => {
13
+ const { view } = ViewContext.useViewContext();
14
+ const { user, privacyPolicyUrl, termsOfServiceUrl } = useInternalDynamicContext.useInternalDynamicContext();
15
+ const { showQrCodeMessage, showQrCodeImage } = QrCodeContext.useQrCodeContext();
16
+ const { mockedSDK } = MockContext.useMockContext();
17
+ const { helpHeaderData } = getDynamicLayoutData.getDynamicLayoutData({ view });
18
+ const isWalletListTypeView = view === 'wallet-connect-mobile-wallets-list' ||
19
+ view === 'wallet-list' ||
20
+ view === 'login-with-email-or-wallet-full-wallet-list';
21
+ const showHelpContent = Boolean(helpHeaderData &&
22
+ // Notice the negation here
23
+ !((view === 'qr-code' && !(walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.canConnectViaQrCode)) ||
24
+ view === 'no-qr-not-installed' ||
25
+ view === 'wallet-used' ||
26
+ view === 'chainalysis-blocked-wallet' ||
27
+ view === 'wallet-sign' ||
28
+ view === 'collect-user-data' ||
29
+ isUserLinkingWallet.isUserLinkingWallet(user, view, mockedSDK)));
30
+ const showHeader = view !== 'collect-user-data' &&
31
+ view !== 'no-access' &&
32
+ view !== 'chainalysis-blocked-wallet' &&
33
+ view !== 'update-email' &&
34
+ view !== 'verify-email' &&
35
+ view !== 'network-not-supported' &&
36
+ view !== 'wallet-locked-view' &&
37
+ view !== 'email-wallet-otp-verification-view';
38
+ const showToSFooter = Boolean(!isUserLinkingWallet.isUserLinkingWallet(user, view, mockedSDK) &&
39
+ (view === 'wallet-list' ||
40
+ view === 'wallet-connect-mobile-wallets-list' ||
41
+ // Don't show empty footer on login-with-email-or-wallet-full-wallet-list
42
+ (view === 'login-with-email-or-wallet' &&
43
+ termsOfServiceUrl &&
44
+ privacyPolicyUrl) ||
45
+ view === 'login-with-email-or-wallet-full-wallet-list'));
46
+ const showCloseButton = view !== 'login-with-email-or-wallet-full-wallet-list' &&
47
+ view !== 'login-with-email-verification';
48
+ const showBackButton = view === 'qr-code' ||
49
+ view === 'pending-signature' ||
50
+ view === 'no-qr-not-installed' ||
51
+ view === 'wallet-connect-mobile-wallets-list' ||
52
+ view === 'login-with-email-verification' ||
53
+ view === 'login-with-email-or-wallet-full-wallet-list' ||
54
+ view === 'wallet-group' ||
55
+ view === 'pending-connect';
56
+ const showQrCodePreHeader = view === 'qr-code' && showQrCodeMessage && !showQrCodeImage;
57
+ return {
58
+ isWalletListTypeView,
59
+ showBackButton,
60
+ showCloseButton,
61
+ showHeader,
62
+ showHelpContent,
63
+ showQrCodePreHeader,
64
+ showToSFooter,
65
+ };
66
+ };
67
+
68
+ exports.useAuthLayoutChecks = useAuthLayoutChecks;
@@ -0,0 +1,10 @@
1
+ import { WalletConnector } from '@dynamic-labs/wallet-connector-core';
2
+ export declare const useAuthLayoutChecks: (walletConnector?: WalletConnector | null) => {
3
+ isWalletListTypeView: boolean;
4
+ showBackButton: boolean;
5
+ showCloseButton: boolean;
6
+ showHeader: boolean;
7
+ showHelpContent: boolean;
8
+ showQrCodePreHeader: boolean;
9
+ showToSFooter: boolean;
10
+ };
@@ -0,0 +1,64 @@
1
+ import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
2
+ import { useMockContext } from '../../../context/MockContext/MockContext.js';
3
+ import { useViewContext } from '../../../context/ViewContext/ViewContext.js';
4
+ import { isUserLinkingWallet } from '../../../shared/utils/functions/isUserLinkingWallet/isUserLinkingWallet.js';
5
+ import { useQrCodeContext } from '../../../context/QrCodeContext/QrCodeContext.js';
6
+ import { getDynamicLayoutData } from '../../functions/getDynamicLayoutData/getDynamicLayoutData.js';
7
+
8
+ const useAuthLayoutChecks = (walletConnector) => {
9
+ const { view } = useViewContext();
10
+ const { user, privacyPolicyUrl, termsOfServiceUrl } = useInternalDynamicContext();
11
+ const { showQrCodeMessage, showQrCodeImage } = useQrCodeContext();
12
+ const { mockedSDK } = useMockContext();
13
+ const { helpHeaderData } = getDynamicLayoutData({ view });
14
+ const isWalletListTypeView = view === 'wallet-connect-mobile-wallets-list' ||
15
+ view === 'wallet-list' ||
16
+ view === 'login-with-email-or-wallet-full-wallet-list';
17
+ const showHelpContent = Boolean(helpHeaderData &&
18
+ // Notice the negation here
19
+ !((view === 'qr-code' && !(walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.canConnectViaQrCode)) ||
20
+ view === 'no-qr-not-installed' ||
21
+ view === 'wallet-used' ||
22
+ view === 'chainalysis-blocked-wallet' ||
23
+ view === 'wallet-sign' ||
24
+ view === 'collect-user-data' ||
25
+ isUserLinkingWallet(user, view, mockedSDK)));
26
+ const showHeader = view !== 'collect-user-data' &&
27
+ view !== 'no-access' &&
28
+ view !== 'chainalysis-blocked-wallet' &&
29
+ view !== 'update-email' &&
30
+ view !== 'verify-email' &&
31
+ view !== 'network-not-supported' &&
32
+ view !== 'wallet-locked-view' &&
33
+ view !== 'email-wallet-otp-verification-view';
34
+ const showToSFooter = Boolean(!isUserLinkingWallet(user, view, mockedSDK) &&
35
+ (view === 'wallet-list' ||
36
+ view === 'wallet-connect-mobile-wallets-list' ||
37
+ // Don't show empty footer on login-with-email-or-wallet-full-wallet-list
38
+ (view === 'login-with-email-or-wallet' &&
39
+ termsOfServiceUrl &&
40
+ privacyPolicyUrl) ||
41
+ view === 'login-with-email-or-wallet-full-wallet-list'));
42
+ const showCloseButton = view !== 'login-with-email-or-wallet-full-wallet-list' &&
43
+ view !== 'login-with-email-verification';
44
+ const showBackButton = view === 'qr-code' ||
45
+ view === 'pending-signature' ||
46
+ view === 'no-qr-not-installed' ||
47
+ view === 'wallet-connect-mobile-wallets-list' ||
48
+ view === 'login-with-email-verification' ||
49
+ view === 'login-with-email-or-wallet-full-wallet-list' ||
50
+ view === 'wallet-group' ||
51
+ view === 'pending-connect';
52
+ const showQrCodePreHeader = view === 'qr-code' && showQrCodeMessage && !showQrCodeImage;
53
+ return {
54
+ isWalletListTypeView,
55
+ showBackButton,
56
+ showCloseButton,
57
+ showHeader,
58
+ showHelpContent,
59
+ showQrCodePreHeader,
60
+ showToSFooter,
61
+ };
62
+ };
63
+
64
+ export { useAuthLayoutChecks };
@@ -2,26 +2,24 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var React = require('react');
5
+ require('@dynamic-labs/sdk-api');
6
+ require('../../../shared/logger.cjs');
7
+ require('@dynamic-labs/iconic');
8
+ require('@dynamic-labs/wallet-connector-core');
9
+ require('react/jsx-runtime');
10
+ require('../../../context/ViewContext/ViewContext.cjs');
11
+ require('react');
12
+ require('@dynamic-labs/wallet-book');
13
+ require('@dynamic-labs/utils');
14
+ require('../../constants/colors.cjs');
15
+ require('../../../shared/utils/classes/storage/localStorage.cjs');
16
+ require('ethers');
17
+ var useMediaQuery = require('../../../shared/utils/hooks/useMediaQuery/useMediaQuery.cjs');
18
+ require('../../../shared/consts/index.cjs');
6
19
 
7
20
  const useColorSchemePreference = () => {
8
- const [preference, setPreference] = React.useState(() => window.matchMedia('(prefers-color-scheme: dark)').matches
9
- ? 'dark'
10
- : 'light');
11
- React.useEffect(() => {
12
- const listener = (e) => {
13
- setPreference(e.matches ? 'dark' : 'light');
14
- };
15
- window
16
- .matchMedia('(prefers-color-scheme: dark)')
17
- .addEventListener('change', listener);
18
- return () => {
19
- window
20
- .matchMedia('(prefers-color-scheme: dark)')
21
- .removeEventListener('change', listener);
22
- };
23
- }, []);
24
- return preference;
21
+ const isDarkMode = useMediaQuery.useMediaQuery('(prefers-color-scheme: dark)');
22
+ return isDarkMode ? 'dark' : 'light';
25
23
  };
26
24
 
27
25
  exports.useColorSchemePreference = useColorSchemePreference;
@@ -1,23 +1,21 @@
1
- import { useState, useEffect } from 'react';
1
+ import '@dynamic-labs/sdk-api';
2
+ import '../../../shared/logger.js';
3
+ import '@dynamic-labs/iconic';
4
+ import '@dynamic-labs/wallet-connector-core';
5
+ import 'react/jsx-runtime';
6
+ import '../../../context/ViewContext/ViewContext.js';
7
+ import 'react';
8
+ import '@dynamic-labs/wallet-book';
9
+ import '@dynamic-labs/utils';
10
+ import '../../constants/colors.js';
11
+ import '../../../shared/utils/classes/storage/localStorage.js';
12
+ import 'ethers';
13
+ import { useMediaQuery } from '../../../shared/utils/hooks/useMediaQuery/useMediaQuery.js';
14
+ import '../../../shared/consts/index.js';
2
15
 
3
16
  const useColorSchemePreference = () => {
4
- const [preference, setPreference] = useState(() => window.matchMedia('(prefers-color-scheme: dark)').matches
5
- ? 'dark'
6
- : 'light');
7
- useEffect(() => {
8
- const listener = (e) => {
9
- setPreference(e.matches ? 'dark' : 'light');
10
- };
11
- window
12
- .matchMedia('(prefers-color-scheme: dark)')
13
- .addEventListener('change', listener);
14
- return () => {
15
- window
16
- .matchMedia('(prefers-color-scheme: dark)')
17
- .removeEventListener('change', listener);
18
- };
19
- }, []);
20
- return preference;
17
+ const isDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
18
+ return isDarkMode ? 'dark' : 'light';
21
19
  };
22
20
 
23
21
  export { useColorSchemePreference };
@@ -23,7 +23,7 @@ var api = require('../../../data/api.cjs');
23
23
  require('@dynamic-labs/multi-wallet');
24
24
  var shouldManuallyReconnectOnRefresh = require('../../functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.cjs');
25
25
 
26
- const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly, primaryWalletId, setPrimaryWalletId) => {
26
+ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, user, }) => {
27
27
  const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage.useLocalStorage(localStorage.CONNECTED_WALLETS_INFO, []);
28
28
  const [connectedWallet, setConnectedWallet] = React.useState(null);
29
29
  const [connectedWallets, setConnectedWallets] = React.useState([]);
@@ -37,9 +37,11 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
37
37
  });
38
38
  setConnectedWallets((currentWallets) => {
39
39
  const exists = currentWallets.some((currentWallet) => walletConnectorCore.isSameAddress(currentWallet.address, address, chain));
40
- if (currentWallets.length === 0 &&
41
- authMode === 'connect-only' &&
42
- !primaryWalletId) {
40
+ // when we connect first wallet, it should be set as a primary wallet
41
+ const shouldSetPrimaryWalletId = authMode === 'connect-only' &&
42
+ currentWallets.length === 0 &&
43
+ !primaryWalletId;
44
+ if (shouldSetPrimaryWalletId) {
43
45
  setPrimaryWalletId(`connect-only-wallet-${0}`);
44
46
  }
45
47
  if (exists) {
@@ -65,6 +67,7 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
65
67
  ...currentWallets,
66
68
  {
67
69
  chain,
70
+ id: `connect-only-wallet-${id}`,
68
71
  name: walletConnector.name,
69
72
  provider: getWalletProvider.getWalletProvider(walletConnector),
70
73
  walletPublicKey: address,
@@ -72,6 +75,16 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
72
75
  ];
73
76
  });
74
77
  }, [authMode, primaryWalletId, setConnectedWalletsInfo, setPrimaryWalletId]);
78
+ React.useEffect(() => {
79
+ const found = connectedWalletsInfo.find((connectedWalletInfo) => connectedWalletInfo.id !== primaryWalletId);
80
+ // when primaryWalletId is defined, but it does not exist in
81
+ // connectedWalletInfo that means we're out of sync and we want to remove all connected wallets data
82
+ if (primaryWalletId && !found && !user) {
83
+ removeConnectedWalletsInfo();
84
+ setConnectedWallets([]);
85
+ clearPrimaryWalletId();
86
+ }
87
+ }, []);
75
88
  const connectWalletByAddressAndChain = React.useCallback((name, address, chain, id) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
76
89
  const walletConnector = walletConnectorCore.getWalletConnectorByName(wallets.map((wallet) => wallet.walletConnector), name);
77
90
  if (walletConnector) {
@@ -93,9 +106,10 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
93
106
  }
94
107
  }), [setConnectedStates, wallets]);
95
108
  React.useEffect(() => {
96
- if (authMode === 'connect-only' &&
109
+ const shouldUpdateConnectedWalletsState = authMode === 'connect-only' &&
97
110
  connectedWalletsInfo.length &&
98
- !connectedWallets.length) {
111
+ !connectedWallets.length;
112
+ if (shouldUpdateConnectedWalletsState) {
99
113
  connectedWalletsInfo.forEach(({ name, walletPublicKey, chain }, id) => {
100
114
  if (chain) {
101
115
  connectWalletByAddressAndChain(name, walletPublicKey, chain, id);
@@ -1,13 +1,24 @@
1
1
  /// <reference types="react" />
2
2
  import { Chain, FetchPublicAddressOpts, WalletConnector } from '@dynamic-labs/wallet-connector-core';
3
- import { AuthModeType, Wallet, WalletOption } from '../../../shared';
3
+ import { AuthModeType, UserProfile, Wallet, WalletOption } from '../../../shared';
4
4
  export type ConnectedWalletConnectorType = {
5
5
  chain: Chain | undefined;
6
6
  name: string;
7
7
  provider: string;
8
8
  walletPublicKey: string;
9
+ id: string;
9
10
  };
10
- export declare const useConnectWallet: (wallets: WalletOption[], authMode: AuthModeType, environmentId: string, enableVisitTrackingOnConnectOnly: boolean, primaryWalletId: string | undefined, setPrimaryWalletId: (walletId: string) => void) => {
11
+ type Props = {
12
+ authMode: AuthModeType;
13
+ clearPrimaryWalletId: () => void;
14
+ enableVisitTrackingOnConnectOnly: boolean;
15
+ environmentId: string;
16
+ primaryWalletId: string | undefined;
17
+ setPrimaryWalletId: (walletId: string) => void;
18
+ wallets: WalletOption[];
19
+ user: UserProfile | undefined;
20
+ };
21
+ export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, user, }: Props) => {
11
22
  connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string>;
12
23
  connectWalletByAddressAndChain: (name: string, address: string, chain: Chain, id?: number) => Promise<void>;
13
24
  connectedWallet: Wallet | null;
@@ -17,3 +28,4 @@ export declare const useConnectWallet: (wallets: WalletOption[], authMode: AuthM
17
28
  setConnectedWallet: import("react").Dispatch<import("react").SetStateAction<Wallet | null>>;
18
29
  setConnectedWallets: import("react").Dispatch<import("react").SetStateAction<[] | Wallet[]>>;
19
30
  };
31
+ export {};
@@ -19,7 +19,7 @@ import { createVisit } from '../../../data/api.js';
19
19
  import '@dynamic-labs/multi-wallet';
20
20
  import { shouldManuallyReconnectOnRefresh } from '../../functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.js';
21
21
 
22
- const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly, primaryWalletId, setPrimaryWalletId) => {
22
+ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, user, }) => {
23
23
  const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage(CONNECTED_WALLETS_INFO, []);
24
24
  const [connectedWallet, setConnectedWallet] = useState(null);
25
25
  const [connectedWallets, setConnectedWallets] = useState([]);
@@ -33,9 +33,11 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
33
33
  });
34
34
  setConnectedWallets((currentWallets) => {
35
35
  const exists = currentWallets.some((currentWallet) => isSameAddress(currentWallet.address, address, chain));
36
- if (currentWallets.length === 0 &&
37
- authMode === 'connect-only' &&
38
- !primaryWalletId) {
36
+ // when we connect first wallet, it should be set as a primary wallet
37
+ const shouldSetPrimaryWalletId = authMode === 'connect-only' &&
38
+ currentWallets.length === 0 &&
39
+ !primaryWalletId;
40
+ if (shouldSetPrimaryWalletId) {
39
41
  setPrimaryWalletId(`connect-only-wallet-${0}`);
40
42
  }
41
43
  if (exists) {
@@ -61,6 +63,7 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
61
63
  ...currentWallets,
62
64
  {
63
65
  chain,
66
+ id: `connect-only-wallet-${id}`,
64
67
  name: walletConnector.name,
65
68
  provider: getWalletProvider(walletConnector),
66
69
  walletPublicKey: address,
@@ -68,6 +71,16 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
68
71
  ];
69
72
  });
70
73
  }, [authMode, primaryWalletId, setConnectedWalletsInfo, setPrimaryWalletId]);
74
+ useEffect(() => {
75
+ const found = connectedWalletsInfo.find((connectedWalletInfo) => connectedWalletInfo.id !== primaryWalletId);
76
+ // when primaryWalletId is defined, but it does not exist in
77
+ // connectedWalletInfo that means we're out of sync and we want to remove all connected wallets data
78
+ if (primaryWalletId && !found && !user) {
79
+ removeConnectedWalletsInfo();
80
+ setConnectedWallets([]);
81
+ clearPrimaryWalletId();
82
+ }
83
+ }, []);
71
84
  const connectWalletByAddressAndChain = useCallback((name, address, chain, id) => __awaiter(void 0, void 0, void 0, function* () {
72
85
  const walletConnector = getWalletConnectorByName(wallets.map((wallet) => wallet.walletConnector), name);
73
86
  if (walletConnector) {
@@ -89,9 +102,10 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
89
102
  }
90
103
  }), [setConnectedStates, wallets]);
91
104
  useEffect(() => {
92
- if (authMode === 'connect-only' &&
105
+ const shouldUpdateConnectedWalletsState = authMode === 'connect-only' &&
93
106
  connectedWalletsInfo.length &&
94
- !connectedWallets.length) {
107
+ !connectedWallets.length;
108
+ if (shouldUpdateConnectedWalletsState) {
95
109
  connectedWalletsInfo.forEach(({ name, walletPublicKey, chain }, id) => {
96
110
  if (chain) {
97
111
  connectWalletByAddressAndChain(name, walletPublicKey, chain, id);
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ const useCountdown = ({ callback, seconds }) => {
8
+ const [remainingSeconds, setRemainingSeconds] = React.useState(seconds);
9
+ const timeoutRef = React.useRef();
10
+ const startCountdown = () => {
11
+ if (timeoutRef.current) {
12
+ return setRemainingSeconds(seconds);
13
+ }
14
+ runCountdown();
15
+ };
16
+ const stopCountdown = () => {
17
+ clearTimeout(timeoutRef.current);
18
+ timeoutRef.current = undefined;
19
+ };
20
+ const runCountdown = () => {
21
+ timeoutRef.current = setTimeout(() => {
22
+ setRemainingSeconds((prevSeconds) => prevSeconds - 1);
23
+ }, 1000);
24
+ };
25
+ React.useEffect(() => {
26
+ if (!timeoutRef.current)
27
+ return;
28
+ if (remainingSeconds <= 0) {
29
+ if (callback)
30
+ callback();
31
+ return;
32
+ }
33
+ runCountdown();
34
+ return () => clearTimeout(timeoutRef.current);
35
+ }, [remainingSeconds, callback]);
36
+ return { remainingSeconds, startCountdown, stopCountdown };
37
+ };
38
+
39
+ exports.useCountdown = useCountdown;
@@ -0,0 +1,11 @@
1
+ type Prop = {
2
+ callback?: () => void;
3
+ seconds: number;
4
+ };
5
+ export interface UseCountdown {
6
+ remainingSeconds: number;
7
+ startCountdown: () => void;
8
+ stopCountdown: () => void;
9
+ }
10
+ export declare const useCountdown: ({ callback, seconds }: Prop) => UseCountdown;
11
+ export {};