@dynamic-labs/sdk-react-core 0.17.0-RC.2 → 0.17.0-RC.4

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 (42) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/package.cjs +3 -3
  3. package/package.js +3 -3
  4. package/package.json +6 -6
  5. package/src/index.cjs +2 -2
  6. package/src/index.js +1 -1
  7. package/src/lib/context/DynamicContext/DynamicContext.cjs +17 -5
  8. package/src/lib/context/DynamicContext/DynamicContext.d.ts +1 -0
  9. package/src/lib/context/DynamicContext/DynamicContext.js +17 -5
  10. package/src/lib/context/DynamicContext/useDynamicContext.cjs +2 -1
  11. package/src/lib/context/DynamicContext/useDynamicContext.d.ts +1 -1
  12. package/src/lib/context/DynamicContext/useDynamicContext.js +2 -1
  13. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +6 -0
  14. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.d.ts +1 -0
  15. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +6 -0
  16. package/src/lib/data/api.cjs +6 -1
  17. package/src/lib/data/api.js +7 -2
  18. package/src/lib/shared/utils/hooks/useGlobalLoading/index.d.ts +1 -0
  19. package/src/lib/shared/utils/hooks/useGlobalLoading/useGlobalLoading.cjs +35 -0
  20. package/src/lib/shared/utils/hooks/useGlobalLoading/useGlobalLoading.d.ts +17 -0
  21. package/src/lib/shared/utils/hooks/useGlobalLoading/useGlobalLoading.js +31 -0
  22. package/src/lib/styles/index.shadow.cjs +1 -1
  23. package/src/lib/styles/index.shadow.js +1 -1
  24. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +1 -2
  25. package/src/lib/views/EmailVerification/EmailVerification.cjs +4 -1
  26. package/src/lib/views/EmailVerification/EmailVerification.js +4 -1
  27. package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.cjs +3 -6
  28. package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.js +3 -6
  29. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.cjs +5 -6
  30. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.js +5 -6
  31. package/src/lib/views/{WalletNoAccess/WalletNoAccess.cjs → NoAccess/NoAccess.cjs} +17 -5
  32. package/src/lib/views/NoAccess/NoAccess.d.ts +2 -0
  33. package/src/lib/views/{WalletNoAccess/WalletNoAccess.js → NoAccess/NoAccess.js} +19 -7
  34. package/src/lib/views/NoAccess/index.d.ts +1 -0
  35. package/src/lib/views/WalletList/data.cjs +0 -6
  36. package/src/lib/views/WalletList/data.d.ts +0 -1
  37. package/src/lib/views/WalletList/data.js +1 -6
  38. package/src/lib/views/index.d.ts +1 -1
  39. package/src/lib/views/viewToComponentMap.cjs +3 -3
  40. package/src/lib/views/viewToComponentMap.js +3 -3
  41. package/src/lib/views/WalletNoAccess/WalletNoAccess.d.ts +0 -2
  42. package/src/lib/views/WalletNoAccess/index.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,25 @@
1
1
 
2
+ ## [0.17.0-RC.4](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0-RC.3...v0.17.0-RC.4) (2023-04-22)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * wait for safe transaction validation before verify call to api ([#1925](https://github.com/dynamic-labs/DynamicAuth/issues/1925)) ([c2cd271](https://github.com/dynamic-labs/DynamicAuth/commit/c2cd27195f0058384bf6569b7da81815d4a31bb6))
8
+
9
+ ## [0.17.0-RC.3](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0-RC.2...v0.17.0-RC.3) (2023-04-21)
10
+
11
+
12
+ ### Features
13
+
14
+ * consume social sign in settings from dashboard ([#1896](https://github.com/dynamic-labs/DynamicAuth/issues/1896)) ([484fc53](https://github.com/dynamic-labs/DynamicAuth/commit/484fc539ee4f4bbef02dea52a3c4dace1a647b70))
15
+ * **DYN-1820:** support allow list in email authorization ([#1916](https://github.com/dynamic-labs/DynamicAuth/issues/1916)) ([9356346](https://github.com/dynamic-labs/DynamicAuth/commit/93563460d3231f644f21c9acda1b0c33e4dcd893))
16
+ * **DYN-2092:** add and expose global loading state ([#1872](https://github.com/dynamic-labs/DynamicAuth/issues/1872)) ([2aa1781](https://github.com/dynamic-labs/DynamicAuth/commit/2aa1781d02a801b712ff0a3fd6f9d608cc420b2a))
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * lock QR Code to 1.5.1 ([#1924](https://github.com/dynamic-labs/DynamicAuth/issues/1924)) ([5c49ba7](https://github.com/dynamic-labs/DynamicAuth/commit/5c49ba7ca20d1effdb8f3d367158adeacda42809))
22
+
2
23
  ## [0.17.0-RC.2](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0-RC.1...v0.17.0-RC.2) (2023-04-20)
3
24
 
4
25
 
package/package.cjs CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "0.17.0-RC.2";
5
+ var version = "0.17.0-RC.4";
6
6
  var dependencies = {
7
7
  "react-focus-lock": "^2.9.2",
8
- "@dynamic-labs/sdk-api": "0.0.174",
8
+ "@dynamic-labs/sdk-api": "0.0.178",
9
9
  "@dynamic-labs/iconic": "^0.1.17",
10
10
  "@dynamic-labs/wallet-book": "^0.0.11",
11
11
  "@hcaptcha/react-hcaptcha": "~1.4.4",
12
12
  "country-list": "^2.3.0",
13
13
  yup: "^0.32.11",
14
14
  formik: "^2.2.9",
15
- qrcode: "^1.5.1",
15
+ qrcode: "1.5.1",
16
16
  ethers: "^5.7.2"
17
17
  };
18
18
 
package/package.js CHANGED
@@ -1,14 +1,14 @@
1
- var version = "0.17.0-RC.2";
1
+ var version = "0.17.0-RC.4";
2
2
  var dependencies = {
3
3
  "react-focus-lock": "^2.9.2",
4
- "@dynamic-labs/sdk-api": "0.0.174",
4
+ "@dynamic-labs/sdk-api": "0.0.178",
5
5
  "@dynamic-labs/iconic": "^0.1.17",
6
6
  "@dynamic-labs/wallet-book": "^0.0.11",
7
7
  "@hcaptcha/react-hcaptcha": "~1.4.4",
8
8
  "country-list": "^2.3.0",
9
9
  yup: "^0.32.11",
10
10
  formik: "^2.2.9",
11
- qrcode: "^1.5.1",
11
+ qrcode: "1.5.1",
12
12
  ethers: "^5.7.2"
13
13
  };
14
14
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "0.17.0-RC.2",
3
+ "version": "0.17.0-RC.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -8,18 +8,18 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "react-focus-lock": "^2.9.2",
11
- "@dynamic-labs/sdk-api": "0.0.174",
11
+ "@dynamic-labs/sdk-api": "0.0.178",
12
12
  "@dynamic-labs/iconic": "^0.1.17",
13
13
  "@dynamic-labs/wallet-book": "^0.0.11",
14
14
  "@hcaptcha/react-hcaptcha": "~1.4.4",
15
15
  "country-list": "^2.3.0",
16
16
  "yup": "^0.32.11",
17
17
  "formik": "^2.2.9",
18
- "qrcode": "^1.5.1",
18
+ "qrcode": "1.5.1",
19
19
  "ethers": "^5.7.2",
20
- "@dynamic-labs/logger": "0.17.0-RC.2",
21
- "@dynamic-labs/multi-wallet": "0.17.0-RC.2",
22
- "@dynamic-labs/wallet-connector-core": "0.17.0-RC.2"
20
+ "@dynamic-labs/logger": "0.17.0-RC.4",
21
+ "@dynamic-labs/multi-wallet": "0.17.0-RC.4",
22
+ "@dynamic-labs/wallet-connector-core": "0.17.0-RC.4"
23
23
  },
24
24
  "devDependencies": {
25
25
  "semver": "^7.3.8"
package/src/index.cjs CHANGED
@@ -91,7 +91,7 @@ var PendingSignatureView = require('./lib/views/PendingSignatureView/PendingSign
91
91
  var CollectUserDataView = require('./lib/views/CollectUserDataView/CollectUserDataView.cjs');
92
92
  var NoQrNotInstalledView = require('./lib/views/NoQrNotInstalledView/NoQrNotInstalledView.cjs');
93
93
  var QrCodeView = require('./lib/views/QrCodeView/QrCodeView.cjs');
94
- var WalletNoAccess = require('./lib/views/WalletNoAccess/WalletNoAccess.cjs');
94
+ var NoAccess = require('./lib/views/NoAccess/NoAccess.cjs');
95
95
  var EmailConfirmationWaitingView = require('./lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.cjs');
96
96
  var viewToComponentMap = require('./lib/views/viewToComponentMap.cjs');
97
97
  var NetworkNotSupportedSwitchManual = require('./lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs');
@@ -190,7 +190,7 @@ exports.PendingSignatureView = PendingSignatureView.PendingSignatureView;
190
190
  exports.CollectUserDataView = CollectUserDataView.CollectUserDataView;
191
191
  exports.NoQrNotInstalledView = NoQrNotInstalledView.NoQrNotInstalledView;
192
192
  exports.QrCodeView = QrCodeView.QrCodeView;
193
- exports.WalletNoAccess = WalletNoAccess.WalletNoAccess;
193
+ exports.NoAccess = NoAccess.NoAccess;
194
194
  exports.EmailConfirmationWaitingView = EmailConfirmationWaitingView.EmailConfirmationWaitingView;
195
195
  exports.viewToComponentMap = viewToComponentMap.viewToComponentMap;
196
196
  exports.NetworkNotSupportedSwitchManual = NetworkNotSupportedSwitchManual.NetworkNotSupportedSwitchManual;
package/src/index.js CHANGED
@@ -87,7 +87,7 @@ export { PendingSignatureView } from './lib/views/PendingSignatureView/PendingSi
87
87
  export { CollectUserDataView } from './lib/views/CollectUserDataView/CollectUserDataView.js';
88
88
  export { NoQrNotInstalledView } from './lib/views/NoQrNotInstalledView/NoQrNotInstalledView.js';
89
89
  export { QrCodeView } from './lib/views/QrCodeView/QrCodeView.js';
90
- export { WalletNoAccess } from './lib/views/WalletNoAccess/WalletNoAccess.js';
90
+ export { NoAccess } from './lib/views/NoAccess/NoAccess.js';
91
91
  export { EmailConfirmationWaitingView } from './lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.js';
92
92
  export { viewToComponentMap } from './lib/views/viewToComponentMap.js';
93
93
  export { NetworkNotSupportedSwitchManual } from './lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js';
@@ -53,6 +53,7 @@ require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs
53
53
  require('../../components/Transition/OpacityTransition/OpacityTransition.cjs');
54
54
  require('../../components/ShadowDOM/ShadowDOM.cjs');
55
55
  require('../../components/IconButton/IconButton.cjs');
56
+ var useGlobalLoading = require('../../shared/utils/hooks/useGlobalLoading/useGlobalLoading.cjs');
56
57
  var helpers = require('./helpers.cjs');
57
58
  var validators = require('./validators.cjs');
58
59
  var useCustomerCallbacks = require('./useCustomerCallbacks/useCustomerCallbacks.cjs');
@@ -105,7 +106,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
105
106
  walletUiUtils,
106
107
  });
107
108
  const [authMode, setAuthMode] = useLocalStorage.useLocalStorage(localStorage$1.AUTH_MODE, initialAuthenticationMode);
108
- const { connectWallet, removeConnectedInfo, connectedWallet, setConnectedWallet, connectWalletByAddressAndChain, } = useConnectWallet.useConnectWallet(wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly);
109
+ const { connectWallet, removeConnectedInfo, connectedInfo, connectedWallet, setConnectedWallet, connectWalletByAddressAndChain, } = useConnectWallet.useConnectWallet(wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly);
109
110
  const [selectedWalletConnector, setSelectedWalletConnector] = React.useState(null);
110
111
  const removeAuthTokenAndUser = React.useCallback(() => {
111
112
  localStorage.removeItem(localStorage$1.AUTH_TOKEN);
@@ -119,6 +120,14 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
119
120
  setQrcodeUri,
120
121
  wallets,
121
122
  });
123
+ const { sdkHasLoaded, setSdkHasLoaded } = useGlobalLoading.useGlobalLoading({
124
+ authMode,
125
+ connectedInfo,
126
+ connectedWallet,
127
+ primaryWallet,
128
+ projectSettings,
129
+ user,
130
+ });
122
131
  const walletForUserFacingContext = authMode === 'connect-and-sign' || user ? primaryWallet : connectedWallet;
123
132
  useSyncPrimaryWallet.useSyncPrimaryWallet({
124
133
  multiWalletWidgetState,
@@ -290,6 +299,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
290
299
  projectSettings,
291
300
  qrcodeUri,
292
301
  rpcProviders,
302
+ sdkHasLoaded,
293
303
  secondaryWallets,
294
304
  selectedWalletConnector,
295
305
  setAuthMode,
@@ -305,6 +315,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
305
315
  setPrimaryWallet,
306
316
  setPrimaryWalletId,
307
317
  setQrcodeUri,
318
+ setSdkHasLoaded,
308
319
  setSelectedWalletConnector,
309
320
  setShowAuthFlow,
310
321
  setShowDynamicUserProfile,
@@ -333,9 +344,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
333
344
  accessDeniedMessagePrimary,
334
345
  accessDeniedMessageSecondary,
335
346
  accountSwitchState,
336
- appLogo,
337
347
  appLogoUrl,
338
- displayName,
339
348
  appName,
340
349
  authMode,
341
350
  authorizationViewDisplayOrder,
@@ -344,20 +353,20 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
344
353
  computeConnectedStateForWallets,
345
354
  connectWallet,
346
355
  connectedWallet,
347
- defaultNumberOfWalletsToShow,
348
356
  primaryWallet,
349
357
  secondaryWallets,
350
358
  consumeNonce,
351
359
  cssOverrides,
352
360
  debugError,
353
361
  onboardingOnlyJwt,
362
+ defaultNumberOfWalletsToShow,
354
363
  desktopUri,
355
364
  displayTermsOfService,
356
365
  environmentId,
357
366
  eventsCallbacks,
358
367
  handleLogOut,
359
368
  handleUnlinkWallet,
360
- user,
369
+ isAuthenticated,
361
370
  isProjectSettingsLoading,
362
371
  isSingleWalletAccount,
363
372
  isVerifying,
@@ -379,6 +388,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
379
388
  projectSettings,
380
389
  qrcodeUri,
381
390
  rpcProviders,
391
+ sdkHasLoaded,
382
392
  selectedWalletConnector,
383
393
  setAuthMode,
384
394
  setAuthorizationViewDisplayOrder,
@@ -388,6 +398,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
388
398
  setNetwork,
389
399
  setPrimaryWallet,
390
400
  setPrimaryWalletId,
401
+ setSdkHasLoaded,
391
402
  setShowQrcodeModal,
392
403
  setUser,
393
404
  shadowDOMEnabled,
@@ -402,6 +413,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
402
413
  termsOfServiceUrl,
403
414
  theme,
404
415
  toolkitEnabled,
416
+ user,
405
417
  vendorCredentials,
406
418
  walletUiUtils,
407
419
  wallets,
@@ -56,6 +56,7 @@ export interface IDynamicContext {
56
56
  projectSettings: ProjectSettings | undefined;
57
57
  qrcodeUri: string;
58
58
  rpcProviders: DynamicRPCProviders;
59
+ sdkHasLoaded: boolean;
59
60
  secondaryWallets: Wallet[];
60
61
  selectedWalletConnector: WalletConnector | null;
61
62
  setAuthMode: Dispatch<SetStateAction<AuthModeType>>;
@@ -49,6 +49,7 @@ import '../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
49
49
  import '../../components/Transition/OpacityTransition/OpacityTransition.js';
50
50
  import '../../components/ShadowDOM/ShadowDOM.js';
51
51
  import '../../components/IconButton/IconButton.js';
52
+ import { useGlobalLoading } from '../../shared/utils/hooks/useGlobalLoading/useGlobalLoading.js';
52
53
  import { initExpirationTime } from './helpers.js';
53
54
  import { validateAuthUser } from './validators.js';
54
55
  import { useCustomerCallbacks } from './useCustomerCallbacks/useCustomerCallbacks.js';
@@ -101,7 +102,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
101
102
  walletUiUtils,
102
103
  });
103
104
  const [authMode, setAuthMode] = useLocalStorage(AUTH_MODE, initialAuthenticationMode);
104
- const { connectWallet, removeConnectedInfo, connectedWallet, setConnectedWallet, connectWalletByAddressAndChain, } = useConnectWallet(wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly);
105
+ const { connectWallet, removeConnectedInfo, connectedInfo, connectedWallet, setConnectedWallet, connectWalletByAddressAndChain, } = useConnectWallet(wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly);
105
106
  const [selectedWalletConnector, setSelectedWalletConnector] = useState(null);
106
107
  const removeAuthTokenAndUser = useCallback(() => {
107
108
  localStorage.removeItem(AUTH_TOKEN);
@@ -115,6 +116,14 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
115
116
  setQrcodeUri,
116
117
  wallets,
117
118
  });
119
+ const { sdkHasLoaded, setSdkHasLoaded } = useGlobalLoading({
120
+ authMode,
121
+ connectedInfo,
122
+ connectedWallet,
123
+ primaryWallet,
124
+ projectSettings,
125
+ user,
126
+ });
118
127
  const walletForUserFacingContext = authMode === 'connect-and-sign' || user ? primaryWallet : connectedWallet;
119
128
  useSyncPrimaryWallet({
120
129
  multiWalletWidgetState,
@@ -286,6 +295,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
286
295
  projectSettings,
287
296
  qrcodeUri,
288
297
  rpcProviders,
298
+ sdkHasLoaded,
289
299
  secondaryWallets,
290
300
  selectedWalletConnector,
291
301
  setAuthMode,
@@ -301,6 +311,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
301
311
  setPrimaryWallet,
302
312
  setPrimaryWalletId,
303
313
  setQrcodeUri,
314
+ setSdkHasLoaded,
304
315
  setSelectedWalletConnector,
305
316
  setShowAuthFlow,
306
317
  setShowDynamicUserProfile,
@@ -329,9 +340,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
329
340
  accessDeniedMessagePrimary,
330
341
  accessDeniedMessageSecondary,
331
342
  accountSwitchState,
332
- appLogo,
333
343
  appLogoUrl,
334
- displayName,
335
344
  appName,
336
345
  authMode,
337
346
  authorizationViewDisplayOrder,
@@ -340,20 +349,20 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
340
349
  computeConnectedStateForWallets,
341
350
  connectWallet,
342
351
  connectedWallet,
343
- defaultNumberOfWalletsToShow,
344
352
  primaryWallet,
345
353
  secondaryWallets,
346
354
  consumeNonce,
347
355
  cssOverrides,
348
356
  debugError,
349
357
  onboardingOnlyJwt,
358
+ defaultNumberOfWalletsToShow,
350
359
  desktopUri,
351
360
  displayTermsOfService,
352
361
  environmentId,
353
362
  eventsCallbacks,
354
363
  handleLogOut,
355
364
  handleUnlinkWallet,
356
- user,
365
+ isAuthenticated,
357
366
  isProjectSettingsLoading,
358
367
  isSingleWalletAccount,
359
368
  isVerifying,
@@ -375,6 +384,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
375
384
  projectSettings,
376
385
  qrcodeUri,
377
386
  rpcProviders,
387
+ sdkHasLoaded,
378
388
  selectedWalletConnector,
379
389
  setAuthMode,
380
390
  setAuthorizationViewDisplayOrder,
@@ -384,6 +394,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
384
394
  setNetwork,
385
395
  setPrimaryWallet,
386
396
  setPrimaryWalletId,
397
+ setSdkHasLoaded,
387
398
  setShowQrcodeModal,
388
399
  setUser,
389
400
  shadowDOMEnabled,
@@ -398,6 +409,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
398
409
  termsOfServiceUrl,
399
410
  theme,
400
411
  toolkitEnabled,
412
+ user,
401
413
  vendorCredentials,
402
414
  walletUiUtils,
403
415
  wallets,
@@ -11,7 +11,7 @@ const useDynamicContext = () => {
11
11
  if (context === undefined) {
12
12
  throw new Error('useDynamicContext must be used within a DynamicContextProvider');
13
13
  }
14
- const { accountSwitchState, awaitingSignatureState, authMode, authToken, connectedWallets, handleLogOut, handleUnlinkWallet, isAuthenticated, loadingNetwork, multiWalletWidgetState, network, networkConfigurations, primaryWallet, qrcodeUri, rpcProviders, secondaryWallets, setShowAuthFlow, setNetwork, showAuthFlow, showQrcodeModal, setMultiWalletWidgetState, setShowQrcodeModal, setPrimaryWallet, setShowDynamicUserProfile, user, walletConnector, wallets, shadowDOMEnabled, } = context;
14
+ const { accountSwitchState, awaitingSignatureState, authMode, authToken, connectedWallets, handleLogOut, handleUnlinkWallet, isAuthenticated, loadingNetwork, multiWalletWidgetState, network, networkConfigurations, primaryWallet, qrcodeUri, rpcProviders, sdkHasLoaded, secondaryWallets, setShowAuthFlow, setNetwork, showAuthFlow, showQrcodeModal, setMultiWalletWidgetState, setShowQrcodeModal, setPrimaryWallet, setShowDynamicUserProfile, user, walletConnector, wallets, shadowDOMEnabled, } = context;
15
15
  return {
16
16
  accountSwitchState,
17
17
  authMode,
@@ -28,6 +28,7 @@ const useDynamicContext = () => {
28
28
  primaryWallet,
29
29
  qrcodeUri,
30
30
  rpcProviders,
31
+ sdkHasLoaded,
31
32
  secondaryWallets,
32
33
  setMultiWalletWidgetState,
33
34
  setNetwork,
@@ -1,3 +1,3 @@
1
1
  import { IDynamicContext } from './DynamicContext';
2
- export type UseDynamicContext = Pick<IDynamicContext, 'accountSwitchState' | 'authMode' | 'authToken' | 'awaitingSignatureState' | 'connectedWallets' | 'handleLogOut' | 'handleUnlinkWallet' | 'isAuthenticated' | 'loadingNetwork' | 'multiWalletWidgetState' | 'network' | 'networkConfigurations' | 'primaryWallet' | 'qrcodeUri' | 'rpcProviders' | 'secondaryWallets' | 'setMultiWalletWidgetState' | 'setNetwork' | 'setPrimaryWallet' | 'setShowAuthFlow' | 'setShowQrcodeModal' | 'shadowDOMEnabled' | 'showAuthFlow' | 'showQrcodeModal' | 'setShowDynamicUserProfile' | 'user' | 'walletConnector' | 'wallets'>;
2
+ export type UseDynamicContext = Pick<IDynamicContext, 'accountSwitchState' | 'authMode' | 'authToken' | 'awaitingSignatureState' | 'connectedWallets' | 'handleLogOut' | 'handleUnlinkWallet' | 'isAuthenticated' | 'loadingNetwork' | 'multiWalletWidgetState' | 'network' | 'networkConfigurations' | 'primaryWallet' | 'qrcodeUri' | 'rpcProviders' | 'secondaryWallets' | 'setMultiWalletWidgetState' | 'setNetwork' | 'setPrimaryWallet' | 'setShowAuthFlow' | 'setShowQrcodeModal' | 'shadowDOMEnabled' | 'sdkHasLoaded' | 'showAuthFlow' | 'showQrcodeModal' | 'setShowDynamicUserProfile' | 'user' | 'walletConnector' | 'wallets'>;
3
3
  export declare const useDynamicContext: () => UseDynamicContext;
@@ -7,7 +7,7 @@ const useDynamicContext = () => {
7
7
  if (context === undefined) {
8
8
  throw new Error('useDynamicContext must be used within a DynamicContextProvider');
9
9
  }
10
- const { accountSwitchState, awaitingSignatureState, authMode, authToken, connectedWallets, handleLogOut, handleUnlinkWallet, isAuthenticated, loadingNetwork, multiWalletWidgetState, network, networkConfigurations, primaryWallet, qrcodeUri, rpcProviders, secondaryWallets, setShowAuthFlow, setNetwork, showAuthFlow, showQrcodeModal, setMultiWalletWidgetState, setShowQrcodeModal, setPrimaryWallet, setShowDynamicUserProfile, user, walletConnector, wallets, shadowDOMEnabled, } = context;
10
+ const { accountSwitchState, awaitingSignatureState, authMode, authToken, connectedWallets, handleLogOut, handleUnlinkWallet, isAuthenticated, loadingNetwork, multiWalletWidgetState, network, networkConfigurations, primaryWallet, qrcodeUri, rpcProviders, sdkHasLoaded, secondaryWallets, setShowAuthFlow, setNetwork, showAuthFlow, showQrcodeModal, setMultiWalletWidgetState, setShowQrcodeModal, setPrimaryWallet, setShowDynamicUserProfile, user, walletConnector, wallets, shadowDOMEnabled, } = context;
11
11
  return {
12
12
  accountSwitchState,
13
13
  authMode,
@@ -24,6 +24,7 @@ const useDynamicContext = () => {
24
24
  primaryWallet,
25
25
  qrcodeUri,
26
26
  rpcProviders,
27
+ sdkHasLoaded,
27
28
  secondaryWallets,
28
29
  setMultiWalletWidgetState,
29
30
  setNetwork,
@@ -31,6 +31,7 @@ require('../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.cjs');
31
31
 
32
32
  const SocialRedirectContext = React.createContext(undefined);
33
33
  const SocialRedirectContextProvider = ({ children, }) => {
34
+ var _a, _b;
34
35
  const { setShowAuthFlow, wallets, setSelectedWalletConnector, walletUiUtils, consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, } = useInternalDynamicContext.useInternalDynamicContext();
35
36
  const { setView } = ViewContext.useViewContext();
36
37
  const verifyWallet = useVerifyWallet.useVerifyWallet({
@@ -40,6 +41,10 @@ const SocialRedirectContextProvider = ({ children, }) => {
40
41
  projectSettings,
41
42
  setIsSingleWalletAccount,
42
43
  });
44
+ const enabledSocialProvidersInDb = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.socialSignIn) === null || _a === void 0 ? void 0 : _a.providers) !== null && _b !== void 0 ? _b : [];
45
+ const enabledSocialProviders = enabledSocialProvidersInDb
46
+ .filter((provider) => provider.enabled)
47
+ .map((provider) => provider.provider);
43
48
  const socialWalletConnector = wallets
44
49
  .map(({ walletConnector }) => walletConnector)
45
50
  .find(multiWallet.isSocialWalletConnector);
@@ -88,6 +93,7 @@ const SocialRedirectContextProvider = ({ children, }) => {
88
93
  walletUiUtils,
89
94
  ]);
90
95
  return (jsxRuntime.jsx(SocialRedirectContext.Provider, Object.assign({ value: {
96
+ enabledSocialProviders,
91
97
  redirectStatus,
92
98
  setSocialProvider,
93
99
  socialProvider,
@@ -3,6 +3,7 @@ import { SocialOAuthProvider } from '@dynamic-labs/multi-wallet';
3
3
  import { WalletConnector } from '../../..';
4
4
  type SocialRedirectStatus = 'idle' | 'loading' | 'success' | 'error';
5
5
  type SocialContextReturnType = {
6
+ enabledSocialProviders: SocialOAuthProvider[];
6
7
  redirectStatus: SocialRedirectStatus;
7
8
  setSocialProvider: (val: SocialOAuthProvider) => void;
8
9
  socialProvider: SocialOAuthProvider | undefined;
@@ -27,6 +27,7 @@ import '../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.js';
27
27
 
28
28
  const SocialRedirectContext = createContext(undefined);
29
29
  const SocialRedirectContextProvider = ({ children, }) => {
30
+ var _a, _b;
30
31
  const { setShowAuthFlow, wallets, setSelectedWalletConnector, walletUiUtils, consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, } = useInternalDynamicContext();
31
32
  const { setView } = useViewContext();
32
33
  const verifyWallet = useVerifyWallet({
@@ -36,6 +37,10 @@ const SocialRedirectContextProvider = ({ children, }) => {
36
37
  projectSettings,
37
38
  setIsSingleWalletAccount,
38
39
  });
40
+ const enabledSocialProvidersInDb = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.socialSignIn) === null || _a === void 0 ? void 0 : _a.providers) !== null && _b !== void 0 ? _b : [];
41
+ const enabledSocialProviders = enabledSocialProvidersInDb
42
+ .filter((provider) => provider.enabled)
43
+ .map((provider) => provider.provider);
39
44
  const socialWalletConnector = wallets
40
45
  .map(({ walletConnector }) => walletConnector)
41
46
  .find(isSocialWalletConnector);
@@ -84,6 +89,7 @@ const SocialRedirectContextProvider = ({ children, }) => {
84
89
  walletUiUtils,
85
90
  ]);
86
91
  return (jsx(SocialRedirectContext.Provider, Object.assign({ value: {
92
+ enabledSocialProviders,
87
93
  redirectStatus,
88
94
  setSocialProvider,
89
95
  socialProvider,
@@ -70,6 +70,9 @@ const signInWithEmailVerification = ({ verificationToken, verificationUUID, envi
70
70
  catch (e) {
71
71
  const data = yield e.json();
72
72
  logger.logger.error(data.error);
73
+ if (data.error.code === 'no_email_on_access_list') {
74
+ throw new multiWallet.NoAccessError({ email: data.payload.email });
75
+ }
73
76
  throw new multiWallet.EmailVerificationError(data.code);
74
77
  }
75
78
  });
@@ -248,7 +251,9 @@ const verifyWallet = (environmentId, { messageToSign, signedMessage, publicWalle
248
251
  throw new multiWallet.ChainalysisError(data.payload.walletPublicKey);
249
252
  }
250
253
  if (data.error.code === 'missing_from_list') {
251
- throw new multiWallet.NoAccessError(data.payload.walletPublicKey);
254
+ throw new multiWallet.NoAccessError({
255
+ walletPublicKey: data.payload.walletPublicKey,
256
+ });
252
257
  }
253
258
  return undefined;
254
259
  }
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from '../../../_virtual/_tslib.js';
2
- import { EmailVerificationError, DynamicError, EmailAlreadyExistsError, UsernameAlreadyExistsError, WalletUsedError, WalletNotDeployedError, ChainalysisError, NoAccessError } from '@dynamic-labs/multi-wallet';
2
+ import { NoAccessError, EmailVerificationError, DynamicError, EmailAlreadyExistsError, UsernameAlreadyExistsError, WalletUsedError, WalletNotDeployedError, ChainalysisError } from '@dynamic-labs/multi-wallet';
3
3
  import { SDKApi, Configuration, VerifyRequestFromJSON, ChainEnum, WalletProviderEnum, AuthModeEnum } from '@dynamic-labs/sdk-api';
4
4
  import { VERSION, API_VERSION } from '../../version.js';
5
5
  import ApiEndpoint from '../config/ApiEndpoint.js';
@@ -66,6 +66,9 @@ const signInWithEmailVerification = ({ verificationToken, verificationUUID, envi
66
66
  catch (e) {
67
67
  const data = yield e.json();
68
68
  logger.error(data.error);
69
+ if (data.error.code === 'no_email_on_access_list') {
70
+ throw new NoAccessError({ email: data.payload.email });
71
+ }
69
72
  throw new EmailVerificationError(data.code);
70
73
  }
71
74
  });
@@ -244,7 +247,9 @@ const verifyWallet = (environmentId, { messageToSign, signedMessage, publicWalle
244
247
  throw new ChainalysisError(data.payload.walletPublicKey);
245
248
  }
246
249
  if (data.error.code === 'missing_from_list') {
247
- throw new NoAccessError(data.payload.walletPublicKey);
250
+ throw new NoAccessError({
251
+ walletPublicKey: data.payload.walletPublicKey,
252
+ });
248
253
  }
249
254
  return undefined;
250
255
  }
@@ -0,0 +1 @@
1
+ export { useGlobalLoading } from './useGlobalLoading';
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var index = require('../../functions/lastAuthenticatedAccount/index.cjs');
7
+
8
+ const useGlobalLoading = ({ authMode, connectedInfo, connectedWallet, projectSettings, primaryWallet, user, }) => {
9
+ var _a;
10
+ const [sdkHasLoaded, setSdkHasLoaded] = React.useState(false);
11
+ const primaryWalletIsLoading = user &&
12
+ ((_a = index.lastAuthenticatedAccount(user)) === null || _a === void 0 ? void 0 : _a.format) === 'blockchain' &&
13
+ !primaryWallet;
14
+ const connectOnlyUserIsLoading = authMode === 'connect-only' && connectedInfo && !connectedWallet;
15
+ React.useEffect(() => {
16
+ if (projectSettings) {
17
+ if (primaryWalletIsLoading || connectOnlyUserIsLoading) {
18
+ return;
19
+ }
20
+ setSdkHasLoaded(true);
21
+ }
22
+ }, [
23
+ projectSettings,
24
+ primaryWallet,
25
+ user,
26
+ primaryWalletIsLoading,
27
+ connectOnlyUserIsLoading,
28
+ ]);
29
+ return {
30
+ sdkHasLoaded,
31
+ setSdkHasLoaded,
32
+ };
33
+ };
34
+
35
+ exports.useGlobalLoading = useGlobalLoading;
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { ProjectSettings } from '@dynamic-labs/sdk-api';
3
+ import { UserProfile, Wallet } from '../../../types';
4
+ import { ConnectedWalletConnectorType } from '../../../../utils/hooks/useConnectWallet/useConnectWallet';
5
+ type Props = {
6
+ authMode: string;
7
+ connectedInfo: ConnectedWalletConnectorType | null;
8
+ connectedWallet: Wallet | null;
9
+ primaryWallet: Wallet | null;
10
+ projectSettings: ProjectSettings | undefined;
11
+ user: UserProfile | undefined;
12
+ };
13
+ export declare const useGlobalLoading: ({ authMode, connectedInfo, connectedWallet, projectSettings, primaryWallet, user, }: Props) => {
14
+ sdkHasLoaded: boolean;
15
+ setSdkHasLoaded: import("react").Dispatch<import("react").SetStateAction<boolean>>;
16
+ };
17
+ export {};
@@ -0,0 +1,31 @@
1
+ import { useState, useEffect } from 'react';
2
+ import { lastAuthenticatedAccount } from '../../functions/lastAuthenticatedAccount/index.js';
3
+
4
+ const useGlobalLoading = ({ authMode, connectedInfo, connectedWallet, projectSettings, primaryWallet, user, }) => {
5
+ var _a;
6
+ const [sdkHasLoaded, setSdkHasLoaded] = useState(false);
7
+ const primaryWalletIsLoading = user &&
8
+ ((_a = lastAuthenticatedAccount(user)) === null || _a === void 0 ? void 0 : _a.format) === 'blockchain' &&
9
+ !primaryWallet;
10
+ const connectOnlyUserIsLoading = authMode === 'connect-only' && connectedInfo && !connectedWallet;
11
+ useEffect(() => {
12
+ if (projectSettings) {
13
+ if (primaryWalletIsLoading || connectOnlyUserIsLoading) {
14
+ return;
15
+ }
16
+ setSdkHasLoaded(true);
17
+ }
18
+ }, [
19
+ projectSettings,
20
+ primaryWallet,
21
+ user,
22
+ primaryWalletIsLoading,
23
+ connectOnlyUserIsLoading,
24
+ ]);
25
+ return {
26
+ sdkHasLoaded,
27
+ setSdkHasLoaded,
28
+ };
29
+ };
30
+
31
+ export { useGlobalLoading };