@dynamic-labs/sdk-react-core 2.0.0-alpha.10 → 2.0.0-alpha.11

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 (94) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +13 -13
  5. package/src/lib/components/NetworkPicker/NetworkPicker.cjs +1 -4
  6. package/src/lib/components/NetworkPicker/NetworkPicker.js +1 -4
  7. package/src/lib/components/UserAddress/UserAddress.cjs +1 -1
  8. package/src/lib/components/UserAddress/UserAddress.js +1 -1
  9. package/src/lib/context/DynamicContext/DynamicContext.cjs +6 -7
  10. package/src/lib/context/DynamicContext/DynamicContext.js +6 -7
  11. package/src/lib/context/DynamicContext/hooks/useHandleLogout/types.d.ts +0 -1
  12. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +0 -1
  13. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +0 -1
  14. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +4 -0
  15. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +4 -0
  16. package/src/lib/context/DynamicContext/types/index.d.ts +2 -3
  17. package/src/lib/context/DynamicContext/useCustomerCallbacks/types.d.ts +2 -3
  18. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +2 -11
  19. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.d.ts +1 -1
  20. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +2 -11
  21. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.cjs +1 -2
  22. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.d.ts +1 -1
  23. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.js +1 -2
  24. package/src/lib/context/ErrorContext/ErrorContext.cjs +3 -0
  25. package/src/lib/context/ErrorContext/ErrorContext.js +3 -0
  26. package/src/lib/context/PhantomRedirectContext/PhantomRedirectContext.cjs +11 -3
  27. package/src/lib/context/PhantomRedirectContext/PhantomRedirectContext.js +11 -3
  28. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.cjs +8 -1
  29. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.d.ts +1 -0
  30. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.js +8 -1
  31. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +1 -1
  32. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +1 -1
  33. package/src/lib/events/dynamicEvents.d.ts +2 -1
  34. package/src/lib/locale/en/translation.cjs +2 -0
  35. package/src/lib/locale/en/translation.d.ts +2 -0
  36. package/src/lib/locale/en/translation.js +2 -0
  37. package/src/lib/main.global.cjs +1 -1
  38. package/src/lib/main.global.js +1 -1
  39. package/src/lib/shared/types/connectionAndSignature.d.ts +2 -2
  40. package/src/lib/styles/index.shadow.cjs +1 -1
  41. package/src/lib/styles/index.shadow.js +1 -1
  42. package/src/lib/utils/functions/getVerifyArgs/getVerifyArgs.d.ts +2 -2
  43. package/src/lib/utils/functions/index.d.ts +1 -0
  44. package/src/lib/utils/functions/updateJWTAndCreateUserProfile/index.d.ts +1 -0
  45. package/src/lib/utils/functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.d.ts +1 -0
  46. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +2 -2
  47. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.d.ts +3 -3
  48. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +2 -2
  49. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +4 -4
  50. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.d.ts +4 -4
  51. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +4 -4
  52. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +2 -2
  53. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.d.ts +3 -3
  54. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +2 -2
  55. package/src/lib/utils/hooks/index.d.ts +1 -0
  56. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +3 -3
  57. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +2 -2
  58. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +3 -3
  59. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +2 -6
  60. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +2 -6
  61. package/src/lib/utils/hooks/useEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +7 -6
  62. package/src/lib/utils/hooks/useEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +7 -6
  63. package/src/lib/utils/hooks/useEmbeddedWallet/useTurnkey/useTurnkey.cjs +1 -1
  64. package/src/lib/utils/hooks/useEmbeddedWallet/useTurnkey/useTurnkey.js +1 -1
  65. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.cjs +83 -90
  66. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.d.ts +2 -9
  67. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.js +86 -91
  68. package/src/lib/utils/hooks/usePromise/usePromise.cjs +1 -1
  69. package/src/lib/utils/hooks/usePromise/usePromise.js +1 -1
  70. package/src/lib/utils/hooks/useSendDynamicProps/index.d.ts +1 -0
  71. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.cjs +84 -0
  72. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.d.ts +11 -0
  73. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.js +78 -0
  74. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +4 -4
  75. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.d.ts +1 -1
  76. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +4 -4
  77. package/src/lib/utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.cjs +7 -4
  78. package/src/lib/utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.d.ts +1 -0
  79. package/src/lib/utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.js +7 -4
  80. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +1 -1
  81. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +1 -1
  82. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +0 -32
  83. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +1 -6
  84. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +1 -33
  85. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +1 -1
  86. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.js +1 -1
  87. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +7 -5
  88. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +7 -5
  89. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +4 -1
  90. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +4 -1
  91. package/src/lib/views/WalletCannotBeTransferredView/WalletCannotBeTransferredView.cjs +9 -11
  92. package/src/lib/views/WalletCannotBeTransferredView/WalletCannotBeTransferredView.js +9 -11
  93. package/src/lib/views/WalletList/WalletList.cjs +9 -1
  94. package/src/lib/views/WalletList/WalletList.js +9 -1
@@ -2,11 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _tslib = require('../../../../../_virtual/_tslib.cjs');
5
6
  var React = require('react');
6
7
  var utils = require('@dynamic-labs/utils');
7
8
  var api = require('../../../data/api.cjs');
8
9
  require('@dynamic-labs/sdk-api');
9
- var logger = require('../../../shared/logger.cjs');
10
+ require('../../../shared/logger.cjs');
10
11
  require('@dynamic-labs/iconic');
11
12
  require('@dynamic-labs/wallet-connector-core');
12
13
  require('react/jsx-runtime');
@@ -16,115 +17,107 @@ var localStorage = require('../../constants/localStorage.cjs');
16
17
  require('../../constants/colors.cjs');
17
18
  require('../../constants/values.cjs');
18
19
  var localStorage$1 = require('../../../shared/utils/classes/storage/localStorage.cjs');
19
- var useEffectOnce = require('../../../shared/utils/hooks/useEffectOnce/useEffectOnce.cjs');
20
20
  var useLocalStorage = require('../../../shared/utils/hooks/useLocalStorage/useLocalStorage.cjs');
21
21
  require('../../../shared/consts/index.cjs');
22
22
  var validators = require('../../../context/DynamicContext/validators/validators.cjs');
23
+ require('../../../events/dynamicEvents.cjs');
24
+ require('../../../context/DynamicContext/DynamicContext.cjs');
25
+ require('../../../context/CaptchaContext/CaptchaContext.cjs');
26
+ require('../../../context/ErrorContext/ErrorContext.cjs');
27
+ require('@dynamic-labs/multi-wallet');
28
+ require('react-international-phone');
29
+ require('viem');
30
+ require('viem/chains');
31
+ require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
32
+ require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
33
+ require('../../../context/VerificationContext/VerificationContext.cjs');
34
+ require('react-dom');
35
+ require('../../../context/WalletContext/WalletContext.cjs');
36
+ var usePromise = require('../usePromise/usePromise.cjs');
37
+ require('../../../context/ThemeContext/ThemeContext.cjs');
38
+ require('@dynamic-labs/types');
39
+ require('yup');
40
+ require('react-i18next');
41
+ require('../../../context/MockContext/MockContext.cjs');
42
+ require('../useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
43
+ require('../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
44
+ require('@dynamic-labs/rpc-providers');
45
+ require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
46
+ require('../../../components/Alert/Alert.cjs');
47
+ require('../../../components/ShadowDOM/ShadowDOM.cjs');
48
+ require('../../../components/IconButton/IconButton.cjs');
49
+ require('../../../components/InlineWidget/InlineWidget.cjs');
50
+ require('../../../components/Input/Input.cjs');
51
+ require('../../../components/IsBrowser/IsBrowser.cjs');
52
+ require('../../../components/MenuList/Dropdown/Dropdown.cjs');
53
+ require('../../../components/Transition/ZoomTransition/ZoomTransition.cjs');
54
+ require('../../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
55
+ require('../../../components/Transition/OpacityTransition/OpacityTransition.cjs');
56
+ require('../../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.cjs');
57
+ require('../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
58
+ require('../../../components/Popper/Popper/Popper.cjs');
59
+ require('../../../components/Popper/PopperContext/PopperContext.cjs');
60
+ require('react-focus-lock');
61
+ require('formik');
62
+ require('qrcode');
63
+ require('../../../views/WalletList/WalletList.cjs');
64
+ require('../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
65
+ require('../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
66
+ require('i18next');
67
+ require('@hcaptcha/react-hcaptcha');
68
+ require('../../../context/LoadingContext/LoadingContext.cjs');
69
+ require('../../../config/ApiEndpoint.cjs');
70
+ require('../../../context/FooterAnimationContext/index.cjs');
71
+ require('../../../views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.cjs');
72
+ require('../../../context/WalletGroupContext/WalletGroupContext.cjs');
73
+ require('../../../context/PasskeyContext/PasskeyContext.cjs');
74
+ require('../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
75
+ require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
76
+ require('../../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.cjs');
77
+ require('../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
78
+ require('../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
23
79
 
24
- const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, dynamicContextProps, }) => {
80
+ const useFetchProjectSettings = ({ authToken, environmentId, retries = 2, }) => {
25
81
  const [lsSettings, setLsSettings, removeLsSettings] = useLocalStorage.useLocalStorage(localStorage.PROJECT_SETTINGS_STORAGE_KEY, undefined, validators.validateLocalStorageExpiry);
26
- const [isLoading, setLoading] = React.useState(false);
27
- const [retries, setRetries] = React.useState(0);
28
82
  const lsSettingsExists = (lsSettings === null || lsSettings === void 0 ? void 0 : lsSettings.settings) !== undefined ? true : false;
29
83
  if (lsSettings &&
30
84
  lsSettings.environmentId &&
31
85
  lsSettings.environmentId !== environmentId) {
32
86
  removeLsSettings();
33
87
  }
34
- React.useEffect(() => {
35
- if (!lsSettingsExists &&
36
- !isLoading &&
37
- environmentId &&
38
- retries < maxRetries) {
39
- setLoading(true);
40
- // we ReactNode components are not being serialized properly
41
- // remove them for now and deal with them later
42
- // context: https://linear.app/dynamic-labs/issue/GVTY-328/[starknet]-sdk-api-is-not-serializing-react-components
43
- // future work: https://linear.app/dynamic-labs/issue/GVTY-330/bug-figure-out-why-react-components-are-not
44
- const updatedDynamicProps = {
45
- settings: Object.assign(Object.assign({}, dynamicContextProps.settings), { customPrivacyPolicy: Boolean(dynamicContextProps.settings.customPrivacyPolicy), customTermsOfServices: Boolean(dynamicContextProps.settings.customTermsOfServices), policiesConsentInnerComponent: Boolean(dynamicContextProps.settings.policiesConsentInnerComponent) }),
46
- };
47
- const serializedEventsCallbacks = serializeEventsCallbacks(updatedDynamicProps.settings.eventsCallbacks);
48
- const serializedWalletConnectors = serializeWalletConnectors(updatedDynamicProps.settings.walletConnectors);
49
- const serializedDynamicContextProps = Object.assign(Object.assign({}, updatedDynamicProps), { settings: Object.assign(Object.assign({}, updatedDynamicProps.settings), { eventsCallbacks: serializedEventsCallbacks, walletConnectors: serializedWalletConnectors }) });
50
- api.sendDynamicProps(environmentId, {
51
- dynamicContextProps: serializedDynamicContextProps,
52
- frameworkSettings: getFrameworkSettings(),
53
- });
54
- api.fetchProjectSettings(environmentId)
55
- .then((response) => {
56
- if (!response)
57
- throw new utils.DynamicError('Settings are not defined');
58
- const expiry = new Date().getTime() + 60000 * 5;
59
- setLsSettings({
60
- environmentId,
61
- expiry: expiry,
62
- settings: response,
63
- });
64
- })
65
- .catch(() => {
66
- setRetries((currentRetries) => currentRetries + 1);
67
- })
68
- .finally(() => {
69
- setLoading(false);
88
+ const { isLoading } = usePromise.usePromise(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
89
+ const settings = yield api.fetchProjectSettings(environmentId);
90
+ if (!settings)
91
+ throw new utils.DynamicError('Settings are not defined');
92
+ return settings;
93
+ }), {
94
+ deps: [environmentId],
95
+ enabled: !lsSettingsExists,
96
+ onResolve: (projectSettings) => {
97
+ const expiry = new Date().getTime() + 60000 * 5;
98
+ setLsSettings({
99
+ environmentId,
100
+ expiry: expiry,
101
+ settings: projectSettings,
70
102
  });
71
- }
72
- }, [environmentId, isLoading, lsSettingsExists, maxRetries, retries]);
73
- useEffectOnce.useEffectOnce(() => {
103
+ },
104
+ retries,
105
+ });
106
+ /**
107
+ * This useEffect is require to clean up the project settings
108
+ * from local storage when no token or connect only wallet is
109
+ * present
110
+ */
111
+ React.useEffect(() => {
74
112
  const [connectedWalletData] = localStorage$1.LocalStorage.getFromLS(localStorage.CONNECTED_WALLETS_INFO) || [];
75
113
  if (!authToken && !connectedWalletData) {
76
114
  removeLsSettings();
77
115
  }
78
- });
116
+ }, [authToken, removeLsSettings]);
79
117
  return {
80
118
  isLoading,
81
119
  projectSettings: lsSettings === null || lsSettings === void 0 ? void 0 : lsSettings.settings,
82
- removeLsSettings,
83
120
  };
84
121
  };
85
- const serializeEventsCallbacks = (eventsCallbacks) => {
86
- try {
87
- if (!eventsCallbacks)
88
- return undefined;
89
- const eventsCallbackValues = Object.values(eventsCallbacks);
90
- const eventsCallbacksKeys = Object.keys(eventsCallbacks);
91
- return eventsCallbacksKeys.filter((key, index) => {
92
- if (eventsCallbackValues[index] === undefined) {
93
- return false;
94
- }
95
- return key;
96
- });
97
- }
98
- catch (error) {
99
- logger.logger.error('error serializing eventsCallbacks', error);
100
- return undefined;
101
- }
102
- };
103
- const serializeWalletConnectors = (walletConnectors) => {
104
- try {
105
- if (!walletConnectors)
106
- return undefined;
107
- return walletConnectors.map((connector) => connector.name);
108
- }
109
- catch (error) {
110
- logger.logger.error('error serializing walletConnectors', error);
111
- return undefined;
112
- }
113
- };
114
- const getFrameworkSettings = () => {
115
- var _a;
116
- return ({
117
- nextJs: {
118
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
119
- // @ts-ignore
120
- version: (_a = window.next) === null || _a === void 0 ? void 0 : _a.version,
121
- },
122
- react: {
123
- version: React.version,
124
- },
125
- });
126
- };
127
122
 
128
- exports.serializeEventsCallbacks = serializeEventsCallbacks;
129
- exports.serializeWalletConnectors = serializeWalletConnectors;
130
123
  exports.useFetchProjectSettings = useFetchProjectSettings;
@@ -1,16 +1,9 @@
1
- import { WalletConnectorsMethod } from '@dynamic-labs/wallet-connector-core';
2
- import { DynamicEventsCallbacks } from '../../../shared';
3
- import { DynamicContextProps } from '../../../context/DynamicContext';
4
1
  export type fetchProjectSettingsProps = {
5
2
  authToken: string | undefined;
6
3
  environmentId: string;
7
- maxRetries?: number;
8
- dynamicContextProps: Pick<DynamicContextProps, 'settings'>;
4
+ retries?: number;
9
5
  };
10
- export declare const useFetchProjectSettings: ({ authToken, environmentId, maxRetries, dynamicContextProps, }: fetchProjectSettingsProps) => {
6
+ export declare const useFetchProjectSettings: ({ authToken, environmentId, retries, }: fetchProjectSettingsProps) => {
11
7
  isLoading: boolean;
12
8
  projectSettings: import("@dynamic-labs/sdk-api").ProjectSettings | undefined;
13
- removeLsSettings: () => void;
14
9
  };
15
- export declare const serializeEventsCallbacks: (eventsCallbacks: DynamicEventsCallbacks | undefined) => string[] | undefined;
16
- export declare const serializeWalletConnectors: (walletConnectors?: WalletConnectorsMethod[]) => string[] | undefined;
@@ -1,8 +1,9 @@
1
- import { useState, useEffect, version } from 'react';
1
+ import { __awaiter } from '../../../../../_virtual/_tslib.js';
2
+ import { useEffect } from 'react';
2
3
  import { DynamicError } from '@dynamic-labs/utils';
3
- import { sendDynamicProps, fetchProjectSettings } from '../../../data/api.js';
4
+ import { fetchProjectSettings } from '../../../data/api.js';
4
5
  import '@dynamic-labs/sdk-api';
5
- import { logger } from '../../../shared/logger.js';
6
+ import '../../../shared/logger.js';
6
7
  import '@dynamic-labs/iconic';
7
8
  import '@dynamic-labs/wallet-connector-core';
8
9
  import 'react/jsx-runtime';
@@ -12,113 +13,107 @@ import { PROJECT_SETTINGS_STORAGE_KEY, CONNECTED_WALLETS_INFO } from '../../cons
12
13
  import '../../constants/colors.js';
13
14
  import '../../constants/values.js';
14
15
  import { LocalStorage } from '../../../shared/utils/classes/storage/localStorage.js';
15
- import { useEffectOnce } from '../../../shared/utils/hooks/useEffectOnce/useEffectOnce.js';
16
16
  import { useLocalStorage } from '../../../shared/utils/hooks/useLocalStorage/useLocalStorage.js';
17
17
  import '../../../shared/consts/index.js';
18
18
  import { validateLocalStorageExpiry } from '../../../context/DynamicContext/validators/validators.js';
19
+ import '../../../events/dynamicEvents.js';
20
+ import '../../../context/DynamicContext/DynamicContext.js';
21
+ import '../../../context/CaptchaContext/CaptchaContext.js';
22
+ import '../../../context/ErrorContext/ErrorContext.js';
23
+ import '@dynamic-labs/multi-wallet';
24
+ import 'react-international-phone';
25
+ import 'viem';
26
+ import 'viem/chains';
27
+ import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
28
+ import '../../../context/AccountExistsContext/AccountExistsContext.js';
29
+ import '../../../context/VerificationContext/VerificationContext.js';
30
+ import 'react-dom';
31
+ import '../../../context/WalletContext/WalletContext.js';
32
+ import { usePromise } from '../usePromise/usePromise.js';
33
+ import '../../../context/ThemeContext/ThemeContext.js';
34
+ import '@dynamic-labs/types';
35
+ import 'yup';
36
+ import 'react-i18next';
37
+ import '../../../context/MockContext/MockContext.js';
38
+ import '../useUserUpdateRequest/useUpdateUser/useUpdateUser.js';
39
+ import '../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
40
+ import '@dynamic-labs/rpc-providers';
41
+ import '../../../context/UserWalletsContext/UserWalletsContext.js';
42
+ import '../../../components/Alert/Alert.js';
43
+ import '../../../components/ShadowDOM/ShadowDOM.js';
44
+ import '../../../components/IconButton/IconButton.js';
45
+ import '../../../components/InlineWidget/InlineWidget.js';
46
+ import '../../../components/Input/Input.js';
47
+ import '../../../components/IsBrowser/IsBrowser.js';
48
+ import '../../../components/MenuList/Dropdown/Dropdown.js';
49
+ import '../../../components/Transition/ZoomTransition/ZoomTransition.js';
50
+ import '../../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
51
+ import '../../../components/Transition/OpacityTransition/OpacityTransition.js';
52
+ import '../../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.js';
53
+ import '../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
54
+ import '../../../components/Popper/Popper/Popper.js';
55
+ import '../../../components/Popper/PopperContext/PopperContext.js';
56
+ import 'react-focus-lock';
57
+ import 'formik';
58
+ import 'qrcode';
59
+ import '../../../views/WalletList/WalletList.js';
60
+ import '../../../context/SocialRedirectContext/SocialRedirectContext.js';
61
+ import '../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
62
+ import 'i18next';
63
+ import '@hcaptcha/react-hcaptcha';
64
+ import '../../../context/LoadingContext/LoadingContext.js';
65
+ import '../../../config/ApiEndpoint.js';
66
+ import '../../../context/FooterAnimationContext/index.js';
67
+ import '../../../views/LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.js';
68
+ import '../../../context/WalletGroupContext/WalletGroupContext.js';
69
+ import '../../../context/PasskeyContext/PasskeyContext.js';
70
+ import '../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
71
+ import '../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
72
+ import '../../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.js';
73
+ import '../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.js';
74
+ import '../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
19
75
 
20
- const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, dynamicContextProps, }) => {
76
+ const useFetchProjectSettings = ({ authToken, environmentId, retries = 2, }) => {
21
77
  const [lsSettings, setLsSettings, removeLsSettings] = useLocalStorage(PROJECT_SETTINGS_STORAGE_KEY, undefined, validateLocalStorageExpiry);
22
- const [isLoading, setLoading] = useState(false);
23
- const [retries, setRetries] = useState(0);
24
78
  const lsSettingsExists = (lsSettings === null || lsSettings === void 0 ? void 0 : lsSettings.settings) !== undefined ? true : false;
25
79
  if (lsSettings &&
26
80
  lsSettings.environmentId &&
27
81
  lsSettings.environmentId !== environmentId) {
28
82
  removeLsSettings();
29
83
  }
30
- useEffect(() => {
31
- if (!lsSettingsExists &&
32
- !isLoading &&
33
- environmentId &&
34
- retries < maxRetries) {
35
- setLoading(true);
36
- // we ReactNode components are not being serialized properly
37
- // remove them for now and deal with them later
38
- // context: https://linear.app/dynamic-labs/issue/GVTY-328/[starknet]-sdk-api-is-not-serializing-react-components
39
- // future work: https://linear.app/dynamic-labs/issue/GVTY-330/bug-figure-out-why-react-components-are-not
40
- const updatedDynamicProps = {
41
- settings: Object.assign(Object.assign({}, dynamicContextProps.settings), { customPrivacyPolicy: Boolean(dynamicContextProps.settings.customPrivacyPolicy), customTermsOfServices: Boolean(dynamicContextProps.settings.customTermsOfServices), policiesConsentInnerComponent: Boolean(dynamicContextProps.settings.policiesConsentInnerComponent) }),
42
- };
43
- const serializedEventsCallbacks = serializeEventsCallbacks(updatedDynamicProps.settings.eventsCallbacks);
44
- const serializedWalletConnectors = serializeWalletConnectors(updatedDynamicProps.settings.walletConnectors);
45
- const serializedDynamicContextProps = Object.assign(Object.assign({}, updatedDynamicProps), { settings: Object.assign(Object.assign({}, updatedDynamicProps.settings), { eventsCallbacks: serializedEventsCallbacks, walletConnectors: serializedWalletConnectors }) });
46
- sendDynamicProps(environmentId, {
47
- dynamicContextProps: serializedDynamicContextProps,
48
- frameworkSettings: getFrameworkSettings(),
49
- });
50
- fetchProjectSettings(environmentId)
51
- .then((response) => {
52
- if (!response)
53
- throw new DynamicError('Settings are not defined');
54
- const expiry = new Date().getTime() + 60000 * 5;
55
- setLsSettings({
56
- environmentId,
57
- expiry: expiry,
58
- settings: response,
59
- });
60
- })
61
- .catch(() => {
62
- setRetries((currentRetries) => currentRetries + 1);
63
- })
64
- .finally(() => {
65
- setLoading(false);
84
+ const { isLoading } = usePromise(() => __awaiter(void 0, void 0, void 0, function* () {
85
+ const settings = yield fetchProjectSettings(environmentId);
86
+ if (!settings)
87
+ throw new DynamicError('Settings are not defined');
88
+ return settings;
89
+ }), {
90
+ deps: [environmentId],
91
+ enabled: !lsSettingsExists,
92
+ onResolve: (projectSettings) => {
93
+ const expiry = new Date().getTime() + 60000 * 5;
94
+ setLsSettings({
95
+ environmentId,
96
+ expiry: expiry,
97
+ settings: projectSettings,
66
98
  });
67
- }
68
- }, [environmentId, isLoading, lsSettingsExists, maxRetries, retries]);
69
- useEffectOnce(() => {
99
+ },
100
+ retries,
101
+ });
102
+ /**
103
+ * This useEffect is require to clean up the project settings
104
+ * from local storage when no token or connect only wallet is
105
+ * present
106
+ */
107
+ useEffect(() => {
70
108
  const [connectedWalletData] = LocalStorage.getFromLS(CONNECTED_WALLETS_INFO) || [];
71
109
  if (!authToken && !connectedWalletData) {
72
110
  removeLsSettings();
73
111
  }
74
- });
112
+ }, [authToken, removeLsSettings]);
75
113
  return {
76
114
  isLoading,
77
115
  projectSettings: lsSettings === null || lsSettings === void 0 ? void 0 : lsSettings.settings,
78
- removeLsSettings,
79
116
  };
80
117
  };
81
- const serializeEventsCallbacks = (eventsCallbacks) => {
82
- try {
83
- if (!eventsCallbacks)
84
- return undefined;
85
- const eventsCallbackValues = Object.values(eventsCallbacks);
86
- const eventsCallbacksKeys = Object.keys(eventsCallbacks);
87
- return eventsCallbacksKeys.filter((key, index) => {
88
- if (eventsCallbackValues[index] === undefined) {
89
- return false;
90
- }
91
- return key;
92
- });
93
- }
94
- catch (error) {
95
- logger.error('error serializing eventsCallbacks', error);
96
- return undefined;
97
- }
98
- };
99
- const serializeWalletConnectors = (walletConnectors) => {
100
- try {
101
- if (!walletConnectors)
102
- return undefined;
103
- return walletConnectors.map((connector) => connector.name);
104
- }
105
- catch (error) {
106
- logger.error('error serializing walletConnectors', error);
107
- return undefined;
108
- }
109
- };
110
- const getFrameworkSettings = () => {
111
- var _a;
112
- return ({
113
- nextJs: {
114
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
115
- // @ts-ignore
116
- version: (_a = window.next) === null || _a === void 0 ? void 0 : _a.version,
117
- },
118
- react: {
119
- version,
120
- },
121
- });
122
- };
123
118
 
124
- export { serializeEventsCallbacks, serializeWalletConnectors, useFetchProjectSettings };
119
+ export { useFetchProjectSettings };
@@ -54,7 +54,7 @@ const usePromise = (fetcher, options) => {
54
54
  const { deps = [], initialData = undefined, enabled = true, retries = 0, onReject = () => { }, onResolve = () => { }, } = options || {};
55
55
  const [state, dispatch] = React.useReducer(createReducer.createReducer(), {
56
56
  data: initialData,
57
- isLoading: true,
57
+ isLoading: enabled,
58
58
  });
59
59
  const callback = React.useCallback(() => {
60
60
  const callTimestamp = new Date().getTime();
@@ -50,7 +50,7 @@ const usePromise = (fetcher, options) => {
50
50
  const { deps = [], initialData = undefined, enabled = true, retries = 0, onReject = () => { }, onResolve = () => { }, } = options || {};
51
51
  const [state, dispatch] = useReducer(createReducer(), {
52
52
  data: initialData,
53
- isLoading: true,
53
+ isLoading: enabled,
54
54
  });
55
55
  const callback = useCallback(() => {
56
56
  const callTimestamp = new Date().getTime();
@@ -0,0 +1 @@
1
+ export { useSendDynamicProps } from './useSendDynamicProps';
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ require('@dynamic-labs/sdk-api');
7
+ var logger = require('../../../shared/logger.cjs');
8
+ require('@dynamic-labs/iconic');
9
+ require('@dynamic-labs/wallet-connector-core');
10
+ require('react/jsx-runtime');
11
+ require('../../../context/ViewContext/ViewContext.cjs');
12
+ require('@dynamic-labs/wallet-book');
13
+ require('../../constants/colors.cjs');
14
+ require('../../constants/values.cjs');
15
+ require('../../../shared/utils/classes/storage/localStorage.cjs');
16
+ var useEffectOnce = require('../../../shared/utils/hooks/useEffectOnce/useEffectOnce.cjs');
17
+ require('@dynamic-labs/utils');
18
+ require('../../../shared/consts/index.cjs');
19
+ var api = require('../../../data/api.cjs');
20
+
21
+ const useSendDynamicProps = ({ settings, environmentId, }) => {
22
+ useEffectOnce.useEffectOnce(() => {
23
+ // we ReactNode components are not being serialized properly
24
+ // remove them for now and deal with them later
25
+ // context: https://linear.app/dynamic-labs/issue/GVTY-328/[starknet]-sdk-api-is-not-serializing-react-components
26
+ // future work: https://linear.app/dynamic-labs/issue/GVTY-330/bug-figure-out-why-react-components-are-not
27
+ const updatedDynamicProps = {
28
+ settings: Object.assign(Object.assign({}, settings), { customPrivacyPolicy: Boolean(settings.customPrivacyPolicy), customTermsOfServices: Boolean(settings.customTermsOfServices), policiesConsentInnerComponent: Boolean(settings.policiesConsentInnerComponent) }),
29
+ };
30
+ const serializedEventsCallbacks = serializeEventsCallbacks(settings.eventsCallbacks);
31
+ const serializedWalletConnectors = serializeWalletConnectors(settings.walletConnectors);
32
+ const serializedDynamicContextProps = Object.assign(Object.assign({}, updatedDynamicProps), { settings: Object.assign(Object.assign({}, updatedDynamicProps.settings), { eventsCallbacks: serializedEventsCallbacks, walletConnectors: serializedWalletConnectors }) });
33
+ api.sendDynamicProps(environmentId, {
34
+ dynamicContextProps: serializedDynamicContextProps,
35
+ frameworkSettings: getFrameworkSettings(),
36
+ });
37
+ });
38
+ };
39
+ const serializeEventsCallbacks = (eventsCallbacks) => {
40
+ try {
41
+ if (!eventsCallbacks)
42
+ return undefined;
43
+ const eventsCallbackValues = Object.values(eventsCallbacks);
44
+ const eventsCallbacksKeys = Object.keys(eventsCallbacks);
45
+ return eventsCallbacksKeys.filter((key, index) => {
46
+ if (eventsCallbackValues[index] === undefined) {
47
+ return false;
48
+ }
49
+ return key;
50
+ });
51
+ }
52
+ catch (error) {
53
+ logger.logger.error('error serializing eventsCallbacks', error);
54
+ return undefined;
55
+ }
56
+ };
57
+ const serializeWalletConnectors = (walletConnectors) => {
58
+ try {
59
+ if (!walletConnectors)
60
+ return undefined;
61
+ return walletConnectors.map((connector) => connector.name);
62
+ }
63
+ catch (error) {
64
+ logger.logger.error('error serializing walletConnectors', error);
65
+ return undefined;
66
+ }
67
+ };
68
+ const getFrameworkSettings = () => {
69
+ var _a;
70
+ return ({
71
+ nextJs: {
72
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
73
+ // @ts-ignore
74
+ version: (_a = window.next) === null || _a === void 0 ? void 0 : _a.version,
75
+ },
76
+ react: {
77
+ version: React.version,
78
+ },
79
+ });
80
+ };
81
+
82
+ exports.serializeEventsCallbacks = serializeEventsCallbacks;
83
+ exports.serializeWalletConnectors = serializeWalletConnectors;
84
+ exports.useSendDynamicProps = useSendDynamicProps;
@@ -0,0 +1,11 @@
1
+ import { WalletConnectorsMethod } from '@dynamic-labs/wallet-connector-core';
2
+ import { DynamicContextProps } from '../../../..';
3
+ import { DynamicEventsCallbacks } from '../../../shared';
4
+ type UseSendDynamicHookProps = {
5
+ settings: DynamicContextProps['settings'];
6
+ environmentId: string;
7
+ };
8
+ export declare const useSendDynamicProps: ({ settings, environmentId, }: UseSendDynamicHookProps) => void;
9
+ export declare const serializeEventsCallbacks: (eventsCallbacks: DynamicEventsCallbacks | undefined) => string[] | undefined;
10
+ export declare const serializeWalletConnectors: (walletConnectors?: WalletConnectorsMethod[]) => string[] | undefined;
11
+ export {};
@@ -0,0 +1,78 @@
1
+ import { version } from 'react';
2
+ import '@dynamic-labs/sdk-api';
3
+ import { logger } from '../../../shared/logger.js';
4
+ import '@dynamic-labs/iconic';
5
+ import '@dynamic-labs/wallet-connector-core';
6
+ import 'react/jsx-runtime';
7
+ import '../../../context/ViewContext/ViewContext.js';
8
+ import '@dynamic-labs/wallet-book';
9
+ import '../../constants/colors.js';
10
+ import '../../constants/values.js';
11
+ import '../../../shared/utils/classes/storage/localStorage.js';
12
+ import { useEffectOnce } from '../../../shared/utils/hooks/useEffectOnce/useEffectOnce.js';
13
+ import '@dynamic-labs/utils';
14
+ import '../../../shared/consts/index.js';
15
+ import { sendDynamicProps } from '../../../data/api.js';
16
+
17
+ const useSendDynamicProps = ({ settings, environmentId, }) => {
18
+ useEffectOnce(() => {
19
+ // we ReactNode components are not being serialized properly
20
+ // remove them for now and deal with them later
21
+ // context: https://linear.app/dynamic-labs/issue/GVTY-328/[starknet]-sdk-api-is-not-serializing-react-components
22
+ // future work: https://linear.app/dynamic-labs/issue/GVTY-330/bug-figure-out-why-react-components-are-not
23
+ const updatedDynamicProps = {
24
+ settings: Object.assign(Object.assign({}, settings), { customPrivacyPolicy: Boolean(settings.customPrivacyPolicy), customTermsOfServices: Boolean(settings.customTermsOfServices), policiesConsentInnerComponent: Boolean(settings.policiesConsentInnerComponent) }),
25
+ };
26
+ const serializedEventsCallbacks = serializeEventsCallbacks(settings.eventsCallbacks);
27
+ const serializedWalletConnectors = serializeWalletConnectors(settings.walletConnectors);
28
+ const serializedDynamicContextProps = Object.assign(Object.assign({}, updatedDynamicProps), { settings: Object.assign(Object.assign({}, updatedDynamicProps.settings), { eventsCallbacks: serializedEventsCallbacks, walletConnectors: serializedWalletConnectors }) });
29
+ sendDynamicProps(environmentId, {
30
+ dynamicContextProps: serializedDynamicContextProps,
31
+ frameworkSettings: getFrameworkSettings(),
32
+ });
33
+ });
34
+ };
35
+ const serializeEventsCallbacks = (eventsCallbacks) => {
36
+ try {
37
+ if (!eventsCallbacks)
38
+ return undefined;
39
+ const eventsCallbackValues = Object.values(eventsCallbacks);
40
+ const eventsCallbacksKeys = Object.keys(eventsCallbacks);
41
+ return eventsCallbacksKeys.filter((key, index) => {
42
+ if (eventsCallbackValues[index] === undefined) {
43
+ return false;
44
+ }
45
+ return key;
46
+ });
47
+ }
48
+ catch (error) {
49
+ logger.error('error serializing eventsCallbacks', error);
50
+ return undefined;
51
+ }
52
+ };
53
+ const serializeWalletConnectors = (walletConnectors) => {
54
+ try {
55
+ if (!walletConnectors)
56
+ return undefined;
57
+ return walletConnectors.map((connector) => connector.name);
58
+ }
59
+ catch (error) {
60
+ logger.error('error serializing walletConnectors', error);
61
+ return undefined;
62
+ }
63
+ };
64
+ const getFrameworkSettings = () => {
65
+ var _a;
66
+ return ({
67
+ nextJs: {
68
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
69
+ // @ts-ignore
70
+ version: (_a = window.next) === null || _a === void 0 ? void 0 : _a.version,
71
+ },
72
+ react: {
73
+ version,
74
+ },
75
+ });
76
+ };
77
+
78
+ export { serializeEventsCallbacks, serializeWalletConnectors, useSendDynamicProps };