@dynamic-labs/sdk-react-core 0.19.0-alpha.17 → 0.19.0-alpha.19

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 (171) hide show
  1. package/CHANGELOG.md +13 -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/components/Button/Button.cjs +2 -7
  8. package/src/lib/components/Button/Button.d.ts +0 -2
  9. package/src/lib/components/Button/Button.js +2 -7
  10. package/src/lib/components/CopyButton/CopyButton.cjs +1 -3
  11. package/src/lib/components/CopyButton/CopyButton.js +1 -3
  12. package/src/lib/components/DynamicFooter/DynamicFooter.cjs +10 -0
  13. package/src/lib/components/DynamicFooter/DynamicFooter.d.ts +2 -0
  14. package/src/lib/components/DynamicFooter/DynamicFooter.js +6 -0
  15. package/src/lib/components/DynamicFooter/index.d.ts +1 -0
  16. package/src/lib/components/LogoutButton/LogoutButton.cjs +1 -1
  17. package/src/lib/components/LogoutButton/LogoutButton.js +1 -1
  18. package/src/lib/components/ModalHeader/ModalHeader.cjs +3 -3
  19. package/src/lib/components/ModalHeader/ModalHeader.js +3 -3
  20. package/src/lib/components/ModalHeader/ModalHeader.types.d.ts +3 -0
  21. package/src/lib/components/OTPVerificationView/OTPVerificationView.cjs +7 -5
  22. package/src/lib/components/OTPVerificationView/OTPVerificationView.d.ts +0 -2
  23. package/src/lib/components/OTPVerificationView/OTPVerificationView.js +7 -5
  24. package/src/lib/components/PoweredByDynamic/PoweredByDynamic.cjs +1 -1
  25. package/src/lib/components/PoweredByDynamic/PoweredByDynamic.js +1 -1
  26. package/src/lib/components/SelectNetworkButton/SelectNetworkButton.cjs +1 -1
  27. package/src/lib/components/SelectNetworkButton/SelectNetworkButton.js +1 -1
  28. package/src/lib/components/SelectWalletChainLayout/SelectWalletChainLayout.cjs +1 -2
  29. package/src/lib/components/SelectWalletChainLayout/SelectWalletChainLayout.js +1 -2
  30. package/src/lib/components/SendBalanceForm/SendBalanceForm.cjs +1 -1
  31. package/src/lib/components/SendBalanceForm/SendBalanceForm.js +1 -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/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.cjs +2 -2
  35. package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.js +2 -2
  36. package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.cjs +1 -1
  37. package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.js +1 -1
  38. package/src/lib/components/Typography/Typography.cjs +0 -1
  39. package/src/lib/components/Typography/Typography.js +0 -1
  40. package/src/lib/components/Typography/Typography.types.d.ts +1 -1
  41. package/src/lib/components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.cjs +1 -1
  42. package/src/lib/components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.js +1 -1
  43. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.cjs +1 -1
  44. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.js +1 -1
  45. package/src/lib/components/UserProfileForm/UserProfileForm.cjs +1 -1
  46. package/src/lib/components/UserProfileForm/UserProfileForm.js +1 -1
  47. package/src/lib/context/DynamicContext/DynamicContext.cjs +9 -9
  48. package/src/lib/context/DynamicContext/DynamicContext.js +9 -9
  49. package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.cjs +13 -0
  50. package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.d.ts +1 -1
  51. package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.js +13 -0
  52. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +31 -7
  53. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +31 -7
  54. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.cjs +3 -1
  55. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.js +3 -1
  56. package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +7 -20
  57. package/src/lib/layout/DynamicAuthLayout/Header/header.js +7 -20
  58. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.cjs +6 -4
  59. package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.js +6 -4
  60. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.cjs +1 -2
  61. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.js +1 -2
  62. package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.cjs +1 -1
  63. package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.js +1 -1
  64. package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.cjs +1 -1
  65. package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.js +1 -1
  66. package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.cjs +1 -1
  67. package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.js +1 -1
  68. package/src/lib/locale/en/translation.cjs +13 -1
  69. package/src/lib/locale/en/translation.js +13 -1
  70. package/src/lib/main.global.cjs +1 -1
  71. package/src/lib/main.global.js +1 -1
  72. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +2 -2
  73. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +2 -2
  74. package/src/lib/shared/assets/arrow-left.cjs +53 -0
  75. package/src/lib/shared/assets/arrow-left.js +29 -0
  76. package/src/lib/shared/assets/arrow-right-circle.cjs +53 -0
  77. package/src/lib/shared/assets/arrow-right-circle.js +29 -0
  78. package/src/lib/shared/assets/check-connection.cjs +53 -0
  79. package/src/lib/shared/assets/check-connection.js +29 -0
  80. package/src/lib/shared/assets/index.d.ts +3 -0
  81. package/src/lib/styles/index.shadow.cjs +1 -1
  82. package/src/lib/styles/index.shadow.js +1 -1
  83. package/src/lib/utils/constants/index.d.ts +1 -1
  84. package/src/lib/utils/constants/typography.d.ts +0 -1
  85. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +22 -5
  86. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.d.ts +2 -0
  87. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +22 -5
  88. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +43 -25
  89. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +3 -2
  90. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +43 -25
  91. package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.cjs +24 -0
  92. package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.js +24 -0
  93. package/src/lib/utils/hooks/useIsLoggedIn/useIsLoggedIn.cjs +2 -4
  94. package/src/lib/utils/hooks/useIsLoggedIn/useIsLoggedIn.js +2 -4
  95. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.cjs +2 -2
  96. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js +2 -2
  97. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +1 -1
  98. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +1 -1
  99. package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.cjs +1 -1
  100. package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.js +1 -1
  101. package/src/lib/views/CollectUserDataView/CollectUserDataView.cjs +12 -5
  102. package/src/lib/views/CollectUserDataView/CollectUserDataView.js +12 -5
  103. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +1 -1
  104. package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +1 -1
  105. package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.cjs +3 -1
  106. package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.js +3 -1
  107. package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.cjs +1 -1
  108. package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.js +1 -1
  109. package/src/lib/views/EmailUpdate/EmailUpdate.cjs +6 -7
  110. package/src/lib/views/EmailUpdate/EmailUpdate.js +7 -8
  111. package/src/lib/views/EmailVerification/EmailVerification.cjs +12 -18
  112. package/src/lib/views/EmailVerification/EmailVerification.js +13 -19
  113. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +2 -3
  114. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +2 -3
  115. package/src/lib/views/LoginView/LoginView.cjs +3 -5
  116. package/src/lib/views/LoginView/LoginView.js +4 -6
  117. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.cjs +2 -2
  118. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.js +2 -2
  119. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +1 -1
  120. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +1 -1
  121. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +4 -1
  122. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +4 -1
  123. package/src/lib/views/NoAccess/NoAccess.cjs +1 -1
  124. package/src/lib/views/NoAccess/NoAccess.js +1 -1
  125. package/src/lib/views/PendingConnectView/PendingConnectView.cjs +2 -3
  126. package/src/lib/views/PendingConnectView/PendingConnectView.js +2 -3
  127. package/src/lib/views/PendingSignatureView/PendingSignatureView.cjs +5 -6
  128. package/src/lib/views/PendingSignatureView/PendingSignatureView.js +5 -6
  129. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.cjs +5 -2
  130. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.d.ts +2 -1
  131. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.js +5 -2
  132. package/src/lib/views/QrCodeView/QrCodeView.cjs +22 -23
  133. package/src/lib/views/QrCodeView/QrCodeView.js +23 -24
  134. package/src/lib/views/SocialRedirectView/SocialRedirectView.cjs +1 -1
  135. package/src/lib/views/SocialRedirectView/SocialRedirectView.js +1 -1
  136. package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.cjs +1 -1
  137. package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.js +1 -1
  138. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +1 -1
  139. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +1 -1
  140. package/src/lib/views/UserFieldEditorView/UserFieldEditorView.cjs +1 -1
  141. package/src/lib/views/UserFieldEditorView/UserFieldEditorView.js +1 -1
  142. package/src/lib/views/WalletCannotBeTransferredView/WalletCannotBeTransferredView.cjs +1 -1
  143. package/src/lib/views/WalletCannotBeTransferredView/WalletCannotBeTransferredView.js +1 -1
  144. package/src/lib/views/WalletList/WalletList.cjs +7 -3
  145. package/src/lib/views/WalletList/WalletList.js +8 -4
  146. package/src/lib/views/WalletLockedView/WalletLockedView.cjs +1 -1
  147. package/src/lib/views/WalletLockedView/WalletLockedView.js +1 -1
  148. package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.cjs +2 -2
  149. package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.js +2 -2
  150. package/src/lib/views/WalletUsedView/WalletUsedView.cjs +1 -1
  151. package/src/lib/views/WalletUsedView/WalletUsedView.js +1 -1
  152. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.cjs +1 -1
  153. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.js +1 -1
  154. package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.cjs +1 -1
  155. package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.js +1 -1
  156. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +2 -2
  157. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +2 -2
  158. package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.cjs +2 -2
  159. package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.js +2 -2
  160. package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.cjs +1 -1
  161. package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.js +1 -1
  162. package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.cjs +1 -1
  163. package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.js +1 -1
  164. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.cjs +1 -1
  165. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.js +1 -1
  166. package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.cjs +1 -1
  167. package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.js +1 -1
  168. package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.cjs +2 -2
  169. package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.js +2 -2
  170. package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.cjs +2 -2
  171. package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.js +2 -2
@@ -23,9 +23,35 @@ 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 = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }) => {
26
+ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, }) => {
27
27
  const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage.useLocalStorage(localStorage.CONNECTED_WALLETS_INFO, []);
28
28
  const [connectedWallets, setConnectedWallets] = React.useState([]);
29
+ const unlinkConnectedWallet = React.useCallback((walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
30
+ const walletToDisconnect = connectedWallets.find((wallet) => wallet.id === walletId);
31
+ yield (walletToDisconnect === null || walletToDisconnect === void 0 ? void 0 : walletToDisconnect.connector.endSession());
32
+ const updatedConnectedWalletsInfo = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
33
+ setConnectedWalletsInfo(updatedConnectedWalletsInfo);
34
+ onUnlink(updatedConnectedWalletsInfo, walletToDisconnect);
35
+ if (walletId !== primaryWalletId) {
36
+ return;
37
+ }
38
+ const hasConnectedWallet = updatedConnectedWalletsInfo.length > 0;
39
+ if (isBridgeFlow || !hasConnectedWallet) {
40
+ clearPrimaryWalletId();
41
+ }
42
+ else {
43
+ setPrimaryWalletId(updatedConnectedWalletsInfo[0].id);
44
+ }
45
+ }), [
46
+ clearPrimaryWalletId,
47
+ connectedWallets,
48
+ connectedWalletsInfo,
49
+ isBridgeFlow,
50
+ onUnlink,
51
+ primaryWalletId,
52
+ setConnectedWalletsInfo,
53
+ setPrimaryWalletId,
54
+ ]);
29
55
  // The function to update and define the connectedWallets list.
30
56
  // It uses walletConnector to get the current wallet address and network
31
57
  // The address and network in the runtime are updated by the event listeners
@@ -36,14 +62,19 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
36
62
  if (!walletConnectors.length) {
37
63
  return;
38
64
  }
39
- const nextConnectedWallets = (yield Promise.all(connectedWalletsInfo.map((storedConnectedWalletInfo) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
65
+ const updatedConnectedWallets = (yield Promise.all(connectedWalletsInfo.map((storedConnectedWalletInfo) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
40
66
  const walletConnector = walletConnectorCore.getWalletConnectorByKey(walletConnectors, storedConnectedWalletInfo.walletConnectorKey);
41
67
  if (!walletConnector) {
42
68
  walletConnectorCore.logger.error('Could not find walletConnector: ' +
43
69
  storedConnectedWalletInfo.walletConnectorKey);
44
- return Promise.resolve(null);
70
+ yield unlinkConnectedWallet(storedConnectedWalletInfo.id);
71
+ return null;
45
72
  }
46
73
  const [walletAddress] = yield walletConnector.getConnectedAccounts();
74
+ if (!walletAddress) {
75
+ yield unlinkConnectedWallet(storedConnectedWalletInfo.id);
76
+ return null;
77
+ }
47
78
  const walletNetwork = yield walletConnector.getNetwork();
48
79
  const walletChain = walletConnector.connectedChain;
49
80
  const walletObject = {
@@ -54,14 +85,15 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
54
85
  id: storedConnectedWalletInfo.id,
55
86
  network: walletNetwork,
56
87
  };
57
- return Promise.resolve(walletObject);
88
+ return walletObject;
58
89
  })))).filter((wallet) => Boolean(wallet));
59
- setConnectedWallets(nextConnectedWallets);
60
- }), [connectedWalletsInfo, wallets]);
90
+ setConnectedWallets(updatedConnectedWallets);
91
+ }), [connectedWalletsInfo, unlinkConnectedWallet, wallets]);
61
92
  // Generate the connectedWallets list when connectedWalletsInfo (localStorage) or memoized wallet connector updates
62
93
  React.useEffect(() => {
63
94
  updateConnectedWalletsList();
64
- }, [updateConnectedWalletsList]);
95
+ // eslint-disable-next-line react-hooks/exhaustive-deps
96
+ }, [connectedWalletsInfo, wallets]);
65
97
  const getNextIdAvailable = React.useCallback((currentWallets) => {
66
98
  const existingIds = currentWallets.map(({ id }) => id);
67
99
  const sortedIds = existingIds
@@ -85,15 +117,14 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
85
117
  const connectedWallet = connectedWallets[0] || null;
86
118
  // Keeps connected wallet data inside localStorage
87
119
  const applyConnectedWalletToStore = ({ walletId, walletConnectorKey, walletChain, provider, }) => {
88
- const nextConnectedWalletsInfo = [...connectedWalletsInfo];
89
- nextConnectedWalletsInfo.push({
120
+ const updatedConnectedWalletsInfo = [...connectedWalletsInfo];
121
+ updatedConnectedWalletsInfo.push({
90
122
  id: walletId,
91
123
  provider,
92
124
  walletChain,
93
125
  walletConnectorKey,
94
126
  });
95
- setConnectedWalletsInfo(nextConnectedWalletsInfo);
96
- return Promise.resolve();
127
+ setConnectedWalletsInfo(updatedConnectedWalletsInfo);
97
128
  };
98
129
  // Updates connected wallet (network and address) and verifies connected wallet connection
99
130
  const refreshConnectedWallet = (walletId, walletConnector) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
@@ -171,20 +202,7 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
171
202
  });
172
203
  }
173
204
  }
174
- return Promise.resolve(publicWalletAddress);
175
- });
176
- const unlinkConnectedWallet = (walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
177
- const connectedWalletToUnlink = connectedWallets.find((wallet) => wallet.id === walletId);
178
- if (!connectedWalletToUnlink) {
179
- return;
180
- }
181
- yield connectedWalletToUnlink.connector.endSession();
182
- const filteredWallets = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
183
- if (walletId === primaryWalletId) {
184
- clearPrimaryWalletId();
185
- }
186
- setConnectedWalletsInfo(filteredWallets);
187
- onUnlink(connectedWalletToUnlink, filteredWallets);
205
+ return publicWalletAddress;
188
206
  });
189
207
  const getConnectedWalletById = React.useCallback((walletId) => connectedWallets.find((wallet) => wallet.id === walletId), [connectedWallets]);
190
208
  return {
@@ -15,9 +15,10 @@ type Props = {
15
15
  primaryWalletId: string | undefined;
16
16
  setPrimaryWalletId: (walletId: string) => void;
17
17
  wallets: WalletOption[];
18
- onUnlink: (wallet: Wallet, connectedWalletsInfo: ConnectedWalletConnectorType[]) => void;
18
+ onUnlink: (connectedWalletsInfo: ConnectedWalletConnectorType[], wallet?: Wallet) => void;
19
19
  onBeforeConnectSuccessConfirmation: OnBeforeConnectSuccessConfirmation | undefined;
20
20
  setShowAuthFlow: Dispatch<SetStateAction<boolean>>;
21
+ isBridgeFlow: boolean;
21
22
  };
22
23
  type UseConnectWalletValue = {
23
24
  connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts, shouldCallCallback?: boolean) => Promise<string | undefined>;
@@ -29,5 +30,5 @@ type UseConnectWalletValue = {
29
30
  removeConnectedWalletsInfo: () => void;
30
31
  unlinkConnectedWallet: (walletId: string) => Promise<void>;
31
32
  };
32
- export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }: Props) => UseConnectWalletValue;
33
+ export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, }: Props) => UseConnectWalletValue;
33
34
  export {};
@@ -19,9 +19,35 @@ 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 = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }) => {
22
+ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, }) => {
23
23
  const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage(CONNECTED_WALLETS_INFO, []);
24
24
  const [connectedWallets, setConnectedWallets] = useState([]);
25
+ const unlinkConnectedWallet = useCallback((walletId) => __awaiter(void 0, void 0, void 0, function* () {
26
+ const walletToDisconnect = connectedWallets.find((wallet) => wallet.id === walletId);
27
+ yield (walletToDisconnect === null || walletToDisconnect === void 0 ? void 0 : walletToDisconnect.connector.endSession());
28
+ const updatedConnectedWalletsInfo = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
29
+ setConnectedWalletsInfo(updatedConnectedWalletsInfo);
30
+ onUnlink(updatedConnectedWalletsInfo, walletToDisconnect);
31
+ if (walletId !== primaryWalletId) {
32
+ return;
33
+ }
34
+ const hasConnectedWallet = updatedConnectedWalletsInfo.length > 0;
35
+ if (isBridgeFlow || !hasConnectedWallet) {
36
+ clearPrimaryWalletId();
37
+ }
38
+ else {
39
+ setPrimaryWalletId(updatedConnectedWalletsInfo[0].id);
40
+ }
41
+ }), [
42
+ clearPrimaryWalletId,
43
+ connectedWallets,
44
+ connectedWalletsInfo,
45
+ isBridgeFlow,
46
+ onUnlink,
47
+ primaryWalletId,
48
+ setConnectedWalletsInfo,
49
+ setPrimaryWalletId,
50
+ ]);
25
51
  // The function to update and define the connectedWallets list.
26
52
  // It uses walletConnector to get the current wallet address and network
27
53
  // The address and network in the runtime are updated by the event listeners
@@ -32,14 +58,19 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
32
58
  if (!walletConnectors.length) {
33
59
  return;
34
60
  }
35
- const nextConnectedWallets = (yield Promise.all(connectedWalletsInfo.map((storedConnectedWalletInfo) => __awaiter(void 0, void 0, void 0, function* () {
61
+ const updatedConnectedWallets = (yield Promise.all(connectedWalletsInfo.map((storedConnectedWalletInfo) => __awaiter(void 0, void 0, void 0, function* () {
36
62
  const walletConnector = getWalletConnectorByKey(walletConnectors, storedConnectedWalletInfo.walletConnectorKey);
37
63
  if (!walletConnector) {
38
64
  logger.error('Could not find walletConnector: ' +
39
65
  storedConnectedWalletInfo.walletConnectorKey);
40
- return Promise.resolve(null);
66
+ yield unlinkConnectedWallet(storedConnectedWalletInfo.id);
67
+ return null;
41
68
  }
42
69
  const [walletAddress] = yield walletConnector.getConnectedAccounts();
70
+ if (!walletAddress) {
71
+ yield unlinkConnectedWallet(storedConnectedWalletInfo.id);
72
+ return null;
73
+ }
43
74
  const walletNetwork = yield walletConnector.getNetwork();
44
75
  const walletChain = walletConnector.connectedChain;
45
76
  const walletObject = {
@@ -50,14 +81,15 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
50
81
  id: storedConnectedWalletInfo.id,
51
82
  network: walletNetwork,
52
83
  };
53
- return Promise.resolve(walletObject);
84
+ return walletObject;
54
85
  })))).filter((wallet) => Boolean(wallet));
55
- setConnectedWallets(nextConnectedWallets);
56
- }), [connectedWalletsInfo, wallets]);
86
+ setConnectedWallets(updatedConnectedWallets);
87
+ }), [connectedWalletsInfo, unlinkConnectedWallet, wallets]);
57
88
  // Generate the connectedWallets list when connectedWalletsInfo (localStorage) or memoized wallet connector updates
58
89
  useEffect(() => {
59
90
  updateConnectedWalletsList();
60
- }, [updateConnectedWalletsList]);
91
+ // eslint-disable-next-line react-hooks/exhaustive-deps
92
+ }, [connectedWalletsInfo, wallets]);
61
93
  const getNextIdAvailable = useCallback((currentWallets) => {
62
94
  const existingIds = currentWallets.map(({ id }) => id);
63
95
  const sortedIds = existingIds
@@ -81,15 +113,14 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
81
113
  const connectedWallet = connectedWallets[0] || null;
82
114
  // Keeps connected wallet data inside localStorage
83
115
  const applyConnectedWalletToStore = ({ walletId, walletConnectorKey, walletChain, provider, }) => {
84
- const nextConnectedWalletsInfo = [...connectedWalletsInfo];
85
- nextConnectedWalletsInfo.push({
116
+ const updatedConnectedWalletsInfo = [...connectedWalletsInfo];
117
+ updatedConnectedWalletsInfo.push({
86
118
  id: walletId,
87
119
  provider,
88
120
  walletChain,
89
121
  walletConnectorKey,
90
122
  });
91
- setConnectedWalletsInfo(nextConnectedWalletsInfo);
92
- return Promise.resolve();
123
+ setConnectedWalletsInfo(updatedConnectedWalletsInfo);
93
124
  };
94
125
  // Updates connected wallet (network and address) and verifies connected wallet connection
95
126
  const refreshConnectedWallet = (walletId, walletConnector) => __awaiter(void 0, void 0, void 0, function* () {
@@ -167,20 +198,7 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
167
198
  });
168
199
  }
169
200
  }
170
- return Promise.resolve(publicWalletAddress);
171
- });
172
- const unlinkConnectedWallet = (walletId) => __awaiter(void 0, void 0, void 0, function* () {
173
- const connectedWalletToUnlink = connectedWallets.find((wallet) => wallet.id === walletId);
174
- if (!connectedWalletToUnlink) {
175
- return;
176
- }
177
- yield connectedWalletToUnlink.connector.endSession();
178
- const filteredWallets = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
179
- if (walletId === primaryWalletId) {
180
- clearPrimaryWalletId();
181
- }
182
- setConnectedWalletsInfo(filteredWallets);
183
- onUnlink(connectedWalletToUnlink, filteredWallets);
201
+ return publicWalletAddress;
184
202
  });
185
203
  const getConnectedWalletById = useCallback((walletId) => connectedWallets.find((wallet) => wallet.id === walletId), [connectedWallets]);
186
204
  return {
@@ -52,6 +52,9 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
52
52
  'login-with-email-or-wallet-full-wallet-list': {
53
53
  heading: t('dyn_login.title.all_wallet_list'),
54
54
  },
55
+ 'login-with-email-verification': {
56
+ heading: 'Confirm verification code',
57
+ },
55
58
  'login-with-wallet-only': {
56
59
  heading: t('dyn_login.title.wallet_only'),
57
60
  },
@@ -60,13 +63,34 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
60
63
  ? t('dyn_wallet_list.title.connect')
61
64
  : t('dyn_wallet_list.title.link'),
62
65
  },
66
+ 'network-not-supported': {
67
+ heading: 'Update Network',
68
+ },
69
+ 'pending-connect': {
70
+ heading: t('dyn_login.connect_wallet.title'),
71
+ },
72
+ 'pending-signature': {
73
+ heading: t('dyn_login.sign_wallet.title'),
74
+ },
75
+ 'qr-code': {
76
+ heading: t('dyn_login.qr_code.title'),
77
+ },
78
+ 'verify-email': {
79
+ heading: 'Confirm verification code',
80
+ },
63
81
  'wallet-connect-mobile-wallets-list': {
64
82
  heading: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(iconic.WalletConnectIcon, { style: { height: '1.5rem', width: '1.5rem' } }), ' ', t('dyn_wallet_conect.mobile.wallet_list.title')] })),
65
83
  },
84
+ 'wallet-group': {
85
+ heading: t('dyn_login.wallet_group.title'),
86
+ },
66
87
  'wallet-list': {
67
88
  heading: t('dyn_wallet_list.title.select'),
68
89
  },
69
90
  'wallet-sign': { heading: t('dyn_wallet_transfer.sign.title') },
91
+ 'wallet-used': {
92
+ heading: 'Transfer this wallet?',
93
+ },
70
94
  };
71
95
  const helpHeaderData = helpHeaderMap[view];
72
96
  const headerData = headerMap[view];
@@ -48,6 +48,9 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
48
48
  'login-with-email-or-wallet-full-wallet-list': {
49
49
  heading: t('dyn_login.title.all_wallet_list'),
50
50
  },
51
+ 'login-with-email-verification': {
52
+ heading: 'Confirm verification code',
53
+ },
51
54
  'login-with-wallet-only': {
52
55
  heading: t('dyn_login.title.wallet_only'),
53
56
  },
@@ -56,13 +59,34 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
56
59
  ? t('dyn_wallet_list.title.connect')
57
60
  : t('dyn_wallet_list.title.link'),
58
61
  },
62
+ 'network-not-supported': {
63
+ heading: 'Update Network',
64
+ },
65
+ 'pending-connect': {
66
+ heading: t('dyn_login.connect_wallet.title'),
67
+ },
68
+ 'pending-signature': {
69
+ heading: t('dyn_login.sign_wallet.title'),
70
+ },
71
+ 'qr-code': {
72
+ heading: t('dyn_login.qr_code.title'),
73
+ },
74
+ 'verify-email': {
75
+ heading: 'Confirm verification code',
76
+ },
59
77
  'wallet-connect-mobile-wallets-list': {
60
78
  heading: (jsxs(Fragment, { children: [jsx(WalletConnectIcon, { style: { height: '1.5rem', width: '1.5rem' } }), ' ', t('dyn_wallet_conect.mobile.wallet_list.title')] })),
61
79
  },
80
+ 'wallet-group': {
81
+ heading: t('dyn_login.wallet_group.title'),
82
+ },
62
83
  'wallet-list': {
63
84
  heading: t('dyn_wallet_list.title.select'),
64
85
  },
65
86
  'wallet-sign': { heading: t('dyn_wallet_transfer.sign.title') },
87
+ 'wallet-used': {
88
+ heading: 'Transfer this wallet?',
89
+ },
66
90
  };
67
91
  const helpHeaderData = helpHeaderMap[view];
68
92
  const headerData = headerMap[view];
@@ -5,10 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
6
6
 
7
7
  const useIsLoggedIn = () => {
8
- const { authMode, user, primaryWallet } = useInternalDynamicContext.useInternalDynamicContext();
9
- if (authMode === 'connect-and-sign')
10
- return Boolean(user);
11
- return Boolean(primaryWallet);
8
+ const { user, primaryWallet } = useInternalDynamicContext.useInternalDynamicContext();
9
+ return Boolean(user || primaryWallet);
12
10
  };
13
11
 
14
12
  exports.useIsLoggedIn = useIsLoggedIn;
@@ -1,10 +1,8 @@
1
1
  import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
2
2
 
3
3
  const useIsLoggedIn = () => {
4
- const { authMode, user, primaryWallet } = useInternalDynamicContext();
5
- if (authMode === 'connect-and-sign')
6
- return Boolean(user);
7
- return Boolean(primaryWallet);
4
+ const { user, primaryWallet } = useInternalDynamicContext();
5
+ return Boolean(user || primaryWallet);
8
6
  };
9
7
 
10
8
  export { useIsLoggedIn };
@@ -25,10 +25,10 @@ const usePrimaryWalletId = (internalEvents) => {
25
25
  const setPrimaryWalletId = React.useCallback((walletId) => {
26
26
  setPrimaryWalletIdState(walletId);
27
27
  }, [setPrimaryWalletIdState]);
28
- const clearPrimaryWalletId = () => {
28
+ const clearPrimaryWalletId = React.useCallback(() => {
29
29
  clearPrimaryWalletIdStorage();
30
30
  internalEvents.emit('clearPrimaryWallet');
31
- };
31
+ }, [clearPrimaryWalletIdStorage, internalEvents]);
32
32
  return {
33
33
  clearPrimaryWalletId,
34
34
  primaryWalletId,
@@ -21,10 +21,10 @@ const usePrimaryWalletId = (internalEvents) => {
21
21
  const setPrimaryWalletId = useCallback((walletId) => {
22
22
  setPrimaryWalletIdState(walletId);
23
23
  }, [setPrimaryWalletIdState]);
24
- const clearPrimaryWalletId = () => {
24
+ const clearPrimaryWalletId = useCallback(() => {
25
25
  clearPrimaryWalletIdStorage();
26
26
  internalEvents.emit('clearPrimaryWallet');
27
- };
27
+ }, [clearPrimaryWalletIdStorage, internalEvents]);
28
28
  return {
29
29
  clearPrimaryWalletId,
30
30
  primaryWalletId,
@@ -147,7 +147,7 @@ const useSocialAuth = ({ sessionTimeout, authMode, onSettled, onError, }) => {
147
147
  try {
148
148
  // this function will check turnkey wallet enabled and create wallet if needed
149
149
  // if not enabled, it will throw an error.
150
- createEmbeddedWallet();
150
+ yield createEmbeddedWallet();
151
151
  onSettled === null || onSettled === void 0 ? void 0 : onSettled();
152
152
  }
153
153
  catch (e) {
@@ -143,7 +143,7 @@ const useSocialAuth = ({ sessionTimeout, authMode, onSettled, onError, }) => {
143
143
  try {
144
144
  // this function will check turnkey wallet enabled and create wallet if needed
145
145
  // if not enabled, it will throw an error.
146
- createEmbeddedWallet();
146
+ yield createEmbeddedWallet();
147
147
  onSettled === null || onSettled === void 0 ? void 0 : onSettled();
148
148
  }
149
149
  catch (e) {
@@ -36,6 +36,7 @@ require('../../context/FooterAnimationContext/index.cjs');
36
36
  require('../../context/MockContext/MockContext.cjs');
37
37
  require('../../context/QrCodeContext/QrCodeContext.cjs');
38
38
  require('react-i18next');
39
+ var PoweredByDynamic = require('../../components/PoweredByDynamic/PoweredByDynamic.cjs');
39
40
  require('../../context/AccountExistsContext/AccountExistsContext.cjs');
40
41
  require('../../context/ErrorContext/ErrorContext.cjs');
41
42
  require('../../context/WalletGroupContext/WalletGroupContext.cjs');
@@ -54,7 +55,6 @@ require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
54
55
  require('formik');
55
56
  require('yup');
56
57
  require('../../components/IconButton/IconButton.cjs');
57
- var PoweredByDynamic = require('../../components/PoweredByDynamic/PoweredByDynamic.cjs');
58
58
  require('../../components/Alert/Alert.cjs');
59
59
  require('../../components/Popper/Popper/Popper.cjs');
60
60
  require('../../components/Popper/PopperContext/PopperContext.cjs');
@@ -32,6 +32,7 @@ import '../../context/FooterAnimationContext/index.js';
32
32
  import '../../context/MockContext/MockContext.js';
33
33
  import '../../context/QrCodeContext/QrCodeContext.js';
34
34
  import 'react-i18next';
35
+ import { PoweredByDynamic } from '../../components/PoweredByDynamic/PoweredByDynamic.js';
35
36
  import '../../context/AccountExistsContext/AccountExistsContext.js';
36
37
  import '../../context/ErrorContext/ErrorContext.js';
37
38
  import '../../context/WalletGroupContext/WalletGroupContext.js';
@@ -50,7 +51,6 @@ import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
50
51
  import 'formik';
51
52
  import 'yup';
52
53
  import '../../components/IconButton/IconButton.js';
53
- import { PoweredByDynamic } from '../../components/PoweredByDynamic/PoweredByDynamic.js';
54
54
  import '../../components/Alert/Alert.js';
55
55
  import '../../components/Popper/Popper/Popper.js';
56
56
  import '../../components/Popper/PopperContext/PopperContext.js';
@@ -10,7 +10,9 @@ require('../../shared/logger.cjs');
10
10
  require('@dynamic-labs/iconic');
11
11
  require('@dynamic-labs/wallet-connector-core');
12
12
  require('../../context/ViewContext/ViewContext.cjs');
13
+ var checkConnection = require('../../shared/assets/check-connection.cjs');
13
14
  require('@dynamic-labs/wallet-book');
15
+ var shortenWalletAddress = require('../../shared/utils/functions/shortenWalletAddress/shortenWalletAddress.cjs');
14
16
  require('@dynamic-labs/utils');
15
17
  require('../../utils/constants/colors.cjs');
16
18
  require('../../shared/utils/classes/storage/localStorage.cjs');
@@ -22,6 +24,8 @@ var createUserProfile = require('../../utils/functions/createUserProfile/createU
22
24
  var isSupportedNetwork = require('../../utils/functions/isSupportedNetwork/isSupportedNetwork.cjs');
23
25
  require('../../components/ShadowDOM/ShadowDOM.cjs');
24
26
  require('../../context/ThemeContext/ThemeContext.cjs');
27
+ var classNames = require('../../utils/functions/classNames/classNames.cjs');
28
+ var Icon = require('../../components/Icon/Icon.cjs');
25
29
  require('react-dom');
26
30
  require('react-focus-lock');
27
31
  require('../../components/Transition/ZoomTransition/ZoomTransition.cjs');
@@ -62,12 +66,12 @@ require('../../components/Popper/PopperContext/PopperContext.cjs');
62
66
  require('../../components/InlineWidget/InlineWidget.cjs');
63
67
  require('../../components/MenuList/Dropdown/Dropdown.cjs');
64
68
  var NetworkPicker = require('../../components/NetworkPicker/NetworkPicker.cjs');
65
- var UserAddress = require('../../components/UserAddress/UserAddress.cjs');
66
69
  var useFetchNameService = require('../../widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.cjs');
67
70
  var OnboardingUserDataForm = require('./OnboardingUserDataForm/OnboardingUserDataForm.cjs');
68
71
 
69
72
  const CollectUserDataView = () => {
70
- const { appName, onboardingOnlyJwt, handleLogOut, projectSettings, network, decodedOnboardingOnlyToken, selectedWalletConnector: walletConnector, onboardingImageUrl, } = useInternalDynamicContext.useInternalDynamicContext();
73
+ var _a;
74
+ const { appName, onboardingOnlyJwt, projectSettings, network, decodedOnboardingOnlyToken, selectedWalletConnector: walletConnector, handleLogOut, onboardingImageUrl, } = useInternalDynamicContext.useInternalDynamicContext();
71
75
  const [isNetworkPickerOpen, setIsNetworkPickerOpen] = React.useState(false);
72
76
  const nameService = useFetchNameService.useFetchNameService();
73
77
  if (!walletConnector || !decodedOnboardingOnlyToken) {
@@ -76,9 +80,12 @@ const CollectUserDataView = () => {
76
80
  const userProfile = createUserProfile.createUserProfile(decodedOnboardingOnlyToken);
77
81
  const evmNetworks = walletConnector.evmNetworks || [];
78
82
  const _isSupportedNetwork = !network || isSupportedNetwork.isSupportedNetwork({ network, walletConnector });
79
- return (jsxRuntime.jsxs("div", { className: 'collect-user-data', "data-testid": 'collect-user-data-view', children: [onboardingImageUrl && (jsxRuntime.jsx("img", { className: 'collect-user-data__main-img', src: onboardingImageUrl, alt: 'onboarding' })), !_isSupportedNetwork && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { withIcon: false, className: 'collect-user-data__error--not-supported', children: "This network is not available, please update." })), jsxRuntime.jsxs("div", { className: 'collect-user-data__form', children: [jsxRuntime.jsxs(OnboardingUserDataForm.OnboardingUserDataForm, { disableSubmit: !_isSupportedNetwork, userProfile: userProfile, children: [jsxRuntime.jsx("div", { className: 'collect-user-data__img-container', children: (nameService === null || nameService === void 0 ? void 0 : nameService.avatar) ? (jsxRuntime.jsx("img", { src: nameService.avatar, alt: '', className: 'collect-user-data__img collect-user-data__img--rounded' })) : (jsxRuntime.jsx(AuthProviderIcon.AuthProviderIcon, { jwt: onboardingOnlyJwt })) }), jsxRuntime.jsx(UserAddress.UserAddress, { userProfile: userProfile }), jsxRuntime.jsx("div", { className: 'collect-user-data__network-container', children: jsxRuntime.jsx(NetworkPicker.NetworkPicker, { evmNetworks: evmNetworks, connector: walletConnector, showNetworkName: true, isNetworkPickerOpen: isNetworkPickerOpen, setIsNetworkPickerOpen: setIsNetworkPickerOpen, buttonClassName: 'collect-user-data__network-picker-button', mainClassName: 'collect-user-data__network-picker' }) }), !_isSupportedNetwork ? (jsxRuntime.jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: "Update Network" }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: "Your wallet is not connected to a supported network. Please update before continuing." })] })) : (jsxRuntime.jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeHeader) ||
80
- `Welcome to ${appName}` }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeMessage) ||
81
- 'We need a bit of information to get started' })] }))] }), jsxRuntime.jsx(TextButton.TextButton, { className: 'collect-user-data__log-out', onClick: handleLogOut, children: "Log out" })] })] }));
83
+ const walletAddress = (_a = userProfile === null || userProfile === void 0 ? void 0 : userProfile.verifiedCredentials.find((verifiedCredential) => verifiedCredential.id === userProfile.lastVerifiedCredentialId)) === null || _a === void 0 ? void 0 : _a.address;
84
+ return (jsxRuntime.jsxs("div", { className: 'collect-user-data', "data-testid": 'collect-user-data-view', children: [jsxRuntime.jsxs("div", { className: 'collect-user-data__network-container', children: [jsxRuntime.jsxs("div", { className: 'collect-user-data__img-container', children: [(nameService === null || nameService === void 0 ? void 0 : nameService.avatar) ? (jsxRuntime.jsx("img", { src: nameService.avatar, alt: '', className: 'collect-user-data__img collect-user-data__img--rounded' })) : (jsxRuntime.jsx(AuthProviderIcon.AuthProviderIcon, { jwt: onboardingOnlyJwt, iconSize: 28 })), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', color: 'primary', weight: 'medium', className: 'collect-user-data__wallet-address', children: (nameService === null || nameService === void 0 ? void 0 : nameService.name) || shortenWalletAddress.shortenWalletAddress(walletAddress, 3, 3) })] }), jsxRuntime.jsx(NetworkPicker.NetworkPicker, { evmNetworks: evmNetworks, connector: walletConnector, showNetworkName: true, isNetworkPickerOpen: isNetworkPickerOpen, setIsNetworkPickerOpen: setIsNetworkPickerOpen, buttonClassName: 'collect-user-data__network-picker-button', mainClassName: 'collect-user-data__network-picker' })] }), onboardingImageUrl && (jsxRuntime.jsx("img", { className: 'collect-user-data__main-img', src: onboardingImageUrl, alt: 'onboarding' })), !_isSupportedNetwork && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { withIcon: false, className: 'collect-user-data__error--not-supported', children: "This network is not available, please update." })), jsxRuntime.jsxs("div", { className: classNames.classNames('collect-user-data__form', {
85
+ 'collect-user-data__form--error': !_isSupportedNetwork,
86
+ }), children: [jsxRuntime.jsx("div", { className: 'collect-user-data__success-icon', children: jsxRuntime.jsx(Icon.Icon, { color: 'text-primary', size: 'large', children: jsxRuntime.jsx(checkConnection.ReactComponent, {}) }) }), jsxRuntime.jsx(OnboardingUserDataForm.OnboardingUserDataForm, { disableSubmit: !_isSupportedNetwork, userProfile: userProfile, children: !_isSupportedNetwork ? (jsxRuntime.jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: "Update Network" }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: "Your wallet is not connected to a supported network. Please update before continuing." })] })) : (jsxRuntime.jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeHeader) ||
87
+ `Welcome to ${appName}` }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeMessage) ||
88
+ 'We need a bit of information to get started' })] })) }), jsxRuntime.jsx(TextButton.TextButton, { className: 'collect-user-data__log-out', onClick: handleLogOut, children: "Log out" })] })] }));
82
89
  };
83
90
 
84
91
  exports.CollectUserDataView = CollectUserDataView;
@@ -6,7 +6,9 @@ import '../../shared/logger.js';
6
6
  import '@dynamic-labs/iconic';
7
7
  import '@dynamic-labs/wallet-connector-core';
8
8
  import '../../context/ViewContext/ViewContext.js';
9
+ import { ReactComponent as SvgCheckConnection } from '../../shared/assets/check-connection.js';
9
10
  import '@dynamic-labs/wallet-book';
11
+ import { shortenWalletAddress } from '../../shared/utils/functions/shortenWalletAddress/shortenWalletAddress.js';
10
12
  import '@dynamic-labs/utils';
11
13
  import '../../utils/constants/colors.js';
12
14
  import '../../shared/utils/classes/storage/localStorage.js';
@@ -18,6 +20,8 @@ import { createUserProfile } from '../../utils/functions/createUserProfile/creat
18
20
  import { isSupportedNetwork } from '../../utils/functions/isSupportedNetwork/isSupportedNetwork.js';
19
21
  import '../../components/ShadowDOM/ShadowDOM.js';
20
22
  import '../../context/ThemeContext/ThemeContext.js';
23
+ import { classNames } from '../../utils/functions/classNames/classNames.js';
24
+ import { Icon } from '../../components/Icon/Icon.js';
21
25
  import 'react-dom';
22
26
  import 'react-focus-lock';
23
27
  import '../../components/Transition/ZoomTransition/ZoomTransition.js';
@@ -58,12 +62,12 @@ import '../../components/Popper/PopperContext/PopperContext.js';
58
62
  import '../../components/InlineWidget/InlineWidget.js';
59
63
  import '../../components/MenuList/Dropdown/Dropdown.js';
60
64
  import { NetworkPicker } from '../../components/NetworkPicker/NetworkPicker.js';
61
- import { UserAddress } from '../../components/UserAddress/UserAddress.js';
62
65
  import { useFetchNameService } from '../../widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.js';
63
66
  import { OnboardingUserDataForm } from './OnboardingUserDataForm/OnboardingUserDataForm.js';
64
67
 
65
68
  const CollectUserDataView = () => {
66
- const { appName, onboardingOnlyJwt, handleLogOut, projectSettings, network, decodedOnboardingOnlyToken, selectedWalletConnector: walletConnector, onboardingImageUrl, } = useInternalDynamicContext();
69
+ var _a;
70
+ const { appName, onboardingOnlyJwt, projectSettings, network, decodedOnboardingOnlyToken, selectedWalletConnector: walletConnector, handleLogOut, onboardingImageUrl, } = useInternalDynamicContext();
67
71
  const [isNetworkPickerOpen, setIsNetworkPickerOpen] = useState(false);
68
72
  const nameService = useFetchNameService();
69
73
  if (!walletConnector || !decodedOnboardingOnlyToken) {
@@ -72,9 +76,12 @@ const CollectUserDataView = () => {
72
76
  const userProfile = createUserProfile(decodedOnboardingOnlyToken);
73
77
  const evmNetworks = walletConnector.evmNetworks || [];
74
78
  const _isSupportedNetwork = !network || isSupportedNetwork({ network, walletConnector });
75
- return (jsxs("div", { className: 'collect-user-data', "data-testid": 'collect-user-data-view', children: [onboardingImageUrl && (jsx("img", { className: 'collect-user-data__main-img', src: onboardingImageUrl, alt: 'onboarding' })), !_isSupportedNetwork && (jsx(ErrorContainer, { withIcon: false, className: 'collect-user-data__error--not-supported', children: "This network is not available, please update." })), jsxs("div", { className: 'collect-user-data__form', children: [jsxs(OnboardingUserDataForm, { disableSubmit: !_isSupportedNetwork, userProfile: userProfile, children: [jsx("div", { className: 'collect-user-data__img-container', children: (nameService === null || nameService === void 0 ? void 0 : nameService.avatar) ? (jsx("img", { src: nameService.avatar, alt: '', className: 'collect-user-data__img collect-user-data__img--rounded' })) : (jsx(AuthProviderIcon, { jwt: onboardingOnlyJwt })) }), jsx(UserAddress, { userProfile: userProfile }), jsx("div", { className: 'collect-user-data__network-container', children: jsx(NetworkPicker, { evmNetworks: evmNetworks, connector: walletConnector, showNetworkName: true, isNetworkPickerOpen: isNetworkPickerOpen, setIsNetworkPickerOpen: setIsNetworkPickerOpen, buttonClassName: 'collect-user-data__network-picker-button', mainClassName: 'collect-user-data__network-picker' }) }), !_isSupportedNetwork ? (jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsx(Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: "Update Network" }), jsx(Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: "Your wallet is not connected to a supported network. Please update before continuing." })] })) : (jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsx(Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeHeader) ||
76
- `Welcome to ${appName}` }), jsx(Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeMessage) ||
77
- 'We need a bit of information to get started' })] }))] }), jsx(TextButton, { className: 'collect-user-data__log-out', onClick: handleLogOut, children: "Log out" })] })] }));
79
+ const walletAddress = (_a = userProfile === null || userProfile === void 0 ? void 0 : userProfile.verifiedCredentials.find((verifiedCredential) => verifiedCredential.id === userProfile.lastVerifiedCredentialId)) === null || _a === void 0 ? void 0 : _a.address;
80
+ return (jsxs("div", { className: 'collect-user-data', "data-testid": 'collect-user-data-view', children: [jsxs("div", { className: 'collect-user-data__network-container', children: [jsxs("div", { className: 'collect-user-data__img-container', children: [(nameService === null || nameService === void 0 ? void 0 : nameService.avatar) ? (jsx("img", { src: nameService.avatar, alt: '', className: 'collect-user-data__img collect-user-data__img--rounded' })) : (jsx(AuthProviderIcon, { jwt: onboardingOnlyJwt, iconSize: 28 })), jsx(Typography, { variant: 'body_normal', color: 'primary', weight: 'medium', className: 'collect-user-data__wallet-address', children: (nameService === null || nameService === void 0 ? void 0 : nameService.name) || shortenWalletAddress(walletAddress, 3, 3) })] }), jsx(NetworkPicker, { evmNetworks: evmNetworks, connector: walletConnector, showNetworkName: true, isNetworkPickerOpen: isNetworkPickerOpen, setIsNetworkPickerOpen: setIsNetworkPickerOpen, buttonClassName: 'collect-user-data__network-picker-button', mainClassName: 'collect-user-data__network-picker' })] }), onboardingImageUrl && (jsx("img", { className: 'collect-user-data__main-img', src: onboardingImageUrl, alt: 'onboarding' })), !_isSupportedNetwork && (jsx(ErrorContainer, { withIcon: false, className: 'collect-user-data__error--not-supported', children: "This network is not available, please update." })), jsxs("div", { className: classNames('collect-user-data__form', {
81
+ 'collect-user-data__form--error': !_isSupportedNetwork,
82
+ }), children: [jsx("div", { className: 'collect-user-data__success-icon', children: jsx(Icon, { color: 'text-primary', size: 'large', children: jsx(SvgCheckConnection, {}) }) }), jsx(OnboardingUserDataForm, { disableSubmit: !_isSupportedNetwork, userProfile: userProfile, children: !_isSupportedNetwork ? (jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsx(Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: "Update Network" }), jsx(Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: "Your wallet is not connected to a supported network. Please update before continuing." })] })) : (jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsx(Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeHeader) ||
83
+ `Welcome to ${appName}` }), jsx(Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeMessage) ||
84
+ 'We need a bit of information to get started' })] })) }), jsx(TextButton, { className: 'collect-user-data__log-out', onClick: handleLogOut, children: "Log out" })] })] }));
78
85
  };
79
86
 
80
87
  export { CollectUserDataView };
@@ -115,7 +115,7 @@ const OnboardingUserDataForm = ({ children, userProfile, disableSubmit, }) => {
115
115
  (enforcePolicies &&
116
116
  (policiesConsentInnerComponentArray === null || policiesConsentInnerComponentArray === void 0 ? void 0 : policiesConsentInnerComponentArray.length) !==
117
117
  ((_a = values.policiesConsentArray) === null || _a === void 0 ? void 0 : _a.length));
118
- return (jsxRuntime.jsx(formik.Form, { className: 'user-data-form__form', children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [children, jsxRuntime.jsx(index.UserDataFields, { fields: decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.missingFields, errors: errors, touched: touched, policiesConsentInnerComponentArray: policiesConsentInnerComponentArray }), jsxRuntime.jsx(Button.Button, { type: 'submit', loading: loading, disabled: isSubmitBtnDisabled, buttonVariant: 'primary', expanded: true, buttonRounded: 'default', buttonPadding: 'large', children: "Continue" })] }) }));
118
+ return (jsxRuntime.jsx(formik.Form, { className: 'user-data-form__form', children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [children, jsxRuntime.jsx(index.UserDataFields, { fields: decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.missingFields, errors: errors, touched: touched, policiesConsentInnerComponentArray: policiesConsentInnerComponentArray }), jsxRuntime.jsx(Button.Button, { type: 'submit', loading: loading, disabled: isSubmitBtnDisabled, buttonVariant: 'primary', expanded: true, buttonPadding: 'large', children: "Continue" })] }) }));
119
119
  } }));
120
120
  };
121
121
 
@@ -111,7 +111,7 @@ const OnboardingUserDataForm = ({ children, userProfile, disableSubmit, }) => {
111
111
  (enforcePolicies &&
112
112
  (policiesConsentInnerComponentArray === null || policiesConsentInnerComponentArray === void 0 ? void 0 : policiesConsentInnerComponentArray.length) !==
113
113
  ((_a = values.policiesConsentArray) === null || _a === void 0 ? void 0 : _a.length));
114
- return (jsx(Form, { className: 'user-data-form__form', children: jsxs(Fragment, { children: [children, jsx(UserDataFields, { fields: decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.missingFields, errors: errors, touched: touched, policiesConsentInnerComponentArray: policiesConsentInnerComponentArray }), jsx(Button, { type: 'submit', loading: loading, disabled: isSubmitBtnDisabled, buttonVariant: 'primary', expanded: true, buttonRounded: 'default', buttonPadding: 'large', children: "Continue" })] }) }));
114
+ return (jsx(Form, { className: 'user-data-form__form', children: jsxs(Fragment, { children: [children, jsx(UserDataFields, { fields: decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.missingFields, errors: errors, touched: touched, policiesConsentInnerComponentArray: policiesConsentInnerComponentArray }), jsx(Button, { type: 'submit', loading: loading, disabled: isSubmitBtnDisabled, buttonVariant: 'primary', expanded: true, buttonPadding: 'large', children: "Continue" })] }) }));
115
115
  } }));
116
116
  };
117
117