@dynamic-labs/sdk-react-core 1.1.0-alpha.8 → 1.1.0-alpha.9

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 (111) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +11 -11
  5. package/src/index.cjs +2 -2
  6. package/src/index.js +1 -1
  7. package/src/lib/Main.cjs +4 -5
  8. package/src/lib/Main.js +4 -5
  9. package/src/lib/components/Toggle/Toggle.cjs +14 -0
  10. package/src/lib/components/Toggle/Toggle.d.ts +7 -0
  11. package/src/lib/components/Toggle/Toggle.js +10 -0
  12. package/src/lib/components/Toggle/index.d.ts +1 -0
  13. package/src/lib/context/DynamicContext/DynamicContext.cjs +35 -42
  14. package/src/lib/context/DynamicContext/DynamicContext.js +36 -43
  15. package/src/lib/context/DynamicContext/hooks/index.d.ts +1 -1
  16. package/src/lib/context/DynamicContext/hooks/useSetShowLinkNewWalletModal/index.d.ts +1 -0
  17. package/src/lib/context/DynamicContext/hooks/{useSetShowLinkNewWalletModalWithInit/useSetShowLinkNewWalletModalWithInit.cjs → useSetShowLinkNewWalletModal/useSetShowLinkNewWalletModal.cjs} +11 -17
  18. package/src/lib/context/DynamicContext/hooks/{useSetShowLinkNewWalletModalWithInit/useSetShowLinkNewWalletModalWithInit.d.ts → useSetShowLinkNewWalletModal/useSetShowLinkNewWalletModal.d.ts} +3 -6
  19. package/src/lib/context/DynamicContext/hooks/{useSetShowLinkNewWalletModalWithInit/useSetShowLinkNewWalletModalWithInit.js → useSetShowLinkNewWalletModal/useSetShowLinkNewWalletModal.js} +11 -17
  20. package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/index.d.ts +1 -0
  21. package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/useShowAuthFlow.cjs +59 -0
  22. package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/useShowAuthFlow.d.ts +37 -0
  23. package/src/lib/context/DynamicContext/hooks/useShowAuthFlow/useShowAuthFlow.js +55 -0
  24. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +1 -0
  25. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +1 -0
  26. package/src/lib/context/DynamicContext/types/index.d.ts +10 -7
  27. package/src/lib/context/DynamicContext/useDynamicContext.cjs +6 -1
  28. package/src/lib/context/DynamicContext/useDynamicContext.d.ts +4 -1
  29. package/src/lib/context/DynamicContext/useDynamicContext.js +6 -1
  30. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +1 -1
  31. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +1 -1
  32. package/src/lib/events/dynamicEvents.d.ts +3 -0
  33. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.cjs +2 -2
  34. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.js +2 -2
  35. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.cjs +5 -5
  36. package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.js +5 -5
  37. package/src/lib/locale/en/translation.cjs +0 -2
  38. package/src/lib/locale/en/translation.d.ts +0 -2
  39. package/src/lib/locale/en/translation.js +0 -2
  40. package/src/lib/shared/types/index.d.ts +3 -0
  41. package/src/lib/styles/index.shadow.cjs +1 -1
  42. package/src/lib/styles/index.shadow.js +1 -1
  43. package/src/lib/utils/functions/isSelectedWalletAlreadyConnected/isSelectedWalletAlreadyConnected.cjs +2 -4
  44. package/src/lib/utils/functions/isSelectedWalletAlreadyConnected/isSelectedWalletAlreadyConnected.js +2 -4
  45. package/src/lib/utils/functions/walletListBuilder/walletListBuilder.cjs +3 -3
  46. package/src/lib/utils/functions/walletListBuilder/walletListBuilder.js +4 -4
  47. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +1 -1
  48. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +1 -1
  49. package/src/lib/utils/hooks/useClearWalletConnectSessions/useClearWalletConnectSessions.cjs +3 -3
  50. package/src/lib/utils/hooks/useClearWalletConnectSessions/useClearWalletConnectSessions.js +3 -3
  51. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +1 -1
  52. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +2 -2
  53. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +1 -1
  54. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +2 -2
  55. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +2 -2
  56. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.cjs +6 -3
  57. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.js +6 -3
  58. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +9 -6
  59. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +9 -6
  60. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +5 -3
  61. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +5 -3
  62. package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.cjs +6 -8
  63. package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.js +6 -8
  64. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +1 -1
  65. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +1 -1
  66. package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUserWithModal/useUpdateUserWithModal.cjs +8 -5
  67. package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUserWithModal/useUpdateUserWithModal.js +8 -5
  68. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +2 -2
  69. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +2 -2
  70. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +2 -2
  71. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +2 -2
  72. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.cjs +5 -2
  73. package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.js +5 -2
  74. package/src/lib/views/BridgeNextWalletConnectionView/BridgeNextWalletConnectionView.cjs +1 -1
  75. package/src/lib/views/BridgeNextWalletConnectionView/BridgeNextWalletConnectionView.js +1 -1
  76. package/src/lib/views/BridgeSummaryView/BridgeSummaryView.cjs +1 -1
  77. package/src/lib/views/BridgeSummaryView/BridgeSummaryView.js +1 -1
  78. package/src/lib/views/BridgeWelcomeView/BridgeWelcomeView.cjs +1 -1
  79. package/src/lib/views/BridgeWelcomeView/BridgeWelcomeView.js +1 -1
  80. package/src/lib/views/EmailVerification/EmailVerification.cjs +1 -1
  81. package/src/lib/views/EmailVerification/EmailVerification.js +1 -1
  82. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +1 -1
  83. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +1 -1
  84. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +1 -1
  85. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +1 -1
  86. package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.cjs +1 -1
  87. package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.js +1 -1
  88. package/src/lib/views/QrCodeView/QRCode.cjs +2 -3
  89. package/src/lib/views/QrCodeView/QRCode.js +2 -3
  90. package/src/lib/views/WalletGroupView/WalletGroupView.cjs +3 -1
  91. package/src/lib/views/WalletGroupView/WalletGroupView.js +3 -1
  92. package/src/lib/views/WalletGroupView/components/HardwareWalletToggle/HardwareWalletToggle.cjs +8 -6
  93. package/src/lib/views/WalletGroupView/components/HardwareWalletToggle/HardwareWalletToggle.js +9 -7
  94. package/src/lib/views/WalletUsedView/WalletUsedView.cjs +5 -5
  95. package/src/lib/views/WalletUsedView/WalletUsedView.js +5 -5
  96. package/src/lib/widgets/DynamicBridgeWidget/views/EditProfileView/EditProfileView.cjs +6 -3
  97. package/src/lib/widgets/DynamicBridgeWidget/views/EditProfileView/EditProfileView.js +6 -3
  98. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +2 -3
  99. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +2 -3
  100. package/src/lib/widgets/DynamicWidget/hooks/useFetchBalance/useFetchBalance.cjs +66 -21
  101. package/src/lib/widgets/DynamicWidget/hooks/useFetchBalance/useFetchBalance.d.ts +1 -1
  102. package/src/lib/widgets/DynamicWidget/hooks/useFetchBalance/useFetchBalance.js +67 -22
  103. package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.cjs +2 -2
  104. package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.js +2 -2
  105. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.cjs +7 -3
  106. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.js +7 -3
  107. package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/index.d.ts +0 -1
  108. package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.cjs +0 -55
  109. package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.d.ts +0 -18
  110. package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.js +0 -51
  111. package/src/lib/context/DynamicContext/hooks/useSetShowLinkNewWalletModalWithInit/index.d.ts +0 -1
@@ -1,6 +1,6 @@
1
1
  import { __awaiter } from '../../../../_virtual/_tslib.js';
2
2
  import { jsx, jsxs } from 'react/jsx-runtime';
3
- import { createContext, useState, useEffect, useCallback, useRef, useMemo } from 'react';
3
+ import { createContext, useState, useRef, useEffect, useCallback, useMemo } from 'react';
4
4
  import { I18nextProvider } from 'react-i18next';
5
5
  import { ICONIC_SPRITE_URL } from '@dynamic-labs/iconic';
6
6
  import { MissingEnvironmentIdError } from '@dynamic-labs/utils';
@@ -30,7 +30,6 @@ import { AccountExistsContextProvider } from '../AccountExistsContext/AccountExi
30
30
  import { revokeSession, sendDynamicProps } from '../../data/api.js';
31
31
  import { EmailVerificationContextProvider } from '../EmailVerificationContext/EmailVerificationContext.js';
32
32
  import 'react-dom';
33
- import { isSameWalletName } from '../../utils/functions/isSameWalletName/isSameWalletName.js';
34
33
  import { useFetchNonce } from '../../utils/hooks/useFetchNonce/useFetchNonce.js';
35
34
  import { useFetchProjectSettings } from '../../utils/hooks/useFetchProjectSettings/useFetchProjectSettings.js';
36
35
  import { ThemeContextProvider } from '../ThemeContext/ThemeContext.js';
@@ -68,10 +67,10 @@ import { useMultiWalletWidgetState } from '../../utils/hooks/multiWallet/useMult
68
67
  import { useMultiWallet } from '../../utils/hooks/multiWallet/useMultiWallet/useMultiWallet.js';
69
68
  import { useClearWalletConnectSessions } from '../../utils/hooks/useClearWalletConnectSessions/useClearWalletConnectSessions.js';
70
69
  import { useConnectWallet } from '../../utils/hooks/useConnectWallet/useConnectWallet.js';
71
- import { useProcessNetworkConfigurations } from '../../utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.js';
72
70
  import { useFetchWalletsForChainsMap } from '../../utils/hooks/useFetchWalletsForChainsMap/useFetchWalletsForChainsMap.js';
73
71
  import { useHandleUnlinkWallet } from '../../utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js';
74
72
  import { usePrimaryWalletId } from '../../utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js';
73
+ import { useProcessNetworkConfigurations } from '../../utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.js';
75
74
  import { useRpcProviders } from '../../utils/hooks/useRpcProviders/useRpcProviders.js';
76
75
  import { useWalletEventListeners } from '../../utils/hooks/useWalletEventListeners/useWalletEventListeners.js';
77
76
  import { DynamicBridgeWidgetContextProvider } from '../../widgets/DynamicBridgeWidget/context/DynamicBridgeWidgetContext/DynamicBridgeWidgetContext.js';
@@ -90,24 +89,24 @@ import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/P
90
89
  import '../../views/WalletList/WalletList.js';
91
90
  import '../../views/viewToComponentMap.js';
92
91
  import { FundingWidget } from '../../widgets/FundingWidget/FundingWidget.js';
92
+ import { ConnectWithEmailOtpProvider } from '../ConnectWithEmailOtpContext/ConnectWithEmailOtpProvider.js';
93
+ import '../ConnectWithEmailOtpContext/connectWithEmailOtpContext.js';
93
94
  import { FundingContextProvider } from '../FundingContext/FundingContext.js';
94
95
  import { SendBalanceContextProvider } from '../SendBalanceContext/SendBalanceContext.js';
95
96
  import { UseNetworkValidation } from '../UseNetworkValidation/UseNetworkValidation.js';
96
97
  import { UserWalletsProvider } from '../UserWalletsContext/UserWalletsContext.js';
97
98
  import { WalletContextProvider } from '../WalletContext/WalletContext.js';
98
- import { ConnectWithEmailOtpProvider } from '../ConnectWithEmailOtpContext/ConnectWithEmailOtpProvider.js';
99
- import '../ConnectWithEmailOtpContext/connectWithEmailOtpContext.js';
100
99
  import { handleDisconnectWallet } from './handleDisconnectWallet/handleDisconnectWallet.js';
101
100
  import { initExpirationTime, getInitialView } from './helpers.js';
102
101
  import { useDisplayOrderState } from './hooks/useDisplayOrderState/useDisplayOrderState.js';
103
102
  import { useEmailLoginState } from './hooks/useEmailLoginState/useEmailLoginState.js';
104
103
  import { useNameService } from './hooks/useNameService/useNameService.js';
105
104
  import { useSelectedWalletConnector } from './hooks/useSelectedWalletConnector/useSelectedWalletConnector.js';
106
- import { useSetShowAuthFlowWithInit } from './hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.js';
105
+ import { useShowAuthFlow } from './hooks/useShowAuthFlow/useShowAuthFlow.js';
107
106
  import { useShowPasskeyCreateSuccess } from './hooks/useShowPasskeyCreateSuccess/useShowPasskeyCreateSuccess.js';
108
107
  import { useTieCallbacksToEvents } from './hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js';
109
108
  import { useVerificationInProgress } from './hooks/useVerificationInProgress/useVerificationInProgress.js';
110
- import { useSetShowLinkNewWalletModalWithInit } from './hooks/useSetShowLinkNewWalletModalWithInit/useSetShowLinkNewWalletModalWithInit.js';
109
+ import { useSetShowLinkNewWalletModal } from './hooks/useSetShowLinkNewWalletModal/useSetShowLinkNewWalletModal.js';
111
110
  import { useCustomerCallbacks } from './useCustomerCallbacks/useCustomerCallbacks.js';
112
111
  import { useCustomerAuthFlowCallbacks } from './useCustomerCallbacks/useCustomerAuthFlowCallbacks.js';
113
112
  import { validateAuthUser } from './validators.js';
@@ -117,7 +116,7 @@ const EMPTY_INITIAL_USER = undefined;
117
116
  const DynamicContext = createContext(undefined);
118
117
  /** The context provider itself we only use internally */
119
118
  const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) => {
120
- var _a, _b, _c, _d, _e, _f, _g, _h;
119
+ var _a, _b, _c, _d, _e, _f;
121
120
  const { accessDeniedMessagePrimary, accessDeniedMessageSecondary, accessDeniedButton, apiBaseUrl, enableForcedNetworkValidation: enableForcedNetworkValidationProp = false, deepLinkPreference = 'native', bridgeChains, cssOverrides, defaultNumberOfWalletsToShow = DEFAULT_NUMBER_OF_WALLETS_TO_SHOW, flowNetwork, initialAuthenticationMode = 'connect-and-sign', debugError = false, displaySiweStatement = true, newToWeb3WalletChainMap, enableVisitTrackingOnConnectOnly = true, environmentId, localStorageSuffix, eventsCallbacks, evmNetworks, walletsFilter, logLevel = 'WARN', notInTheListImageUrl, onboardingImageUrl, policiesConsentInnerComponent, customPrivacyPolicy, privacyPolicyUrl, signWithEmailWalletName, socialMediaLinkText, socialMediaIconUrl, socialMediaUrl, customTermsOfServices, termsOfServiceUrl, toolkitEnabled, siweStatement, shadowDOMEnabled = true, walletConnectors: walletConnectorsProp, socialProvidersFilter, showLockedWalletView = true, walletConnectPreferredChains, walletConnectorExtensions, } = settings;
122
121
  let enableForcedNetworkValidation = enableForcedNetworkValidationProp;
123
122
  if (bridgeChains) {
@@ -126,7 +125,8 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
126
125
  // Ties all client callbacks to dynamic's events, such that
127
126
  // when our events are triggered, so are the client callbacks
128
127
  useTieCallbacksToEvents(eventsCallbacks);
129
- let { walletConnectV1Bridge, appLogoUrl = 'https://demo.dynamic.xyz/assets/dynamic-logo.svg', appName = 'Dynamic Example', } = settings;
128
+ let { appLogoUrl = 'https://demo.dynamic.xyz/assets/dynamic-logo.svg', appName = 'Dynamic Example', } = settings;
129
+ const { walletConnectV1Bridge } = settings;
130
130
  if (!environmentId) {
131
131
  throw new MissingEnvironmentIdError();
132
132
  }
@@ -141,7 +141,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
141
141
  const isAuthenticated = Boolean(getAuthToken());
142
142
  const isBridgeFlow = Boolean(bridgeChains);
143
143
  const [onboardingOnlyJwt, setOnboardingOnlyJwt] = useState(undefined);
144
- const [showAuthFlow, setShowAuthFlow] = useState(false);
145
144
  // state to track the full connectivity status of the individual's wallets.
146
145
  // Set to true once the predetermined number of wallets is connected.
147
146
  const [isFullyConnected, setIsFullyConnected, removeIsFullyConnected] = useLocalStorage(IS_FULLY_CONNECTED, false);
@@ -166,14 +165,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
166
165
  multiWalletSettings: (_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _b === void 0 ? void 0 : _b.multiWallet,
167
166
  toolkitEnabled: toolkitEnabled || false,
168
167
  });
169
- // for demo proposes when running single wallet
170
- // it should not use bridge even having walletConnectV1Bridge set on settings
171
- // but v2 if enabled
172
- if (toolkitEnabled &&
173
- ((_d = (_c = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _c === void 0 ? void 0 : _c.walletConnect) === null || _d === void 0 ? void 0 : _d.v2Enabled) &&
174
- !multiWallet) {
175
- walletConnectV1Bridge = undefined;
176
- }
177
168
  // ensures that when user comes back to site and primary wallet is out of sync, we don't show widget popup
178
169
  const [showWidgetStatePopup, setShowWidgetStatePopup] = useState(!multiWallet);
179
170
  // Used inside useVerifyOnAwaitingSignature. Is legacy and should be removed asap
@@ -213,6 +204,14 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
213
204
  });
214
205
  const [authMode, setAuthMode] = useLocalStorage(AUTH_MODE, initialAuthenticationMode);
215
206
  const { clearPrimaryWalletId, primaryWalletId, setPrimaryWalletId } = usePrimaryWalletId();
207
+ const isUserAuthenticated = Boolean(authMode === 'connect-and-sign' ? user : isFullyConnected);
208
+ const isRenderingEmbeddedAuthFlow = useRef(false);
209
+ const [showAuthFlow, setShowAuthFlow] = useShowAuthFlow({
210
+ isAuthenticated: isUserAuthenticated,
211
+ isMultiWalletEnabled: multiWallet,
212
+ isRenderingEmbeddedAuthFlow,
213
+ walletConnectorOptions,
214
+ });
216
215
  const { connectWallet, removeConnectedWalletsInfo, connectedWalletsInfo, getConnectedWalletById, connectedWallets, disconnectWallet, refreshConnectedWallet, } = useConnectWallet({
217
216
  authMode,
218
217
  clearPrimaryWalletId,
@@ -244,7 +243,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
244
243
  removeUser();
245
244
  }, [removeUser]);
246
245
  // until user completes onboarding, jwt is only stored in onboardingOnlyJwt
247
- const authToken = (_e = getAuthToken()) !== null && _e !== void 0 ? _e : onboardingOnlyJwt;
246
+ const authToken = (_c = getAuthToken()) !== null && _c !== void 0 ? _c : onboardingOnlyJwt;
248
247
  useSetWalletConnectorVerifiedCredentials(authToken, walletConnectorOptions);
249
248
  const { didConnectedStateLoad, primaryWallet, showQrcodeModal, secondaryWallets, setPrimaryWallet, setShowQrcodeModal, wallets: linkedOrConnectedWallets, } = useWalletConnectors({
250
249
  authMode,
@@ -271,21 +270,10 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
271
270
  user,
272
271
  walletBook,
273
272
  });
274
- const isRenderingEmbeddedAuthFlow = useRef(false);
275
- const isUserAuthenticated = Boolean(authMode === 'connect-and-sign' ? user : isFullyConnected);
276
- const setShowAuthFlowWithInit = useSetShowAuthFlowWithInit({
273
+ const setShowLinkNewWalletModal = useSetShowLinkNewWalletModal({
277
274
  isAuthenticated: isUserAuthenticated,
278
275
  isMultiWalletEnabled: multiWallet,
279
- isRenderingEmbeddedAuthFlow,
280
276
  setShowAuthFlow,
281
- walletConnectorOptions,
282
- });
283
- const setShowLinkNewWalletModalWithInit = useSetShowLinkNewWalletModalWithInit({
284
- isAuthenticated: isUserAuthenticated,
285
- isMultiWalletEnabled: multiWallet,
286
- isRenderingEmbeddedAuthFlow,
287
- setShowAuthFlow,
288
- walletConnectorOptions,
289
277
  });
290
278
  const { getNameService, removeConnectedNameService } = useNameService({
291
279
  authToken,
@@ -298,7 +286,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
298
286
  clearOphanedWalletConnectSessions,
299
287
  ]);
300
288
  const handleLogOut = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
301
- var _j, _k;
289
+ var _g, _h;
302
290
  setSdkHasLoaded(false);
303
291
  clearAllWalletConnectSessions();
304
292
  setBridgeChainsToConnect(bridgeChains);
@@ -324,7 +312,12 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
324
312
  setIsVerificationInProgress(false);
325
313
  setLegacyIsVerifying(false);
326
314
  setAuthMode(initialAuthenticationMode);
327
- setShowAuthFlow(false);
315
+ setShowAuthFlow(false, {
316
+ emitCancelAuth: false,
317
+ ignoreIfIsEmbeddedWidget: false,
318
+ initializeWalletConnect: false,
319
+ performMultiWalletChecks: false,
320
+ });
328
321
  setMultiWalletWidgetState('idle');
329
322
  removeAuthTokenAndUser();
330
323
  removeLsSettings();
@@ -335,12 +328,12 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
335
328
  clearPrimaryWalletId();
336
329
  removeConnectedNameService();
337
330
  for (const connectedWallet of connectedWallets) {
338
- (_j = eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onDisconnect) === null || _j === void 0 ? void 0 : _j.call(eventsCallbacks, {
331
+ (_g = eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onDisconnect) === null || _g === void 0 ? void 0 : _g.call(eventsCallbacks, {
339
332
  wallet: connectedWallet,
340
333
  walletConnector: connectedWallet === null || connectedWallet === void 0 ? void 0 : connectedWallet.connector,
341
334
  });
342
335
  }
343
- (_k = eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLogout) === null || _k === void 0 ? void 0 : _k.call(eventsCallbacks, user);
336
+ (_h = eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLogout) === null || _h === void 0 ? void 0 : _h.call(eventsCallbacks, user);
344
337
  dynamicEvents.emit('logout');
345
338
  }), [
346
339
  setSdkHasLoaded,
@@ -352,6 +345,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
352
345
  setIsVerificationInProgress,
353
346
  setAuthMode,
354
347
  initialAuthenticationMode,
348
+ setShowAuthFlow,
355
349
  setMultiWalletWidgetState,
356
350
  removeAuthTokenAndUser,
357
351
  removeLsSettings,
@@ -369,7 +363,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
369
363
  let wcVersion;
370
364
  if (projectSettings) {
371
365
  wcVersion =
372
- ((_g = (_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _f === void 0 ? void 0 : _f.walletConnect) === null || _g === void 0 ? void 0 : _g.v2Enabled) && !walletConnectV1Bridge
366
+ ((_e = (_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _d === void 0 ? void 0 : _d.walletConnect) === null || _e === void 0 ? void 0 : _e.v2Enabled) && !walletConnectV1Bridge
373
367
  ? 2
374
368
  : 1;
375
369
  }
@@ -457,7 +451,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
457
451
  }
458
452
  if (selectedWalletConnector &&
459
453
  (!primaryWallet ||
460
- !isSameWalletName(primaryWallet.connector.name, selectedWalletConnector.name))) {
454
+ primaryWallet.connector.key !== selectedWalletConnector.key)) {
461
455
  yield (selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.endSession());
462
456
  }
463
457
  }), [
@@ -508,7 +502,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
508
502
  handleLogOut,
509
503
  handleUnlinkWallet: authMode === 'connect-only' ? disconnectWallet : handleUnlinkWallet,
510
504
  i18nSDKInstance,
511
- internalSetShowAuthFlow: setShowAuthFlow,
512
505
  isAuthenticated,
513
506
  isBridgeFlow,
514
507
  isFullyConnected,
@@ -564,10 +557,10 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
564
557
  setSdkHasLoaded,
565
558
  setSelectedWalletConnectorKey,
566
559
  setSelectedWalletWithAction,
567
- setShowAuthFlow: setShowAuthFlowWithInit,
560
+ setShowAuthFlow,
568
561
  setShowBridgeWidget,
569
562
  setShowDynamicUserProfile,
570
- setShowLinkNewWalletModal: setShowLinkNewWalletModalWithInit,
563
+ setShowLinkNewWalletModal,
571
564
  setShowPasskeyCreatedSuccess,
572
565
  setShowQrcodeModal,
573
566
  setShowWidgetStatePopup,
@@ -673,8 +666,8 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
673
666
  setPrimaryWalletId,
674
667
  setSdkHasLoaded,
675
668
  setSelectedWalletConnectorKey,
676
- setShowAuthFlowWithInit,
677
- setShowLinkNewWalletModalWithInit,
669
+ setShowAuthFlow,
670
+ setShowLinkNewWalletModal,
678
671
  setShowPasskeyCreatedSuccess,
679
672
  setShowQrcodeModal,
680
673
  setUser,
@@ -735,7 +728,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
735
728
  setShowDynamicUserProfile(true);
736
729
  }
737
730
  }, [multiWallet, multiWalletWidgetState, showDynamicUserProfile, user]);
738
- return (jsx(I18nextProvider, { i18n: i18nSDKInstance, children: jsx(DynamicContext.Provider, { value: value, children: jsx(WalletBookContextProvider, { walletBook: walletBook, children: jsx(ThemeContextProvider, { customerTheme: parseTheme(theme, ((_h = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design) === null || _h === void 0 ? void 0 : _h.modal) || undefined), designSettings: projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design, children: jsx(LoadingContextProvider, { children: jsx(ErrorContextProvider, { children: jsxs(ViewContextProvider, { initialView: getInitialView({
731
+ return (jsx(I18nextProvider, { i18n: i18nSDKInstance, children: jsx(DynamicContext.Provider, { value: value, children: jsx(WalletBookContextProvider, { walletBook: walletBook, children: jsx(ThemeContextProvider, { customerTheme: parseTheme(theme, ((_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design) === null || _f === void 0 ? void 0 : _f.modal) || undefined), designSettings: projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design, children: jsx(LoadingContextProvider, { children: jsx(ErrorContextProvider, { children: jsxs(ViewContextProvider, { initialView: getInitialView({
739
732
  connectedWallets,
740
733
  isAuthenticated,
741
734
  isBridgeFlow,
@@ -2,7 +2,7 @@ export * from './useDisplayOrderState';
2
2
  export * from './useEmailLoginState';
3
3
  export * from './useNameService';
4
4
  export * from './useSelectedWalletConnector';
5
- export * from './useSetShowAuthFlowWithInit';
5
+ export * from './useShowAuthFlow';
6
6
  export * from './useShowPasskeyCreateSuccess';
7
7
  export * from './useTieCallbacksToEvents';
8
8
  export * from './useVerificationInProgress';
@@ -0,0 +1 @@
1
+ export * from './useSetShowLinkNewWalletModal';
@@ -24,31 +24,25 @@ require('../../../../shared/consts/index.cjs');
24
24
  * "Connect" button in the WalletConnect modal, there is a uri ready to go
25
25
  * to immediately trigger the deep link on mobile
26
26
  */
27
- const useSetShowLinkNewWalletModalWithInit = ({ setShowAuthFlow, walletConnectorOptions, isMultiWalletEnabled, isRenderingEmbeddedAuthFlow, isAuthenticated, }) => {
27
+ const useSetShowLinkNewWalletModal = ({ setShowAuthFlow, isMultiWalletEnabled, isAuthenticated, }) => {
28
28
  const setSetShowLinkNewWalletModalWithInit = React.useCallback((value) => {
29
- var _a;
30
29
  if (value) {
31
- // Do not change state if:
32
- // 1. The user is already signed in and multi-wallet is not enabled
33
- // 2. An embedded auth flow is already being rendered
34
- if (!isAuthenticated || isRenderingEmbeddedAuthFlow.current)
30
+ // Do not change state if the user is already signed in and multi-wallet is not enabled
31
+ if (!isAuthenticated)
35
32
  return;
36
33
  if (!isMultiWalletEnabled) {
37
34
  logger.logger.warn('setShowLinkNewWalletModal was called while the user was not logged in. This results in a no-op. To log the user in, use setShowAuthFlow. For more information, see: https://docs.dynamic.xyz/react-sdk/hooks/usedynamiccontext');
38
35
  return;
39
36
  }
40
- (_a = walletConnectorOptions
41
- .find((wallet) => wallet.walletConnector.key === 'walletconnect')) === null || _a === void 0 ? void 0 : _a.walletConnector.init();
42
37
  }
43
- setShowAuthFlow(value);
44
- }, [
45
- setShowAuthFlow,
46
- isAuthenticated,
47
- isMultiWalletEnabled,
48
- isRenderingEmbeddedAuthFlow,
49
- walletConnectorOptions,
50
- ]);
38
+ setShowAuthFlow(value, {
39
+ emitCancelAuth: true,
40
+ ignoreIfIsEmbeddedWidget: true,
41
+ initializeWalletConnect: true,
42
+ performMultiWalletChecks: false,
43
+ });
44
+ }, [setShowAuthFlow, isAuthenticated, isMultiWalletEnabled]);
51
45
  return setSetShowLinkNewWalletModalWithInit;
52
46
  };
53
47
 
54
- exports.useSetShowLinkNewWalletModalWithInit = useSetShowLinkNewWalletModalWithInit;
48
+ exports.useSetShowLinkNewWalletModal = useSetShowLinkNewWalletModal;
@@ -1,6 +1,5 @@
1
1
  import { Dispatch, SetStateAction } from 'react';
2
- import { WalletOption } from '../../../../shared';
3
- import { IDynamicContext } from '../../types';
2
+ import { SetShowAuthFlow } from '../useShowAuthFlow';
4
3
  /**
5
4
  * this hook wraps `setShowAuthFlow`. WalletConnect requires initialization
6
5
  * before we can connect a wallet. The goal here is that when a user clicks
@@ -9,10 +8,8 @@ import { IDynamicContext } from '../../types';
9
8
  * "Connect" button in the WalletConnect modal, there is a uri ready to go
10
9
  * to immediately trigger the deep link on mobile
11
10
  */
12
- export declare const useSetShowLinkNewWalletModalWithInit: ({ setShowAuthFlow, walletConnectorOptions, isMultiWalletEnabled, isRenderingEmbeddedAuthFlow, isAuthenticated, }: {
13
- setShowAuthFlow: Dispatch<SetStateAction<boolean>>;
14
- isRenderingEmbeddedAuthFlow: IDynamicContext['isRenderingEmbeddedAuthFlow'];
15
- walletConnectorOptions: WalletOption[];
11
+ export declare const useSetShowLinkNewWalletModal: ({ setShowAuthFlow, isMultiWalletEnabled, isAuthenticated, }: {
12
+ setShowAuthFlow: SetShowAuthFlow;
16
13
  isMultiWalletEnabled?: boolean | undefined;
17
14
  isAuthenticated: boolean;
18
15
  }) => Dispatch<SetStateAction<boolean>>;
@@ -20,31 +20,25 @@ import '../../../../shared/consts/index.js';
20
20
  * "Connect" button in the WalletConnect modal, there is a uri ready to go
21
21
  * to immediately trigger the deep link on mobile
22
22
  */
23
- const useSetShowLinkNewWalletModalWithInit = ({ setShowAuthFlow, walletConnectorOptions, isMultiWalletEnabled, isRenderingEmbeddedAuthFlow, isAuthenticated, }) => {
23
+ const useSetShowLinkNewWalletModal = ({ setShowAuthFlow, isMultiWalletEnabled, isAuthenticated, }) => {
24
24
  const setSetShowLinkNewWalletModalWithInit = useCallback((value) => {
25
- var _a;
26
25
  if (value) {
27
- // Do not change state if:
28
- // 1. The user is already signed in and multi-wallet is not enabled
29
- // 2. An embedded auth flow is already being rendered
30
- if (!isAuthenticated || isRenderingEmbeddedAuthFlow.current)
26
+ // Do not change state if the user is already signed in and multi-wallet is not enabled
27
+ if (!isAuthenticated)
31
28
  return;
32
29
  if (!isMultiWalletEnabled) {
33
30
  logger.warn('setShowLinkNewWalletModal was called while the user was not logged in. This results in a no-op. To log the user in, use setShowAuthFlow. For more information, see: https://docs.dynamic.xyz/react-sdk/hooks/usedynamiccontext');
34
31
  return;
35
32
  }
36
- (_a = walletConnectorOptions
37
- .find((wallet) => wallet.walletConnector.key === 'walletconnect')) === null || _a === void 0 ? void 0 : _a.walletConnector.init();
38
33
  }
39
- setShowAuthFlow(value);
40
- }, [
41
- setShowAuthFlow,
42
- isAuthenticated,
43
- isMultiWalletEnabled,
44
- isRenderingEmbeddedAuthFlow,
45
- walletConnectorOptions,
46
- ]);
34
+ setShowAuthFlow(value, {
35
+ emitCancelAuth: true,
36
+ ignoreIfIsEmbeddedWidget: true,
37
+ initializeWalletConnect: true,
38
+ performMultiWalletChecks: false,
39
+ });
40
+ }, [setShowAuthFlow, isAuthenticated, isMultiWalletEnabled]);
47
41
  return setSetShowLinkNewWalletModalWithInit;
48
42
  };
49
43
 
50
- export { useSetShowLinkNewWalletModalWithInit };
44
+ export { useSetShowLinkNewWalletModal };
@@ -0,0 +1 @@
1
+ export * from './useShowAuthFlow';
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var dynamicEvents = require('../../../../events/dynamicEvents.cjs');
7
+ require('@dynamic-labs/sdk-api');
8
+ var logger = require('../../../../shared/logger.cjs');
9
+ require('@dynamic-labs/iconic');
10
+ require('@dynamic-labs/wallet-connector-core');
11
+ require('react/jsx-runtime');
12
+ require('../../../ViewContext/ViewContext.cjs');
13
+ require('@dynamic-labs/wallet-book');
14
+ require('../../../../utils/constants/colors.cjs');
15
+ require('../../../../shared/utils/classes/storage/localStorage.cjs');
16
+ require('viem');
17
+ require('@dynamic-labs/utils');
18
+ require('../../../../shared/consts/index.cjs');
19
+
20
+ /**
21
+ * There are a multitude of scenarios where we want to ignore or insert functionality to calls
22
+ * to setShowAuthFlow. This hook wraps it with an options parameter to allow encapsulating these
23
+ * different scenarios and makes it especially easy to customize exactly which version of this method
24
+ * is being passed to useDynamicContext.
25
+ */
26
+ const useShowAuthFlow = ({ isAuthenticated, isRenderingEmbeddedAuthFlow, isMultiWalletEnabled, walletConnectorOptions, }) => {
27
+ const [showAuthFlow, _setShowAuthFlow] = React.useState(false);
28
+ const setShowAuthFlow = React.useCallback((value, options = {}) => {
29
+ var _a;
30
+ const { emitCancelAuth, ignoreIfIsEmbeddedWidget, initializeWalletConnect, performMultiWalletChecks, } = Object.assign({ emitCancelAuth: false, ignoreIfIsEmbeddedWidget: true, initializeWalletConnect: true, performMultiWalletChecks: false }, options);
31
+ if (value) {
32
+ if (ignoreIfIsEmbeddedWidget && isRenderingEmbeddedAuthFlow.current)
33
+ return;
34
+ if (performMultiWalletChecks && isAuthenticated) {
35
+ if (!isMultiWalletEnabled) {
36
+ logger.logger.warn('setShowAuthFlow was called while the user is logged in, but Dynamic is not configured with multi-wallet enabled. This results in a no-op.');
37
+ return;
38
+ }
39
+ logger.logger.warn('Using setShowAuthFlow to render the wallet list when the user is logged in is deprecated. Use setShowLinkNewWalletModal instead. For more information, see: https://docs.dynamic.xyz/react-sdk/hooks/usedynamiccontext');
40
+ }
41
+ if (initializeWalletConnect) {
42
+ (_a = walletConnectorOptions
43
+ .find((wallet) => wallet.walletConnector.key === 'walletconnect')) === null || _a === void 0 ? void 0 : _a.walletConnector.init();
44
+ }
45
+ }
46
+ else if (emitCancelAuth && showAuthFlow)
47
+ dynamicEvents.dynamicEvents.emit('authFlowCancelled');
48
+ _setShowAuthFlow(value);
49
+ }, [
50
+ isAuthenticated,
51
+ isMultiWalletEnabled,
52
+ isRenderingEmbeddedAuthFlow,
53
+ showAuthFlow,
54
+ walletConnectorOptions,
55
+ ]);
56
+ return [showAuthFlow, setShowAuthFlow];
57
+ };
58
+
59
+ exports.useShowAuthFlow = useShowAuthFlow;
@@ -0,0 +1,37 @@
1
+ import { SetStateAction } from 'react';
2
+ import { WalletOption } from '../../../../shared';
3
+ import { IDynamicContext } from '../../types';
4
+ export type SetShowAuthFlowOptions = {
5
+ /**
6
+ * WalletConnect requires initialization before we can connect a wallet.
7
+ * The goal here is that when the auth flow opens, the
8
+ * SDK starts initializing WalletConnect and will prime it for connection.
9
+ * This way, when the user clicks on the "Connect" button in the WalletConnect modal,
10
+ * there is a uri ready to go to immediately trigger the deep link on mobile
11
+ */
12
+ initializeWalletConnect?: boolean;
13
+ /** Makes this call be ignored if setting to true when there is an embedded widget on screen */
14
+ ignoreIfIsEmbeddedWidget?: boolean;
15
+ /**
16
+ * When setting to true while logged in:
17
+ * 1. If multi wallet is false, ignores the call — handy to prevent users from
18
+ * getting to the link new wallet screen without multi wallet
19
+ * 2. If multi wallet is true, logs a warning to use setShowLinkNewWalletModal instead
20
+ */
21
+ performMultiWalletChecks?: boolean;
22
+ /** When setting to false, emits authFlowCancelled event and callback */
23
+ emitCancelAuth?: boolean;
24
+ };
25
+ export type SetShowAuthFlow = (value: SetStateAction<boolean>, options?: SetShowAuthFlowOptions) => void;
26
+ /**
27
+ * There are a multitude of scenarios where we want to ignore or insert functionality to calls
28
+ * to setShowAuthFlow. This hook wraps it with an options parameter to allow encapsulating these
29
+ * different scenarios and makes it especially easy to customize exactly which version of this method
30
+ * is being passed to useDynamicContext.
31
+ */
32
+ export declare const useShowAuthFlow: ({ isAuthenticated, isRenderingEmbeddedAuthFlow, isMultiWalletEnabled, walletConnectorOptions, }: {
33
+ isMultiWalletEnabled: boolean;
34
+ isRenderingEmbeddedAuthFlow: IDynamicContext['isRenderingEmbeddedAuthFlow'];
35
+ walletConnectorOptions: WalletOption[];
36
+ isAuthenticated: boolean;
37
+ }) => [boolean, SetShowAuthFlow];
@@ -0,0 +1,55 @@
1
+ import { useState, useCallback } from 'react';
2
+ import { dynamicEvents } from '../../../../events/dynamicEvents.js';
3
+ import '@dynamic-labs/sdk-api';
4
+ import { logger } from '../../../../shared/logger.js';
5
+ import '@dynamic-labs/iconic';
6
+ import '@dynamic-labs/wallet-connector-core';
7
+ import 'react/jsx-runtime';
8
+ import '../../../ViewContext/ViewContext.js';
9
+ import '@dynamic-labs/wallet-book';
10
+ import '../../../../utils/constants/colors.js';
11
+ import '../../../../shared/utils/classes/storage/localStorage.js';
12
+ import 'viem';
13
+ import '@dynamic-labs/utils';
14
+ import '../../../../shared/consts/index.js';
15
+
16
+ /**
17
+ * There are a multitude of scenarios where we want to ignore or insert functionality to calls
18
+ * to setShowAuthFlow. This hook wraps it with an options parameter to allow encapsulating these
19
+ * different scenarios and makes it especially easy to customize exactly which version of this method
20
+ * is being passed to useDynamicContext.
21
+ */
22
+ const useShowAuthFlow = ({ isAuthenticated, isRenderingEmbeddedAuthFlow, isMultiWalletEnabled, walletConnectorOptions, }) => {
23
+ const [showAuthFlow, _setShowAuthFlow] = useState(false);
24
+ const setShowAuthFlow = useCallback((value, options = {}) => {
25
+ var _a;
26
+ const { emitCancelAuth, ignoreIfIsEmbeddedWidget, initializeWalletConnect, performMultiWalletChecks, } = Object.assign({ emitCancelAuth: false, ignoreIfIsEmbeddedWidget: true, initializeWalletConnect: true, performMultiWalletChecks: false }, options);
27
+ if (value) {
28
+ if (ignoreIfIsEmbeddedWidget && isRenderingEmbeddedAuthFlow.current)
29
+ return;
30
+ if (performMultiWalletChecks && isAuthenticated) {
31
+ if (!isMultiWalletEnabled) {
32
+ logger.warn('setShowAuthFlow was called while the user is logged in, but Dynamic is not configured with multi-wallet enabled. This results in a no-op.');
33
+ return;
34
+ }
35
+ logger.warn('Using setShowAuthFlow to render the wallet list when the user is logged in is deprecated. Use setShowLinkNewWalletModal instead. For more information, see: https://docs.dynamic.xyz/react-sdk/hooks/usedynamiccontext');
36
+ }
37
+ if (initializeWalletConnect) {
38
+ (_a = walletConnectorOptions
39
+ .find((wallet) => wallet.walletConnector.key === 'walletconnect')) === null || _a === void 0 ? void 0 : _a.walletConnector.init();
40
+ }
41
+ }
42
+ else if (emitCancelAuth && showAuthFlow)
43
+ dynamicEvents.emit('authFlowCancelled');
44
+ _setShowAuthFlow(value);
45
+ }, [
46
+ isAuthenticated,
47
+ isMultiWalletEnabled,
48
+ isRenderingEmbeddedAuthFlow,
49
+ showAuthFlow,
50
+ walletConnectorOptions,
51
+ ]);
52
+ return [showAuthFlow, setShowAuthFlow];
53
+ };
54
+
55
+ export { useShowAuthFlow };
@@ -70,6 +70,7 @@ const useTieCallbacksToEvents = (clientCallbacks) => {
70
70
  else
71
71
  (_b = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onEmailVerificationFailure) === null || _b === void 0 ? void 0 : _b.call(clientCallbacks, email);
72
72
  });
73
+ useDynamicEvents.useInternalDynamicEvents('authFlowCancelled', () => { var _a; return (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onAuthFlowCancel) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks); });
73
74
  };
74
75
 
75
76
  exports.useTieCallbacksToEvents = useTieCallbacksToEvents;
@@ -66,6 +66,7 @@ const useTieCallbacksToEvents = (clientCallbacks) => {
66
66
  else
67
67
  (_b = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onEmailVerificationFailure) === null || _b === void 0 ? void 0 : _b.call(clientCallbacks, email);
68
68
  });
69
+ useInternalDynamicEvents('authFlowCancelled', () => { var _a; return (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onAuthFlowCancel) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks); });
69
70
  };
70
71
 
71
72
  export { useTieCallbacksToEvents };
@@ -6,7 +6,7 @@ import { AccessDeniedCustomButton, AccountSwitchState, AuthModeType, AwaitingSig
6
6
  import { SocialNetworkIconType } from '../../../utils/functions/getSocialNetworkIcon';
7
7
  import { MultiWalletWidgetStateSetter } from '../../../utils/hooks/multiWallet';
8
8
  import { ThemeData, ThemeSetting } from '../../ThemeContext';
9
- import { DisplayOrder, SetDisplayOrderPriority } from '../hooks';
9
+ import { DisplayOrder, SetDisplayOrderPriority, SetShowAuthFlow } from '../hooks';
10
10
  import { SetCallbackType } from '../useCustomerCallbacks';
11
11
  export type ChainsToConnect = {
12
12
  chain: Chain;
@@ -101,9 +101,7 @@ export interface IDynamicContext {
101
101
  setQrcodeUri: Dispatch<SetStateAction<string>>;
102
102
  setSelectedWalletConnectorKey: (key: string | null) => void;
103
103
  setSelectedWalletWithAction: (walletWithAction: WalletWithAction | null) => void;
104
- setShowAuthFlow: Dispatch<SetStateAction<boolean>>;
105
- /** The unwrapped version of setShowAuthFlow. See useSetShowAuthFlowWithInit.ts for context */
106
- internalSetShowAuthFlow: Dispatch<SetStateAction<boolean>>;
104
+ setShowAuthFlow: SetShowAuthFlow;
107
105
  setShowLinkNewWalletModal: Dispatch<SetStateAction<boolean>>;
108
106
  setShowDynamicUserProfile: Dispatch<SetStateAction<boolean>>;
109
107
  setShowPasskeyCreatedSuccess: VoidFunction;
@@ -141,18 +139,23 @@ export interface IDynamicContext {
141
139
  walletConnectorOptions: WalletOption[];
142
140
  walletsFilter?: (options: WalletOption[]) => WalletOption[];
143
141
  removeConnectedWalletsInfo: () => void;
144
- /** Whether any verifications are ongoing for the current user (ex. connect, sign and email login verifications) */
142
+ /** Whether any verifications are ongoing for the current user (ex. connect, sign and email login verifications
143
+ * @deprecated Listen to our callbacks instead: https://docs.dynamic.xyz/react-sdk/callbacks/callbacks-introduction
144
+ */
145
145
  isVerificationInProgress: boolean;
146
146
  /** State setter for isVerificationInProgress
147
147
  * @param checkWasSetOnDisable when true, if newValue is false, logs a message if the flag wasn't set to true before
148
+ * @deprecated This will be dropped in v2
148
149
  */
149
150
  setIsVerificationInProgress: (newValue: boolean, checkWasSetOnDisable?: boolean) => void;
150
151
  /** Legacy boolean flag used in useVerifyOnAwaitingSignature. Used to be called "isVerifying".
151
152
  * Was meant to prevent an effect from accidentally triggering again when it shouldn't.
152
- * Should be removed asap.
153
+ * @deprecated Should be removed asap.
153
154
  */
154
155
  legacyIsVerifying: boolean;
155
- /** Legacy setter for legacyIsVerifying */
156
+ /** Legacy setter for legacyIsVerifying
157
+ * @deprecated Should be removed asap.
158
+ */
156
159
  setLegacyIsVerifying: Dispatch<SetStateAction<boolean>>;
157
160
  /** Whether there is an instance of DynamicEmbeddedAuthFlow being rendered */
158
161
  isRenderingEmbeddedAuthFlow: MutableRefObject<boolean>;
@@ -40,7 +40,12 @@ const useDynamicContext = () => {
40
40
  setMultiWalletWidgetState,
41
41
  setNetwork,
42
42
  setPrimaryWallet,
43
- setShowAuthFlow,
43
+ setShowAuthFlow: (value) => setShowAuthFlow(value, {
44
+ emitCancelAuth: true,
45
+ ignoreIfIsEmbeddedWidget: true,
46
+ initializeWalletConnect: true,
47
+ performMultiWalletChecks: true,
48
+ }),
44
49
  setShowBridgeWidget,
45
50
  setShowDynamicUserProfile,
46
51
  setShowLinkNewWalletModal,
@@ -1,3 +1,6 @@
1
+ import { Dispatch, SetStateAction } from 'react';
1
2
  import { IDynamicContext } from './types';
2
- export type UseDynamicContext = Pick<IDynamicContext, 'accountSwitchState' | 'authMode' | 'authToken' | 'awaitingSignatureState' | 'getNameService' | 'handleLogOut' | 'handleUnlinkWallet' | 'isAuthenticated' | 'isFullyConnected' | 'isVerificationInProgress' | 'loadingNetwork' | 'locale' | 'loginWithEmail' | 'multiWalletWidgetState' | 'network' | 'networkConfigurations' | 'primaryWallet' | 'qrcodeUri' | 'rpcProviders' | 'sdkHasLoaded' | 'setLogInWithEmail' | 'setMultiWalletWidgetState' | 'setNetwork' | 'setPrimaryWallet' | 'setShowAuthFlow' | 'setShowDynamicUserProfile' | 'setShowQrcodeModal' | 'shadowDOMEnabled' | 'showAuthFlow' | 'showQrcodeModal' | 'user' | 'walletConnector' | 'walletConnectorOptions' | 'bridgeChains' | 'bridgeChainsToConnect' | 'setShowBridgeWidget' | 'sendWagmiSettings' | 'showDynamicUserProfile' | 'setShowLinkNewWalletModal'>;
3
+ export type UseDynamicContext = Pick<IDynamicContext, 'accountSwitchState' | 'authMode' | 'authToken' | 'awaitingSignatureState' | 'getNameService' | 'handleLogOut' | 'handleUnlinkWallet' | 'isAuthenticated' | 'isFullyConnected' | 'isVerificationInProgress' | 'loadingNetwork' | 'locale' | 'loginWithEmail' | 'multiWalletWidgetState' | 'network' | 'networkConfigurations' | 'primaryWallet' | 'qrcodeUri' | 'rpcProviders' | 'sdkHasLoaded' | 'setLogInWithEmail' | 'setMultiWalletWidgetState' | 'setNetwork' | 'setPrimaryWallet' | 'setShowDynamicUserProfile' | 'setShowQrcodeModal' | 'shadowDOMEnabled' | 'showAuthFlow' | 'showQrcodeModal' | 'user' | 'walletConnector' | 'walletConnectorOptions' | 'bridgeChains' | 'bridgeChainsToConnect' | 'setShowBridgeWidget' | 'sendWagmiSettings' | 'showDynamicUserProfile' | 'setShowLinkNewWalletModal'> & {
4
+ setShowAuthFlow: Dispatch<SetStateAction<boolean>>;
5
+ };
3
6
  export declare const useDynamicContext: () => UseDynamicContext;