@dynamic-labs/sdk-react-core 4.5.3 → 4.6.1

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 (83) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +12 -12
  5. package/src/index.cjs +2 -0
  6. package/src/index.d.ts +1 -1
  7. package/src/index.js +1 -0
  8. package/src/lib/components/UserProfile/UserProfile.cjs +8 -1
  9. package/src/lib/components/UserProfile/UserProfile.js +8 -1
  10. package/src/lib/context/DynamicContext/DynamicContext.cjs +3 -13
  11. package/src/lib/context/DynamicContext/DynamicContext.js +3 -13
  12. package/src/lib/context/DynamicContext/types/IDynamicContext.d.ts +1 -0
  13. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.cjs +2 -1
  14. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.d.ts +1 -1
  15. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.js +2 -1
  16. package/src/lib/context/OnrampContext/useEnabledOnrampProviders/useEnabledOnrampProviders.cjs +2 -1
  17. package/src/lib/context/OnrampContext/useEnabledOnrampProviders/useEnabledOnrampProviders.js +2 -1
  18. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.cjs +31 -4
  19. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.js +31 -4
  20. package/src/lib/context/SocialRedirectContext/hooks/useRedirectSocialHandler/useRedirectSocialHandler.cjs +1 -1
  21. package/src/lib/context/SocialRedirectContext/hooks/useRedirectSocialHandler/useRedirectSocialHandler.js +1 -1
  22. package/src/lib/context/UserFieldEditorContext/UserFieldEditorContext.cjs +2 -1
  23. package/src/lib/context/UserFieldEditorContext/UserFieldEditorContext.js +3 -2
  24. package/src/lib/data/api/api.cjs +3 -4
  25. package/src/lib/data/api/api.js +3 -4
  26. package/src/lib/data/api/user/user.cjs +10 -0
  27. package/src/lib/data/api/user/user.d.ts +1 -0
  28. package/src/lib/data/api/user/user.js +10 -1
  29. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +1 -1
  30. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +1 -1
  31. package/src/lib/store/internalImplementation/store.cjs +0 -2
  32. package/src/lib/store/internalImplementation/store.js +0 -2
  33. package/src/lib/store/state/projectSettings/projectSettings.cjs +15 -3
  34. package/src/lib/store/state/projectSettings/projectSettings.d.ts +3 -1
  35. package/src/lib/store/state/projectSettings/projectSettings.js +16 -5
  36. package/src/lib/utils/functions/isCookieEnabled/isCookieEnabled.cjs +6 -6
  37. package/src/lib/utils/functions/isCookieEnabled/isCookieEnabled.d.ts +2 -1
  38. package/src/lib/utils/functions/isCookieEnabled/isCookieEnabled.js +7 -7
  39. package/src/lib/utils/functions/storeAuthToken/storeAuthToken.cjs +3 -1
  40. package/src/lib/utils/functions/storeAuthToken/storeAuthToken.js +3 -1
  41. package/src/lib/utils/hooks/index.d.ts +1 -0
  42. package/src/lib/utils/hooks/useConfirmationModal/useConfirmationModal.cjs +6 -4
  43. package/src/lib/utils/hooks/useConfirmationModal/useConfirmationModal.d.ts +6 -3
  44. package/src/lib/utils/hooks/useConfirmationModal/useConfirmationModal.js +6 -4
  45. package/src/lib/utils/hooks/useDeleteUserAccount/index.d.ts +1 -0
  46. package/src/lib/utils/hooks/useDeleteUserAccount/useDeleteUserAccount.cjs +119 -0
  47. package/src/lib/utils/hooks/useDeleteUserAccount/useDeleteUserAccount.d.ts +7 -0
  48. package/src/lib/utils/hooks/useDeleteUserAccount/useDeleteUserAccount.js +115 -0
  49. package/src/lib/utils/hooks/useFundWithWallet/useConnectWalletForFunding/useConnectWalletForFunding.cjs +9 -3
  50. package/src/lib/utils/hooks/useFundWithWallet/useConnectWalletForFunding/useConnectWalletForFunding.js +10 -4
  51. package/src/lib/utils/hooks/useFundWithWallet/utils/FilterWalletsForExternalFunding.cjs +27 -0
  52. package/src/lib/utils/hooks/useFundWithWallet/utils/FilterWalletsForExternalFunding.d.ts +2 -0
  53. package/src/lib/utils/hooks/useFundWithWallet/utils/FilterWalletsForExternalFunding.js +23 -0
  54. package/src/lib/utils/hooks/useFundWithWallet/utils/index.d.ts +1 -0
  55. package/src/lib/utils/hooks/useResetCookieLocalStorage/useResetCookieLocalStorage.cjs +7 -4
  56. package/src/lib/utils/hooks/useResetCookieLocalStorage/useResetCookieLocalStorage.js +7 -4
  57. package/src/lib/utils/hooks/useValidateSession/handleUserDataOutOfSync/handleUserDataOutOfSync.cjs +2 -2
  58. package/src/lib/utils/hooks/useValidateSession/handleUserDataOutOfSync/handleUserDataOutOfSync.d.ts +3 -1
  59. package/src/lib/utils/hooks/useValidateSession/handleUserDataOutOfSync/handleUserDataOutOfSync.js +2 -2
  60. package/src/lib/utils/hooks/useValidateSession/useValidateSession.cjs +16 -6
  61. package/src/lib/utils/hooks/useValidateSession/useValidateSession.js +17 -7
  62. package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.cjs +2 -0
  63. package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.js +2 -0
  64. package/src/lib/views/Passkey/PasskeyRecovery/AddRecoveryEmail/AddRecoveryEmail.cjs +1 -1
  65. package/src/lib/views/Passkey/PasskeyRecovery/AddRecoveryEmail/AddRecoveryEmail.js +1 -1
  66. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +1 -1
  67. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +1 -1
  68. package/src/lib/views/WalletList/WalletList.cjs +1 -1
  69. package/src/lib/views/WalletList/WalletList.js +1 -1
  70. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletAddress/ActiveWalletAddress.cjs +14 -1
  71. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletAddress/ActiveWalletAddress.js +14 -1
  72. package/src/lib/widgets/DynamicWidget/views/ChooseWalletFundingMethod/useFundingMethods/useStartExternalWalletFunding/getPromptAmountParams/getPromptAmountParams.cjs +25 -0
  73. package/src/lib/widgets/DynamicWidget/views/ChooseWalletFundingMethod/useFundingMethods/useStartExternalWalletFunding/getPromptAmountParams/getPromptAmountParams.d.ts +7 -0
  74. package/src/lib/widgets/DynamicWidget/views/ChooseWalletFundingMethod/useFundingMethods/useStartExternalWalletFunding/getPromptAmountParams/getPromptAmountParams.js +21 -0
  75. package/src/lib/widgets/DynamicWidget/views/ChooseWalletFundingMethod/useFundingMethods/useStartExternalWalletFunding/getPromptAmountParams/index.d.ts +1 -0
  76. package/src/lib/widgets/DynamicWidget/views/ChooseWalletFundingMethod/useFundingMethods/useStartExternalWalletFunding/useStartExternalWalletFunding.cjs +5 -23
  77. package/src/lib/widgets/DynamicWidget/views/ChooseWalletFundingMethod/useFundingMethods/useStartExternalWalletFunding/useStartExternalWalletFunding.js +5 -23
  78. package/src/lib/widgets/DynamicWidget/views/ManageMfaWidgetView/ManageMfaWidgetView.cjs +1 -1
  79. package/src/lib/widgets/DynamicWidget/views/ManageMfaWidgetView/ManageMfaWidgetView.js +1 -1
  80. package/src/lib/store/internalImplementation/utils/clearExpiredData/clearExpiredData.cjs +0 -24
  81. package/src/lib/store/internalImplementation/utils/clearExpiredData/clearExpiredData.d.ts +0 -3
  82. package/src/lib/store/internalImplementation/utils/clearExpiredData/clearExpiredData.js +0 -20
  83. package/src/lib/store/internalImplementation/utils/clearExpiredData/index.d.ts +0 -1
@@ -0,0 +1,115 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
+ import { useState } from 'react';
4
+ import '@dynamic-labs/utils';
5
+ import '@dynamic-labs/sdk-api-core';
6
+ import '../../../config/ApiEndpoint.js';
7
+ import '../../constants/values.js';
8
+ import '@dynamic-labs/multi-wallet';
9
+ import '../../../shared/logger.js';
10
+ import '../../constants/colors.js';
11
+ import 'react-international-phone';
12
+ import '@dynamic-labs/iconic';
13
+ import '@dynamic-labs/wallet-connector-core';
14
+ import 'react/jsx-runtime';
15
+ import '../../../context/ViewContext/ViewContext.js';
16
+ import '@dynamic-labs/wallet-book';
17
+ import '../../../shared/consts/index.js';
18
+ import '../../../store/state/nonce/nonce.js';
19
+ import '../../../store/state/projectSettings/projectSettings.js';
20
+ import { useEnvironmentId } from '../../../store/state/dynamicContextProps/dynamicContextProps.js';
21
+ import '../../../store/state/primaryWalletId/primaryWalletId.js';
22
+ import '../../../store/state/user/user.js';
23
+ import '../../../locale/locale.js';
24
+ import { hardDeleteUser } from '../../../data/api/user/user.js';
25
+ import '../../../context/DynamicContext/DynamicContext.js';
26
+ import '../../../events/dynamicEvents.js';
27
+ import '../../../context/CaptchaContext/CaptchaContext.js';
28
+ import '../../../context/ErrorContext/ErrorContext.js';
29
+ import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
30
+ import '../../../context/AccountExistsContext/AccountExistsContext.js';
31
+ import '../../../context/UserWalletsContext/UserWalletsContext.js';
32
+ import '../../../context/VerificationContext/VerificationContext.js';
33
+ import 'react-dom';
34
+ import '../../functions/compareChains/compareChains.js';
35
+ import '../../../context/ThemeContext/ThemeContext.js';
36
+ import '../useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
37
+ import 'bs58';
38
+ import '@dynamic-labs/types';
39
+ import '../../../context/SocialRedirectContext/SocialRedirectContext.js';
40
+ import '../../../context/LoadingContext/LoadingContext.js';
41
+ import '../../../context/WalletContext/WalletContext.js';
42
+ import '../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
43
+ import 'yup';
44
+ import '../../../context/MockContext/MockContext.js';
45
+ import '../../../views/CollectUserDataView/useFields.js';
46
+ import '../../../context/FieldsStateContext/FieldsStateContext.js';
47
+ import '../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
48
+ import '@dynamic-labs/rpc-providers';
49
+ import '../../../store/state/loadingAndLifecycle.js';
50
+ import '@dynamic-labs/store';
51
+ import '../../../store/state/walletOptions/walletOptions.js';
52
+ import 'react-i18next';
53
+ import '../../../components/Accordion/components/AccordionItem/AccordionItem.js';
54
+ import '../../../components/Alert/Alert.js';
55
+ import '../../../components/ShadowDOM/ShadowDOM.js';
56
+ import '../../../components/IconButton/IconButton.js';
57
+ import '../../../components/InlineWidget/InlineWidget.js';
58
+ import '../../../components/Input/Input.js';
59
+ import '../../../components/IsBrowser/IsBrowser.js';
60
+ import '../../../components/MenuList/Dropdown/Dropdown.js';
61
+ import '../../../components/OverlayCard/OverlayCard.js';
62
+ import '../../../components/Transition/ZoomTransition/ZoomTransition.js';
63
+ import '../../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
64
+ import '../../../components/Transition/OpacityTransition/OpacityTransition.js';
65
+ import '../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
66
+ import '../../../components/Popper/Popper/Popper.js';
67
+ import '../../../components/Popper/PopperContext/PopperContext.js';
68
+ import 'react-focus-lock';
69
+ import 'qrcode';
70
+ import 'formik';
71
+ import '../useSubdomainCheck/useSubdomainCheck.js';
72
+ import '../../../context/WalletGroupContext/WalletGroupContext.js';
73
+ import '../../../context/IpConfigurationContext/IpConfigurationContext.js';
74
+ import '../../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
75
+ import '../../../context/ConnectWithOtpContext/constants.js';
76
+ import '../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
77
+ import '@hcaptcha/react-hcaptcha';
78
+ import '../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
79
+ import '../../../context/FooterAnimationContext/index.js';
80
+ import '../../../context/PasskeyContext/PasskeyContext.js';
81
+ import '../../../store/state/sendBalances.js';
82
+ import '../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js';
83
+ import '../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
84
+ import '../../../views/TransactionConfirmationView/TransactionConfirmationView.js';
85
+ import '../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
86
+ import '../../../context/OnrampContext/OnrampContext.js';
87
+ import '../../../widgets/DynamicWidget/views/ReceiveExternalWalletFunds/ReceiveExternalWalletFunds.js';
88
+ import '../../../../index.js';
89
+ import '../../../store/state/tokenBalances.js';
90
+ import '../../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
91
+ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
92
+
93
+ const useDeleteUserAccount = () => {
94
+ const environmentId = useEnvironmentId();
95
+ const { handleLogOut } = useInternalDynamicContext();
96
+ const [isLoading, setIsLoading] = useState(false);
97
+ const [error, setError] = useState(null);
98
+ const deleteUser = () => __awaiter(void 0, void 0, void 0, function* () {
99
+ try {
100
+ setIsLoading(true);
101
+ setError(null);
102
+ yield hardDeleteUser(environmentId);
103
+ yield handleLogOut();
104
+ }
105
+ catch (err) {
106
+ setError(err);
107
+ }
108
+ finally {
109
+ setIsLoading(false);
110
+ }
111
+ });
112
+ return { deleteUser, error, isLoading };
113
+ };
114
+
115
+ export { useDeleteUserAccount };
@@ -93,6 +93,7 @@ require('../../../../context/OnrampContext/OnrampContext.cjs');
93
93
  var rejectPromiseRef = require('../../../functions/rejectPromiseRef/rejectPromiseRef.cjs');
94
94
  var resolvePromiseRef = require('../../../functions/resolvePromiseRef/resolvePromiseRef.cjs');
95
95
  var useWalletOptions = require('../../useWalletOptions/useWalletOptions.cjs');
96
+ var FilterWalletsForExternalFunding = require('../utils/FilterWalletsForExternalFunding.cjs');
96
97
  require('../../../../widgets/DynamicWidget/views/ReceiveExternalWalletFunds/ReceiveExternalWalletFunds.cjs');
97
98
  require('../../../../../index.cjs');
98
99
  require('../../../../store/state/tokenBalances.cjs');
@@ -107,6 +108,13 @@ const useConnectWalletForFunding = () => {
107
108
  const internalConnectionPromiseRef = React.useRef(null);
108
109
  const connectWalletPromiseRef = React.useRef(null);
109
110
  const handleWalletMethod = React.useCallback((props) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
111
+ // This is for phantom redirect: store the reason for this connection
112
+ // so we don't lose the flow when redirected back
113
+ const connectionType = {
114
+ connectorConsumed: false,
115
+ type: 'external-wallet-funding',
116
+ };
117
+ utils.StorageService.setItem(utils.PHANTOM_REDIRECT_CONNECTION_TYPE_KEY, connectionType);
110
118
  const address = yield props.walletConnector.getAddress(props.getAddressOpts);
111
119
  if (!address) {
112
120
  rejectPromiseRef.rejectPromiseRef(internalConnectionPromiseRef, new utils.DynamicError('No wallet address found'));
@@ -182,9 +190,7 @@ const useConnectWalletForFunding = () => {
182
190
  }
183
191
  }),
184
192
  showDefaultFooter: true,
185
- viewWalletsFilter: (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.chain)
186
- ? index.FilterChain(primaryWallet.chain)
187
- : undefined,
193
+ viewWalletsFilter: utils.pipe(FilterWalletsForExternalFunding.FilterWalletsForExternalFunding).pipe(index.FilterChain(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.chain)),
188
194
  });
189
195
  setShowAuthFlow(true, {
190
196
  emitCancelAuth: false,
@@ -1,7 +1,7 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../../_virtual/_tslib.js';
3
3
  import { useRef, useCallback } from 'react';
4
- import { DynamicError, DeferredPromise } from '@dynamic-labs/utils';
4
+ import { StorageService, PHANTOM_REDIRECT_CONNECTION_TYPE_KEY, DynamicError, DeferredPromise, pipe } from '@dynamic-labs/utils';
5
5
  import '../../../../context/DynamicContext/DynamicContext.js';
6
6
  import '@dynamic-labs/sdk-api-core';
7
7
  import '../../../../shared/logger.js';
@@ -89,6 +89,7 @@ import '../../../../context/OnrampContext/OnrampContext.js';
89
89
  import { rejectPromiseRef } from '../../../functions/rejectPromiseRef/rejectPromiseRef.js';
90
90
  import { resolvePromiseRef } from '../../../functions/resolvePromiseRef/resolvePromiseRef.js';
91
91
  import { useWalletOptions } from '../../useWalletOptions/useWalletOptions.js';
92
+ import { FilterWalletsForExternalFunding } from '../utils/FilterWalletsForExternalFunding.js';
92
93
  import '../../../../widgets/DynamicWidget/views/ReceiveExternalWalletFunds/ReceiveExternalWalletFunds.js';
93
94
  import '../../../../../index.js';
94
95
  import '../../../../store/state/tokenBalances.js';
@@ -103,6 +104,13 @@ const useConnectWalletForFunding = () => {
103
104
  const internalConnectionPromiseRef = useRef(null);
104
105
  const connectWalletPromiseRef = useRef(null);
105
106
  const handleWalletMethod = useCallback((props) => __awaiter(void 0, void 0, void 0, function* () {
107
+ // This is for phantom redirect: store the reason for this connection
108
+ // so we don't lose the flow when redirected back
109
+ const connectionType = {
110
+ connectorConsumed: false,
111
+ type: 'external-wallet-funding',
112
+ };
113
+ StorageService.setItem(PHANTOM_REDIRECT_CONNECTION_TYPE_KEY, connectionType);
106
114
  const address = yield props.walletConnector.getAddress(props.getAddressOpts);
107
115
  if (!address) {
108
116
  rejectPromiseRef(internalConnectionPromiseRef, new DynamicError('No wallet address found'));
@@ -178,9 +186,7 @@ const useConnectWalletForFunding = () => {
178
186
  }
179
187
  }),
180
188
  showDefaultFooter: true,
181
- viewWalletsFilter: (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.chain)
182
- ? FilterChain(primaryWallet.chain)
183
- : undefined,
189
+ viewWalletsFilter: pipe(FilterWalletsForExternalFunding).pipe(FilterChain(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.chain)),
184
190
  });
185
191
  setShowAuthFlow(true, {
186
192
  emitCancelAuth: false,
@@ -0,0 +1,27 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var utils = require('@dynamic-labs/utils');
7
+
8
+ const SPECIFIC_WALLETS_WITHOUT_REDIRECTS = [
9
+ 'coinbase',
10
+ 'phantomevm',
11
+ 'magiceden',
12
+ ];
13
+ const FilterWalletsForExternalFunding = (wallets) => {
14
+ if (!utils.isMobile()) {
15
+ return wallets;
16
+ }
17
+ return wallets.filter((wallet) => {
18
+ if (SPECIFIC_WALLETS_WITHOUT_REDIRECTS.includes(wallet.key)) {
19
+ return false;
20
+ }
21
+ const mobileCondition = wallet.walletConnector.isWalletConnect ||
22
+ wallet.walletConnector.mobileExperience !== 'in-app-browser';
23
+ return mobileCondition;
24
+ });
25
+ };
26
+
27
+ exports.FilterWalletsForExternalFunding = FilterWalletsForExternalFunding;
@@ -0,0 +1,2 @@
1
+ import { WalletOption } from '../../../../shared';
2
+ export declare const FilterWalletsForExternalFunding: (wallets: WalletOption[]) => WalletOption[];
@@ -0,0 +1,23 @@
1
+ 'use client'
2
+ import { isMobile } from '@dynamic-labs/utils';
3
+
4
+ const SPECIFIC_WALLETS_WITHOUT_REDIRECTS = [
5
+ 'coinbase',
6
+ 'phantomevm',
7
+ 'magiceden',
8
+ ];
9
+ const FilterWalletsForExternalFunding = (wallets) => {
10
+ if (!isMobile()) {
11
+ return wallets;
12
+ }
13
+ return wallets.filter((wallet) => {
14
+ if (SPECIFIC_WALLETS_WITHOUT_REDIRECTS.includes(wallet.key)) {
15
+ return false;
16
+ }
17
+ const mobileCondition = wallet.walletConnector.isWalletConnect ||
18
+ wallet.walletConnector.mobileExperience !== 'in-app-browser';
19
+ return mobileCondition;
20
+ });
21
+ };
22
+
23
+ export { FilterWalletsForExternalFunding };
@@ -0,0 +1 @@
1
+ export { FilterWalletsForExternalFunding } from './FilterWalletsForExternalFunding';
@@ -20,10 +20,10 @@ require('@dynamic-labs/multi-wallet');
20
20
  require('react-international-phone');
21
21
  require('../../../store/state/nonce/nonce.cjs');
22
22
  var isCookieEnabled = require('../../functions/isCookieEnabled/isCookieEnabled.cjs');
23
+ var projectSettings = require('../../../store/state/projectSettings/projectSettings.cjs');
23
24
  var updatePrimaryWalletId = require('../../functions/updatePrimaryWalletId/updatePrimaryWalletId.cjs');
24
25
  require('../../../config/ApiEndpoint.cjs');
25
26
  var user = require('../../../store/state/user/user.cjs');
26
- var projectSettings = require('../../../store/state/projectSettings/projectSettings.cjs');
27
27
  require('../../../locale/locale.cjs');
28
28
  var user$1 = require('../../../data/api/user/user.cjs');
29
29
  var useDynamicEvents = require('../events/useDynamicEvents/useDynamicEvents.cjs');
@@ -61,7 +61,10 @@ const useResetCookieLocalStorage = () => {
61
61
  * so attempt to set it here.
62
62
  */
63
63
  const maybeInitUserRefresh = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
64
- if (!user$2 && isCookieEnabled.isCookieEnabled() && !hasLoggedOut.current) {
64
+ if (!user$2 &&
65
+ projectSettings$1 &&
66
+ isCookieEnabled.isCookieEnabled(projectSettings$1) &&
67
+ !hasLoggedOut.current) {
65
68
  // Disable all next calls to this method
66
69
  didRefreshUserRef.current = true;
67
70
  try {
@@ -86,8 +89,8 @@ const useResetCookieLocalStorage = () => {
86
89
  setIsLoading(false);
87
90
  }
88
91
  });
89
- // Ensure this effect only runs once
90
- if (didRefreshUserRef.current)
92
+ // Ensure this effect only runs once projectSettings is available
93
+ if (didRefreshUserRef.current || !projectSettings$1)
91
94
  return;
92
95
  maybeInitUserRefresh();
93
96
  }, [user$2, projectSettings$1, environmentId]);
@@ -16,10 +16,10 @@ import '@dynamic-labs/multi-wallet';
16
16
  import 'react-international-phone';
17
17
  import '../../../store/state/nonce/nonce.js';
18
18
  import { isCookieEnabled } from '../../functions/isCookieEnabled/isCookieEnabled.js';
19
+ import { useProjectSettings } from '../../../store/state/projectSettings/projectSettings.js';
19
20
  import { updatePrimaryWalletId } from '../../functions/updatePrimaryWalletId/updatePrimaryWalletId.js';
20
21
  import '../../../config/ApiEndpoint.js';
21
22
  import { getUser } from '../../../store/state/user/user.js';
22
- import { useProjectSettings } from '../../../store/state/projectSettings/projectSettings.js';
23
23
  import '../../../locale/locale.js';
24
24
  import { refreshUserJwt } from '../../../data/api/user/user.js';
25
25
  import { useInternalDynamicEvents } from '../events/useDynamicEvents/useDynamicEvents.js';
@@ -57,7 +57,10 @@ const useResetCookieLocalStorage = () => {
57
57
  * so attempt to set it here.
58
58
  */
59
59
  const maybeInitUserRefresh = () => __awaiter(void 0, void 0, void 0, function* () {
60
- if (!user && isCookieEnabled() && !hasLoggedOut.current) {
60
+ if (!user &&
61
+ projectSettings &&
62
+ isCookieEnabled(projectSettings) &&
63
+ !hasLoggedOut.current) {
61
64
  // Disable all next calls to this method
62
65
  didRefreshUserRef.current = true;
63
66
  try {
@@ -82,8 +85,8 @@ const useResetCookieLocalStorage = () => {
82
85
  setIsLoading(false);
83
86
  }
84
87
  });
85
- // Ensure this effect only runs once
86
- if (didRefreshUserRef.current)
88
+ // Ensure this effect only runs once projectSettings is available
89
+ if (didRefreshUserRef.current || !projectSettings)
87
90
  return;
88
91
  maybeInitUserRefresh();
89
92
  }, [user, projectSettings, environmentId]);
@@ -16,8 +16,8 @@ var getAuthToken = require('../../../functions/getAuthToken/getAuthToken.cjs');
16
16
  * Detects mismatch between user and auth token.
17
17
  * @returns true if there is no mismatch.
18
18
  */
19
- const handleUserDataOutOfSync = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ environmentId, logout, }) {
20
- const cookieEnabled = isCookieEnabled.isCookieEnabled();
19
+ const handleUserDataOutOfSync = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ environmentId, logout, projectSettings, }) {
20
+ const cookieEnabled = isCookieEnabled.isCookieEnabled(projectSettings);
21
21
  const authToken = getAuthToken.getAuthToken();
22
22
  const user$2 = user.getUser();
23
23
  if (authToken || !user$2) {
@@ -1,9 +1,11 @@
1
+ import { ProjectSettings } from '@dynamic-labs/sdk-api-core';
1
2
  export type HandleUserDataOutOfSyncParams = {
2
3
  environmentId: string;
3
4
  logout: (reason: string, params: any) => Promise<void>;
5
+ projectSettings: ProjectSettings;
4
6
  };
5
7
  /**
6
8
  * Detects mismatch between user and auth token.
7
9
  * @returns true if there is no mismatch.
8
10
  */
9
- export declare const handleUserDataOutOfSync: ({ environmentId, logout, }: HandleUserDataOutOfSyncParams) => Promise<boolean>;
11
+ export declare const handleUserDataOutOfSync: ({ environmentId, logout, projectSettings, }: HandleUserDataOutOfSyncParams) => Promise<boolean>;
@@ -12,8 +12,8 @@ import { getAuthToken } from '../../../functions/getAuthToken/getAuthToken.js';
12
12
  * Detects mismatch between user and auth token.
13
13
  * @returns true if there is no mismatch.
14
14
  */
15
- const handleUserDataOutOfSync = (_a) => __awaiter(void 0, [_a], void 0, function* ({ environmentId, logout, }) {
16
- const cookieEnabled = isCookieEnabled();
15
+ const handleUserDataOutOfSync = (_a) => __awaiter(void 0, [_a], void 0, function* ({ environmentId, logout, projectSettings, }) {
16
+ const cookieEnabled = isCookieEnabled(projectSettings);
17
17
  const authToken = getAuthToken();
18
18
  const user = getUser();
19
19
  if (authToken || !user) {
@@ -6,24 +6,27 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
7
  var React = require('react');
8
8
  var logger = require('../../../shared/logger.cjs');
9
- var useEffectOnce = require('../useEffectOnce/useEffectOnce.cjs');
10
9
  var loadingAndLifecycle = require('../../../store/state/loadingAndLifecycle.cjs');
11
10
  var useDynamicEvents = require('../events/useDynamicEvents/useDynamicEvents.cjs');
11
+ var projectSettings = require('../../../store/state/projectSettings/projectSettings.cjs');
12
12
  var handleStoreAndEnvironmentMismatch = require('./handleStoreAndEnvironmentMismatch/handleStoreAndEnvironmentMismatch.cjs');
13
13
  var handleUserDataOutOfSync = require('./handleUserDataOutOfSync/handleUserDataOutOfSync.cjs');
14
14
  var handleStoreVersionChanged = require('./handleStoreVersionChanged/handleStoreVersionChanged.cjs');
15
15
 
16
16
  const useValidateSession = ({ environmentId, handleLogOut }) => {
17
+ const didRunRef = React.useRef(false);
18
+ const projectSettings$1 = projectSettings.useProjectSettings();
17
19
  const logout = React.useCallback(
18
20
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
21
  (reason, params) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
20
- logger.logger.debug(`Logging out due to invalid session - Reason: ${reason}`, Object.assign({}, params));
22
+ logger.logger.info(`Logging out due to invalid session - Reason: ${reason}`, Object.assign({}, params));
21
23
  return handleLogOut();
22
24
  }), [handleLogOut]);
23
- const validateSession = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
25
+ const validateSession = React.useCallback((projectSettings) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
24
26
  const params = {
25
27
  environmentId,
26
28
  logout,
29
+ projectSettings,
27
30
  };
28
31
  yield Promise.all([
29
32
  handleStoreAndEnvironmentMismatch.handleStoreAndEnvironmentMismatch(params),
@@ -33,10 +36,17 @@ const useValidateSession = ({ environmentId, handleLogOut }) => {
33
36
  // Regardless of whether we logged out or not, session validation is now complete
34
37
  loadingAndLifecycle.setLoadingAndLifecycle({ sessionValidation: true });
35
38
  }), [logout, environmentId]);
36
- useEffectOnce.useEffectOnce(() => {
37
- validateSession();
39
+ React.useEffect(() => {
40
+ if (didRunRef.current || !projectSettings$1)
41
+ return;
42
+ didRunRef.current = true;
43
+ validateSession(projectSettings$1);
44
+ }, [validateSession, projectSettings$1]);
45
+ useDynamicEvents.useInternalDynamicEvents('triggerSessionValidation', () => {
46
+ if (!projectSettings$1)
47
+ return;
48
+ validateSession(projectSettings$1);
38
49
  });
39
- useDynamicEvents.useInternalDynamicEvents('triggerSessionValidation', validateSession);
40
50
  };
41
51
 
42
52
  exports.useValidateSession = useValidateSession;
@@ -1,25 +1,28 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
- import { useCallback } from 'react';
3
+ import { useRef, useCallback, useEffect } from 'react';
4
4
  import { logger } from '../../../shared/logger.js';
5
- import { useEffectOnce } from '../useEffectOnce/useEffectOnce.js';
6
5
  import { setLoadingAndLifecycle } from '../../../store/state/loadingAndLifecycle.js';
7
6
  import { useInternalDynamicEvents } from '../events/useDynamicEvents/useDynamicEvents.js';
7
+ import { useProjectSettings } from '../../../store/state/projectSettings/projectSettings.js';
8
8
  import { handleStoreAndEnvironmentMismatch } from './handleStoreAndEnvironmentMismatch/handleStoreAndEnvironmentMismatch.js';
9
9
  import { handleUserDataOutOfSync } from './handleUserDataOutOfSync/handleUserDataOutOfSync.js';
10
10
  import { handleStoreVersionChanged } from './handleStoreVersionChanged/handleStoreVersionChanged.js';
11
11
 
12
12
  const useValidateSession = ({ environmentId, handleLogOut }) => {
13
+ const didRunRef = useRef(false);
14
+ const projectSettings = useProjectSettings();
13
15
  const logout = useCallback(
14
16
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
17
  (reason, params) => __awaiter(void 0, void 0, void 0, function* () {
16
- logger.debug(`Logging out due to invalid session - Reason: ${reason}`, Object.assign({}, params));
18
+ logger.info(`Logging out due to invalid session - Reason: ${reason}`, Object.assign({}, params));
17
19
  return handleLogOut();
18
20
  }), [handleLogOut]);
19
- const validateSession = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
21
+ const validateSession = useCallback((projectSettings) => __awaiter(void 0, void 0, void 0, function* () {
20
22
  const params = {
21
23
  environmentId,
22
24
  logout,
25
+ projectSettings,
23
26
  };
24
27
  yield Promise.all([
25
28
  handleStoreAndEnvironmentMismatch(params),
@@ -29,10 +32,17 @@ const useValidateSession = ({ environmentId, handleLogOut }) => {
29
32
  // Regardless of whether we logged out or not, session validation is now complete
30
33
  setLoadingAndLifecycle({ sessionValidation: true });
31
34
  }), [logout, environmentId]);
32
- useEffectOnce(() => {
33
- validateSession();
35
+ useEffect(() => {
36
+ if (didRunRef.current || !projectSettings)
37
+ return;
38
+ didRunRef.current = true;
39
+ validateSession(projectSettings);
40
+ }, [validateSession, projectSettings]);
41
+ useInternalDynamicEvents('triggerSessionValidation', () => {
42
+ if (!projectSettings)
43
+ return;
44
+ validateSession(projectSettings);
34
45
  });
35
- useInternalDynamicEvents('triggerSessionValidation', validateSession);
36
46
  };
37
47
 
38
48
  export { useValidateSession };
@@ -114,6 +114,8 @@ const DynamicSocialSignIn = ({ defaultProvider, numOfItemsToDisplay, collapsedLa
114
114
  provider: sdkApiCore.ProviderEnum.Farcaster,
115
115
  type: 'social',
116
116
  }, 'user-cancelled');
117
+ // Navigate back to the initial login view.
118
+ clearStackAndPushInitialView();
117
119
  },
118
120
  }),
119
121
  onSettled: () => {
@@ -110,6 +110,8 @@ const DynamicSocialSignIn = ({ defaultProvider, numOfItemsToDisplay, collapsedLa
110
110
  provider: ProviderEnum.Farcaster,
111
111
  type: 'social',
112
112
  }, 'user-cancelled');
113
+ // Navigate back to the initial login view.
114
+ clearStackAndPushInitialView();
113
115
  },
114
116
  }),
115
117
  onSettled: () => {
@@ -57,7 +57,6 @@ require('../../../CollectUserDataView/useFields.cjs');
57
57
  require('../../../../context/FieldsStateContext/FieldsStateContext.cjs');
58
58
  require('../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
59
59
  require('@dynamic-labs/rpc-providers');
60
- var useEffectOnce = require('../../../../utils/hooks/useEffectOnce/useEffectOnce.cjs');
61
60
  require('../../../../store/state/loadingAndLifecycle.cjs');
62
61
  require('@dynamic-labs/store');
63
62
  require('../../../../store/state/walletOptions/walletOptions.cjs');
@@ -81,6 +80,7 @@ var ModalHeader = require('../../../../components/ModalHeader/ModalHeader.cjs');
81
80
  require('../../../../store/state/sendBalances.cjs');
82
81
  require('../../../../components/Input/Input.cjs');
83
82
  require('../../../../components/OverlayCard/OverlayCard.cjs');
83
+ var useEffectOnce = require('../../../../utils/hooks/useEffectOnce/useEffectOnce.cjs');
84
84
  require('../../../TransactionConfirmationView/TransactionConfirmationView.cjs');
85
85
  require('../../../../context/PasskeyContext/PasskeyContext.cjs');
86
86
  require('../../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
@@ -53,7 +53,6 @@ import '../../../CollectUserDataView/useFields.js';
53
53
  import '../../../../context/FieldsStateContext/FieldsStateContext.js';
54
54
  import '../../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
55
55
  import '@dynamic-labs/rpc-providers';
56
- import { useEffectOnce } from '../../../../utils/hooks/useEffectOnce/useEffectOnce.js';
57
56
  import '../../../../store/state/loadingAndLifecycle.js';
58
57
  import '@dynamic-labs/store';
59
58
  import '../../../../store/state/walletOptions/walletOptions.js';
@@ -77,6 +76,7 @@ import { ModalHeader } from '../../../../components/ModalHeader/ModalHeader.js';
77
76
  import '../../../../store/state/sendBalances.js';
78
77
  import '../../../../components/Input/Input.js';
79
78
  import '../../../../components/OverlayCard/OverlayCard.js';
79
+ import { useEffectOnce } from '../../../../utils/hooks/useEffectOnce/useEffectOnce.js';
80
80
  import '../../../TransactionConfirmationView/TransactionConfirmationView.js';
81
81
  import '../../../../context/PasskeyContext/PasskeyContext.js';
82
82
  import '../../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
@@ -55,7 +55,6 @@ require('../CollectUserDataView/useFields.cjs');
55
55
  require('../../context/FieldsStateContext/FieldsStateContext.cjs');
56
56
  require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
57
57
  require('@dynamic-labs/rpc-providers');
58
- var useEffectOnce = require('../../utils/hooks/useEffectOnce/useEffectOnce.cjs');
59
58
  require('../../store/state/loadingAndLifecycle.cjs');
60
59
  require('@dynamic-labs/store');
61
60
  require('../../store/state/walletOptions/walletOptions.cjs');
@@ -80,6 +79,7 @@ require('qrcode');
80
79
  var useFetchCurrency = require('../../widgets/DynamicWidget/hooks/useFetchCurrency/useFetchCurrency.cjs');
81
80
  require('formik');
82
81
  require('../../utils/hooks/useSubdomainCheck/useSubdomainCheck.cjs');
82
+ var useEffectOnce = require('../../utils/hooks/useEffectOnce/useEffectOnce.cjs');
83
83
  require('../../context/WalletGroupContext/WalletGroupContext.cjs');
84
84
  require('../../context/IpConfigurationContext/IpConfigurationContext.cjs');
85
85
  require('../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
@@ -51,7 +51,6 @@ import '../CollectUserDataView/useFields.js';
51
51
  import '../../context/FieldsStateContext/FieldsStateContext.js';
52
52
  import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
53
53
  import '@dynamic-labs/rpc-providers';
54
- import { useEffectOnce } from '../../utils/hooks/useEffectOnce/useEffectOnce.js';
55
54
  import '../../store/state/loadingAndLifecycle.js';
56
55
  import '@dynamic-labs/store';
57
56
  import '../../store/state/walletOptions/walletOptions.js';
@@ -76,6 +75,7 @@ import 'qrcode';
76
75
  import { useFetchCurrency } from '../../widgets/DynamicWidget/hooks/useFetchCurrency/useFetchCurrency.js';
77
76
  import 'formik';
78
77
  import '../../utils/hooks/useSubdomainCheck/useSubdomainCheck.js';
78
+ import { useEffectOnce } from '../../utils/hooks/useEffectOnce/useEffectOnce.js';
79
79
  import '../../context/WalletGroupContext/WalletGroupContext.js';
80
80
  import '../../context/IpConfigurationContext/IpConfigurationContext.js';
81
81
  import '../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
@@ -55,7 +55,6 @@ require('../CollectUserDataView/useFields.cjs');
55
55
  require('../../context/FieldsStateContext/FieldsStateContext.cjs');
56
56
  require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
57
57
  require('@dynamic-labs/rpc-providers');
58
- var useEffectOnce = require('../../utils/hooks/useEffectOnce/useEffectOnce.cjs');
59
58
  require('../../store/state/loadingAndLifecycle.cjs');
60
59
  require('@dynamic-labs/store');
61
60
  require('../../store/state/walletOptions/walletOptions.cjs');
@@ -80,6 +79,7 @@ require('qrcode');
80
79
  require('formik');
81
80
  require('../../utils/hooks/useSubdomainCheck/useSubdomainCheck.cjs');
82
81
  var DefaultFooter = require('../../layout/DynamicAuthLayout/DefaultFooter/DefaultFooter.cjs');
82
+ var useEffectOnce = require('../../utils/hooks/useEffectOnce/useEffectOnce.cjs');
83
83
  var useWalletList = require('../../utils/hooks/useWalletList/useWalletList.cjs');
84
84
  var SearchNotFoundMessage = require('./SearchNotFoundMessage/SearchNotFoundMessage.cjs');
85
85
  var WalletListGridTabs = require('./WalletListGridTabs/WalletListGridTabs.cjs');
@@ -51,7 +51,6 @@ import '../CollectUserDataView/useFields.js';
51
51
  import '../../context/FieldsStateContext/FieldsStateContext.js';
52
52
  import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
53
53
  import '@dynamic-labs/rpc-providers';
54
- import { useEffectOnce } from '../../utils/hooks/useEffectOnce/useEffectOnce.js';
55
54
  import '../../store/state/loadingAndLifecycle.js';
56
55
  import '@dynamic-labs/store';
57
56
  import '../../store/state/walletOptions/walletOptions.js';
@@ -76,6 +75,7 @@ import 'qrcode';
76
75
  import 'formik';
77
76
  import '../../utils/hooks/useSubdomainCheck/useSubdomainCheck.js';
78
77
  import { DefaultFooter } from '../../layout/DynamicAuthLayout/DefaultFooter/DefaultFooter.js';
78
+ import { useEffectOnce } from '../../utils/hooks/useEffectOnce/useEffectOnce.js';
79
79
  import { useWalletList } from '../../utils/hooks/useWalletList/useWalletList.js';
80
80
  import { SearchNotFoundMessage } from './SearchNotFoundMessage/SearchNotFoundMessage.js';
81
81
  import { WalletListGridTabs } from './WalletListGridTabs/WalletListGridTabs.js';