@dynamic-labs/sdk-react-core 1.4.16 → 1.4.18

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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,18 @@
1
1
 
2
+ ### [1.4.18](https://github.com/dynamic-labs/DynamicAuth/compare/v1.4.17...v1.4.18) (2024-07-31)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * sdkHasLoaded flipping back to false with otp ([#6256](https://github.com/dynamic-labs/DynamicAuth/issues/6256)) ([#6451](https://github.com/dynamic-labs/DynamicAuth/issues/6451)) ([b4c86df](https://github.com/dynamic-labs/DynamicAuth/commit/b4c86dff136cc5a866c70610a12ffc75a8ae6d4f)), closes [/github.com/dynamic-labs/dynamic-auth/commit/4fc047f02f6f06d5c129d8de4eed42ee35b4545e#diff-cf5bbeb2e3bd88281d04fe5d30137f9f135011803101c2dec57d5f35cbb47aa0](https://github.com/dynamic-labs//github.com/dynamic-labs/dynamic-auth/commit/4fc047f02f6f06d5c129d8de4eed42ee35b4545e/issues/diff-cf5bbeb2e3bd88281d04fe5d30137f9f135011803101c2dec57d5f35cbb47aa0)
8
+
9
+ ### [1.4.17](https://github.com/dynamic-labs/DynamicAuth/compare/v1.4.16...v1.4.17) (2024-07-25)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * improvements to metamask starknet snap network polling ([#6424](https://github.com/dynamic-labs/DynamicAuth/issues/6424)) ([#6425](https://github.com/dynamic-labs/DynamicAuth/issues/6425)) ([5b565c8](https://github.com/dynamic-labs/DynamicAuth/commit/5b565c8ef4bee0d7dc076ef30170039d22b678fd))
15
+
2
16
  ### [1.4.16](https://github.com/dynamic-labs/DynamicAuth/compare/v1.4.15...v1.4.16) (2024-07-25)
3
17
 
4
18
 
package/package.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "1.4.16";
5
+ var version = "1.4.18";
6
6
  var dependencies = {
7
7
  "@dynamic-labs/sdk-api": "0.0.387",
8
8
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
- var version = "1.4.16";
1
+ var version = "1.4.18";
2
2
  var dependencies = {
3
3
  "@dynamic-labs/sdk-api": "0.0.387",
4
4
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "1.4.16",
3
+ "version": "1.4.18",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -16,16 +16,16 @@
16
16
  "react-focus-lock": "2.9.2",
17
17
  "react-i18next": "^13.2.0",
18
18
  "yup": "0.32.11",
19
- "@dynamic-labs/ethereum": "1.4.16",
20
- "@dynamic-labs/iconic": "1.4.16",
21
- "@dynamic-labs/logger": "1.4.16",
22
- "@dynamic-labs/multi-wallet": "1.4.16",
23
- "@dynamic-labs/rpc-providers": "1.4.16",
24
- "@dynamic-labs/types": "1.4.16",
25
- "@dynamic-labs/utils": "1.4.16",
26
- "@dynamic-labs/viem-utils": "1.4.16",
27
- "@dynamic-labs/wallet-book": "1.4.16",
28
- "@dynamic-labs/wallet-connector-core": "1.4.16",
19
+ "@dynamic-labs/ethereum": "1.4.18",
20
+ "@dynamic-labs/iconic": "1.4.18",
21
+ "@dynamic-labs/logger": "1.4.18",
22
+ "@dynamic-labs/multi-wallet": "1.4.18",
23
+ "@dynamic-labs/rpc-providers": "1.4.18",
24
+ "@dynamic-labs/types": "1.4.18",
25
+ "@dynamic-labs/utils": "1.4.18",
26
+ "@dynamic-labs/viem-utils": "1.4.18",
27
+ "@dynamic-labs/wallet-book": "1.4.18",
28
+ "@dynamic-labs/wallet-connector-core": "1.4.18",
29
29
  "eventemitter3": "5.0.1"
30
30
  },
31
31
  "devDependencies": {
@@ -1 +0,0 @@
1
- export { SandboxIndicatorWrapper } from './SandboxIndicatorWrapper';
@@ -267,7 +267,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
267
267
  setIsFullyConnected(!(bridgeChainsToConnect === null || bridgeChainsToConnect === void 0 ? void 0 : bridgeChainsToConnect.length) && Boolean(primaryWallet));
268
268
  }, [bridgeChainsToConnect, primaryWallet]);
269
269
  const walletConnectors = linkedOrConnectedWallets.map((wallet) => wallet.connector);
270
- const { sdkHasLoaded, setSdkHasLoaded } = useGlobalLoading.useGlobalLoading({
270
+ const sdkHasLoaded = useGlobalLoading.useGlobalLoading({
271
271
  authMode,
272
272
  connectedInfo: connectedWalletsInfo[0],
273
273
  connectedWallets,
@@ -309,7 +309,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
309
309
  setLegacyIsVerifying,
310
310
  setMultiWalletWidgetState,
311
311
  setOnboardingOnlyJwt,
312
- setSdkHasLoaded,
312
+ setSelectedWalletConnectorKey,
313
313
  setShowAuthFlow,
314
314
  setShowBridgeWidget,
315
315
  setShowDynamicUserProfile,
@@ -524,7 +524,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
524
524
  setPrimaryWallet,
525
525
  setPrimaryWalletId,
526
526
  setQrcodeUri,
527
- setSdkHasLoaded,
528
527
  setSelectedWalletConnectorKey,
529
528
  setSelectedWalletWithAction,
530
529
  setShowAuthFlow,
@@ -637,7 +636,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
637
636
  setNetwork,
638
637
  setPrimaryWallet,
639
638
  setPrimaryWalletId,
640
- setSdkHasLoaded,
641
639
  setSelectedWalletConnectorKey,
642
640
  setShowAuthFlow,
643
641
  setShowLinkNewWalletModal,
@@ -263,7 +263,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
263
263
  setIsFullyConnected(!(bridgeChainsToConnect === null || bridgeChainsToConnect === void 0 ? void 0 : bridgeChainsToConnect.length) && Boolean(primaryWallet));
264
264
  }, [bridgeChainsToConnect, primaryWallet]);
265
265
  const walletConnectors = linkedOrConnectedWallets.map((wallet) => wallet.connector);
266
- const { sdkHasLoaded, setSdkHasLoaded } = useGlobalLoading({
266
+ const sdkHasLoaded = useGlobalLoading({
267
267
  authMode,
268
268
  connectedInfo: connectedWalletsInfo[0],
269
269
  connectedWallets,
@@ -305,7 +305,7 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
305
305
  setLegacyIsVerifying,
306
306
  setMultiWalletWidgetState,
307
307
  setOnboardingOnlyJwt,
308
- setSdkHasLoaded,
308
+ setSelectedWalletConnectorKey,
309
309
  setShowAuthFlow,
310
310
  setShowBridgeWidget,
311
311
  setShowDynamicUserProfile,
@@ -520,7 +520,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
520
520
  setPrimaryWallet,
521
521
  setPrimaryWalletId,
522
522
  setQrcodeUri,
523
- setSdkHasLoaded,
524
523
  setSelectedWalletConnectorKey,
525
524
  setSelectedWalletWithAction,
526
525
  setShowAuthFlow,
@@ -633,7 +632,6 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
633
632
  setNetwork,
634
633
  setPrimaryWallet,
635
634
  setPrimaryWalletId,
636
- setSdkHasLoaded,
637
635
  setSelectedWalletConnectorKey,
638
636
  setShowAuthFlow,
639
637
  setShowLinkNewWalletModal,
@@ -6,9 +6,9 @@ import { ChainsToConnect } from '../../types';
6
6
  import { SetShowAuthFlow } from '../useShowAuthFlow';
7
7
  export type UseHandleLogoutParams = {
8
8
  removeUser: () => void;
9
- setSdkHasLoaded: Dispatch<SetStateAction<boolean>>;
10
9
  clearAllWalletConnectSessions: () => void;
11
10
  bridgeChains: ChainsToConnect[] | undefined;
11
+ setSelectedWalletConnectorKey: Dispatch<SetStateAction<string | null>>;
12
12
  setShowDynamicUserProfile: Dispatch<SetStateAction<boolean>>;
13
13
  setShowBridgeWidget: Dispatch<SetStateAction<boolean>>;
14
14
  user: UserProfile | undefined;
@@ -78,7 +78,7 @@ const useHandleLogout = (params) => {
78
78
  paramsRef.current = params;
79
79
  const logout = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
80
80
  const p = paramsRef.current;
81
- p.setSdkHasLoaded(false);
81
+ p.setSelectedWalletConnectorKey(null);
82
82
  p.clearAllWalletConnectSessions();
83
83
  p.setShowDynamicUserProfile(false);
84
84
  p.setShowBridgeWidget(false);
@@ -74,7 +74,7 @@ const useHandleLogout = (params) => {
74
74
  paramsRef.current = params;
75
75
  const logout = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
76
76
  const p = paramsRef.current;
77
- p.setSdkHasLoaded(false);
77
+ p.setSelectedWalletConnectorKey(null);
78
78
  p.clearAllWalletConnectSessions();
79
79
  p.setShowDynamicUserProfile(false);
80
80
  p.setShowBridgeWidget(false);
@@ -6,37 +6,30 @@ var React = require('react');
6
6
  var index = require('../../functions/lastAuthenticatedAccount/index.cjs');
7
7
 
8
8
  const useGlobalLoading = ({ authMode, connectedInfo, connectedWallets, projectSettings, primaryWallet, user, walletBook, }) => {
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' &&
9
+ var _a, _b;
10
+ // Once we declare the SDK as loaded, we do not ever want to flip back to false
11
+ const hasLoaded = React.useRef(false);
12
+ const finishLoading = () => {
13
+ if (hasLoaded.current)
14
+ return;
15
+ hasLoaded.current = true;
16
+ };
17
+ if (hasLoaded.current)
18
+ return true;
19
+ const hasWalletBookLoaded = Boolean(Object.keys((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {}).length);
20
+ const isPrimaryWalletLoading = user &&
21
+ ((_b = index.lastAuthenticatedAccount(user)) === null || _b === void 0 ? void 0 : _b.format) === 'blockchain' &&
13
22
  !primaryWallet;
14
- const connectOnlyUserIsLoading = authMode === 'connect-only' &&
23
+ const isConnectOnlyWalletsLoading = authMode === 'connect-only' &&
15
24
  connectedInfo &&
16
25
  connectedWallets.length === 0;
17
- React.useEffect(() => {
18
- var _a;
19
- if (!Object.keys((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {}).length) {
20
- return;
21
- }
22
- if (projectSettings) {
23
- if (primaryWalletIsLoading || connectOnlyUserIsLoading) {
24
- return;
25
- }
26
- setSdkHasLoaded(true);
27
- }
28
- }, [
29
- projectSettings,
30
- primaryWallet,
31
- user,
32
- primaryWalletIsLoading,
33
- connectOnlyUserIsLoading,
34
- walletBook,
35
- ]);
36
- return {
37
- sdkHasLoaded,
38
- setSdkHasLoaded,
39
- };
26
+ if (hasWalletBookLoaded &&
27
+ Boolean(projectSettings) &&
28
+ !isPrimaryWalletLoading &&
29
+ !isConnectOnlyWalletsLoading) {
30
+ finishLoading();
31
+ }
32
+ return hasLoaded.current;
40
33
  };
41
34
 
42
35
  exports.useGlobalLoading = useGlobalLoading;
@@ -1,19 +1,14 @@
1
- /// <reference types="react" />
2
- import { ProjectSettings } from '@dynamic-labs/sdk-api';
3
1
  import { WalletBookSchema } from '@dynamic-labs/wallet-book';
4
- import { UserProfile, Wallet } from '../../../types';
5
2
  import { ConnectedWalletConnectorType } from '../../../../utils/hooks/useConnectWallet/useConnectWallet';
3
+ import { UserProfile, Wallet } from '../../../types';
6
4
  type Props = {
7
5
  authMode: string;
8
6
  connectedInfo: ConnectedWalletConnectorType | null;
9
7
  connectedWallets: Wallet[];
10
8
  primaryWallet: Wallet | null;
11
- projectSettings: ProjectSettings | undefined;
9
+ projectSettings: any;
12
10
  user: UserProfile | undefined;
13
11
  walletBook: WalletBookSchema;
14
12
  };
15
- export declare const useGlobalLoading: ({ authMode, connectedInfo, connectedWallets, projectSettings, primaryWallet, user, walletBook, }: Props) => {
16
- sdkHasLoaded: boolean;
17
- setSdkHasLoaded: import("react").Dispatch<import("react").SetStateAction<boolean>>;
18
- };
13
+ export declare const useGlobalLoading: ({ authMode, connectedInfo, connectedWallets, projectSettings, primaryWallet, user, walletBook, }: Props) => boolean;
19
14
  export {};
@@ -1,38 +1,31 @@
1
- import { useState, useEffect } from 'react';
1
+ import { useRef } from 'react';
2
2
  import { lastAuthenticatedAccount } from '../../functions/lastAuthenticatedAccount/index.js';
3
3
 
4
4
  const useGlobalLoading = ({ authMode, connectedInfo, connectedWallets, projectSettings, primaryWallet, user, walletBook, }) => {
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' &&
5
+ var _a, _b;
6
+ // Once we declare the SDK as loaded, we do not ever want to flip back to false
7
+ const hasLoaded = useRef(false);
8
+ const finishLoading = () => {
9
+ if (hasLoaded.current)
10
+ return;
11
+ hasLoaded.current = true;
12
+ };
13
+ if (hasLoaded.current)
14
+ return true;
15
+ const hasWalletBookLoaded = Boolean(Object.keys((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {}).length);
16
+ const isPrimaryWalletLoading = user &&
17
+ ((_b = lastAuthenticatedAccount(user)) === null || _b === void 0 ? void 0 : _b.format) === 'blockchain' &&
9
18
  !primaryWallet;
10
- const connectOnlyUserIsLoading = authMode === 'connect-only' &&
19
+ const isConnectOnlyWalletsLoading = authMode === 'connect-only' &&
11
20
  connectedInfo &&
12
21
  connectedWallets.length === 0;
13
- useEffect(() => {
14
- var _a;
15
- if (!Object.keys((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {}).length) {
16
- return;
17
- }
18
- if (projectSettings) {
19
- if (primaryWalletIsLoading || connectOnlyUserIsLoading) {
20
- return;
21
- }
22
- setSdkHasLoaded(true);
23
- }
24
- }, [
25
- projectSettings,
26
- primaryWallet,
27
- user,
28
- primaryWalletIsLoading,
29
- connectOnlyUserIsLoading,
30
- walletBook,
31
- ]);
32
- return {
33
- sdkHasLoaded,
34
- setSdkHasLoaded,
35
- };
22
+ if (hasWalletBookLoaded &&
23
+ Boolean(projectSettings) &&
24
+ !isPrimaryWalletLoading &&
25
+ !isConnectOnlyWalletsLoading) {
26
+ finishLoading();
27
+ }
28
+ return hasLoaded.current;
36
29
  };
37
30
 
38
31
  export { useGlobalLoading };