@dynamic-labs/sdk-react-core 1.1.0-alpha.2 → 1.1.0-alpha.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 (53) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +11 -11
  5. package/src/index.cjs +2 -0
  6. package/src/index.d.ts +1 -0
  7. package/src/index.js +1 -0
  8. package/src/lib/context/DynamicContext/DynamicContext.cjs +3 -2
  9. package/src/lib/context/DynamicContext/DynamicContext.js +3 -2
  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/data/api.cjs +0 -13
  14. package/src/lib/data/api.d.ts +1 -2
  15. package/src/lib/data/api.js +2 -14
  16. package/src/lib/shared/consts/index.cjs +1 -0
  17. package/src/lib/shared/consts/index.js +1 -0
  18. package/src/lib/shared/types/index.d.ts +2 -1
  19. package/src/lib/utils/functions/getVerifyArgs/getVerifyArgs.d.ts +1 -1
  20. package/src/lib/utils/functions/index.d.ts +1 -0
  21. package/src/lib/utils/functions/isEmailValid/index.d.ts +1 -0
  22. package/src/lib/utils/functions/isEmailValid/isEmailValid.cjs +8 -0
  23. package/src/lib/utils/functions/isEmailValid/isEmailValid.d.ts +1 -0
  24. package/src/lib/utils/functions/isEmailValid/isEmailValid.js +4 -0
  25. package/src/lib/utils/functions/isProviderEnabled/isProviderEnabled.cjs +9 -1
  26. package/src/lib/utils/functions/isProviderEnabled/isProviderEnabled.js +9 -1
  27. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +2 -0
  28. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.d.ts +1 -0
  29. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +2 -0
  30. package/src/lib/utils/hooks/useConnectWithEmailOtp/index.d.ts +1 -0
  31. package/src/lib/utils/hooks/useConnectWithEmailOtp/useConnectWithEmailOtp.cjs +150 -0
  32. package/src/lib/utils/hooks/useConnectWithEmailOtp/useConnectWithEmailOtp.d.ts +32 -0
  33. package/src/lib/utils/hooks/useConnectWithEmailOtp/useConnectWithEmailOtp.js +146 -0
  34. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.cjs +3 -3
  35. package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.js +3 -3
  36. package/src/lib/utils/hooks/useProcessNetworkConfigurations/index.d.ts +1 -0
  37. package/src/lib/utils/hooks/{useFetchNetworkConfigurations/useFetchNetworkConfigurations.cjs → useProcessNetworkConfigurations/useProcessNetworkConfigurations.cjs} +53 -67
  38. package/src/lib/utils/hooks/{useFetchNetworkConfigurations/useFetchNetworkConfigurations.d.ts → useProcessNetworkConfigurations/useProcessNetworkConfigurations.d.ts} +3 -2
  39. package/src/lib/utils/hooks/{useFetchNetworkConfigurations/useFetchNetworkConfigurations.js → useProcessNetworkConfigurations/useProcessNetworkConfigurations.js} +53 -67
  40. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.cjs +2 -3
  41. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.d.ts +0 -1
  42. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.js +3 -3
  43. package/src/lib/views/WalletList/WalletList.cjs +5 -8
  44. package/src/lib/views/WalletList/WalletList.js +5 -8
  45. package/src/lib/views/WalletList/data.d.ts +1 -1
  46. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +4 -1
  47. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +4 -1
  48. package/src/lib/utils/hooks/useFetchNetworkConfigurations/index.d.ts +0 -1
  49. /package/src/lib/utils/hooks/{useFetchNetworkConfigurations → useProcessNetworkConfigurations}/utils/index.d.ts +0 -0
  50. /package/src/lib/utils/hooks/{useFetchNetworkConfigurations → useProcessNetworkConfigurations}/utils/mergeCustomerEvmNetworksWithServerNetworks/index.d.ts +0 -0
  51. /package/src/lib/utils/hooks/{useFetchNetworkConfigurations → useProcessNetworkConfigurations}/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.cjs +0 -0
  52. /package/src/lib/utils/hooks/{useFetchNetworkConfigurations → useProcessNetworkConfigurations}/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.d.ts +0 -0
  53. /package/src/lib/utils/hooks/{useFetchNetworkConfigurations → useProcessNetworkConfigurations}/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.js +0 -0
@@ -15,30 +15,27 @@ require('../../utils/constants/colors.cjs');
15
15
  var walletListBuilder = require('../../utils/functions/walletListBuilder/walletListBuilder.cjs');
16
16
  var classNames = require('../../utils/functions/classNames/classNames.cjs');
17
17
  var useInternalDynamicContext = require('../../context/DynamicContext/useInternalDynamicContext.cjs');
18
- var MockContext = require('../../context/MockContext/MockContext.cjs');
19
- var ViewContext = require('../../context/ViewContext/ViewContext.cjs');
20
- var isUserLinkingWallet = require('../../shared/utils/functions/isUserLinkingWallet/isUserLinkingWallet.cjs');
21
18
  var index = require('../../utils/functions/walletFilters/index.cjs');
22
19
  require('@dynamic-labs/sdk-api');
23
20
  require('../../shared/logger.cjs');
24
21
  require('@dynamic-labs/iconic');
25
22
  require('@dynamic-labs/wallet-connector-core');
23
+ require('../../context/ViewContext/ViewContext.cjs');
26
24
  var localStorage = require('../../shared/utils/classes/storage/localStorage.cjs');
27
25
  require('viem');
28
26
  require('@dynamic-labs/utils');
29
27
  require('../../shared/consts/index.cjs');
30
28
  var noWalletFound = require('../../assets/no-wallet-found.cjs');
29
+ var useAuthLayoutChecks = require('../../utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs');
31
30
  var SearchNotFoundMessage = require('./SearchNotFoundMessage/SearchNotFoundMessage.cjs');
32
31
  var WalletListItem = require('./WalletListItem/WalletListItem.cjs');
33
32
 
34
33
  localStorage.LocalStorage.setToLS(localStorage$1.WALLET_PICKER_SEARCH_KEY, '');
35
34
  const WalletList = ({ isWalletConnectList = false, }) => {
36
35
  var _a;
37
- const { walletsFilter, signWithEmailWalletName, user, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet, } = useInternalDynamicContext.useInternalDynamicContext();
36
+ const { walletsFilter, signWithEmailWalletName, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet, walletConnector, } = useInternalDynamicContext.useInternalDynamicContext();
38
37
  const { walletBook: walletBook$1 } = walletBook.useWalletBookContext();
39
38
  const { error } = ErrorContext.useErrorContext();
40
- const { view } = ViewContext.useViewContext();
41
- const { mockedSDK } = MockContext.useMockContext();
42
39
  const { t } = reactI18next.useTranslation();
43
40
  const [filterValue, setFilterValue] = React.useState((_a = localStorage.LocalStorage.getFromLS(localStorage$1.WALLET_PICKER_SEARCH_KEY)) !== null && _a !== void 0 ? _a : '');
44
41
  const [footerIsVisible, setFooterIsVisibile] = React.useState(false);
@@ -62,7 +59,7 @@ const WalletList = ({ isWalletConnectList = false, }) => {
62
59
  });
63
60
  const isSearchEnabled = numberOfWallets > defaultNumberOfWalletsToShow &&
64
61
  walletsList.length !== numberOfWallets;
65
- const noDefaultFooter = isUserLinkingWallet.isUserLinkingWallet(user, view, mockedSDK);
62
+ const { showDefaultFooter } = useAuthLayoutChecks.useAuthLayoutChecks(walletConnector);
66
63
  const walletListScrollRef = React.useRef(null);
67
64
  /* istanbul ignore next */
68
65
  const handleScroll = () => {
@@ -87,7 +84,7 @@ const WalletList = ({ isWalletConnectList = false, }) => {
87
84
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [searchContainer, Boolean(error) && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { className: 'wallet-list__error-container', withIcon: false, children: error })), jsxRuntime.jsx("div", { className: 'wallet-list__container', children: jsxRuntime.jsxs("div", { className: classNames.classNames('wallet-list__scroll-container', {
88
85
  'wallet-list__scroll-container--error': Boolean(error),
89
86
  'wallet-list__scroll-container--full-height': isSearchEnabled,
90
- }), "data-testid": 'wallet-list-scroll-container', ref: walletListScrollRef, onScroll: handleScroll, children: [!projectSettings ? (jsxRuntime.jsx(Skeleton.Skeleton, { count: 10, className: 'wallet-list__tile-skeleton' })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [walletConnectorOptions.length === 0 && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { copykey: 'dyn_wallet_list.configuration_mismatch', children: t('dyn_wallet_list.configuration_mismatch') })), walletConnectorOptions.length && walletsList.length === 0 ? (jsxRuntime.jsx(SearchNotFoundMessage.SearchNotFoundMessage, { title: t('dyn_wallet_list.search.not_found.title'), subtitle: t('dyn_wallet_list.search.not_found.description'), image: jsxRuntime.jsx(noWalletFound.ReactComponent, {}) })) : (walletsList.map((wallet, index) => (jsxRuntime.jsx(WalletListItem.WalletListItem, { wallet: wallet, usingMultiWallet: multiWallet, onResetSearchValue: () => handleFilterValueChange('') }, `${wallet.key}_${index}`))))] })), isSearchEnabled && !filterValue && projectSettings && (jsxRuntime.jsx(SearchNotFoundMessage.SearchNotFoundMessage, {}))] }) }), noDefaultFooter && (jsxRuntime.jsx("div", { className: classNames.classNames('wallet-list__tiny-footer', {
87
+ }), "data-testid": 'wallet-list-scroll-container', ref: walletListScrollRef, onScroll: handleScroll, children: [!projectSettings ? (jsxRuntime.jsx(Skeleton.Skeleton, { count: 10, className: 'wallet-list__tile-skeleton' })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [walletConnectorOptions.length === 0 && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { copykey: 'dyn_wallet_list.configuration_mismatch', children: t('dyn_wallet_list.configuration_mismatch') })), walletConnectorOptions.length && walletsList.length === 0 ? (jsxRuntime.jsx(SearchNotFoundMessage.SearchNotFoundMessage, { title: t('dyn_wallet_list.search.not_found.title'), subtitle: t('dyn_wallet_list.search.not_found.description'), image: jsxRuntime.jsx(noWalletFound.ReactComponent, {}) })) : (walletsList.map((wallet, index) => (jsxRuntime.jsx(WalletListItem.WalletListItem, { wallet: wallet, usingMultiWallet: multiWallet, onResetSearchValue: () => handleFilterValueChange('') }, `${wallet.key}_${index}`))))] })), isSearchEnabled && !filterValue && projectSettings && (jsxRuntime.jsx(SearchNotFoundMessage.SearchNotFoundMessage, {}))] }) }), showDefaultFooter && (jsxRuntime.jsx("div", { className: classNames.classNames('wallet-list__tiny-footer', {
91
88
  'wallet-list__tiny-footer--hidden': footerIsVisible,
92
89
  }), "data-testid": 'wallet-list-tiny-footer' }))] }));
93
90
  };
@@ -11,30 +11,27 @@ import '../../utils/constants/colors.js';
11
11
  import { walletListBuilder } from '../../utils/functions/walletListBuilder/walletListBuilder.js';
12
12
  import { classNames } from '../../utils/functions/classNames/classNames.js';
13
13
  import { useInternalDynamicContext } from '../../context/DynamicContext/useInternalDynamicContext.js';
14
- import { useMockContext } from '../../context/MockContext/MockContext.js';
15
- import { useViewContext } from '../../context/ViewContext/ViewContext.js';
16
- import { isUserLinkingWallet } from '../../shared/utils/functions/isUserLinkingWallet/isUserLinkingWallet.js';
17
14
  import { FilterBridgeChainsName } from '../../utils/functions/walletFilters/index.js';
18
15
  import '@dynamic-labs/sdk-api';
19
16
  import '../../shared/logger.js';
20
17
  import '@dynamic-labs/iconic';
21
18
  import '@dynamic-labs/wallet-connector-core';
19
+ import '../../context/ViewContext/ViewContext.js';
22
20
  import { LocalStorage } from '../../shared/utils/classes/storage/localStorage.js';
23
21
  import 'viem';
24
22
  import '@dynamic-labs/utils';
25
23
  import '../../shared/consts/index.js';
26
24
  import { ReactComponent as SvgNoWalletFound } from '../../assets/no-wallet-found.js';
25
+ import { useAuthLayoutChecks } from '../../utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js';
27
26
  import { SearchNotFoundMessage } from './SearchNotFoundMessage/SearchNotFoundMessage.js';
28
27
  import { WalletListItem } from './WalletListItem/WalletListItem.js';
29
28
 
30
29
  LocalStorage.setToLS(WALLET_PICKER_SEARCH_KEY, '');
31
30
  const WalletList = ({ isWalletConnectList = false, }) => {
32
31
  var _a;
33
- const { walletsFilter, signWithEmailWalletName, user, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet, } = useInternalDynamicContext();
32
+ const { walletsFilter, signWithEmailWalletName, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet, walletConnector, } = useInternalDynamicContext();
34
33
  const { walletBook } = useWalletBookContext();
35
34
  const { error } = useErrorContext();
36
- const { view } = useViewContext();
37
- const { mockedSDK } = useMockContext();
38
35
  const { t } = useTranslation();
39
36
  const [filterValue, setFilterValue] = useState((_a = LocalStorage.getFromLS(WALLET_PICKER_SEARCH_KEY)) !== null && _a !== void 0 ? _a : '');
40
37
  const [footerIsVisible, setFooterIsVisibile] = useState(false);
@@ -58,7 +55,7 @@ const WalletList = ({ isWalletConnectList = false, }) => {
58
55
  });
59
56
  const isSearchEnabled = numberOfWallets > defaultNumberOfWalletsToShow &&
60
57
  walletsList.length !== numberOfWallets;
61
- const noDefaultFooter = isUserLinkingWallet(user, view, mockedSDK);
58
+ const { showDefaultFooter } = useAuthLayoutChecks(walletConnector);
62
59
  const walletListScrollRef = useRef(null);
63
60
  /* istanbul ignore next */
64
61
  const handleScroll = () => {
@@ -83,7 +80,7 @@ const WalletList = ({ isWalletConnectList = false, }) => {
83
80
  return (jsxs(Fragment, { children: [searchContainer, Boolean(error) && (jsx(ErrorContainer, { className: 'wallet-list__error-container', withIcon: false, children: error })), jsx("div", { className: 'wallet-list__container', children: jsxs("div", { className: classNames('wallet-list__scroll-container', {
84
81
  'wallet-list__scroll-container--error': Boolean(error),
85
82
  'wallet-list__scroll-container--full-height': isSearchEnabled,
86
- }), "data-testid": 'wallet-list-scroll-container', ref: walletListScrollRef, onScroll: handleScroll, children: [!projectSettings ? (jsx(Skeleton, { count: 10, className: 'wallet-list__tile-skeleton' })) : (jsxs(Fragment, { children: [walletConnectorOptions.length === 0 && (jsx(ErrorContainer, { copykey: 'dyn_wallet_list.configuration_mismatch', children: t('dyn_wallet_list.configuration_mismatch') })), walletConnectorOptions.length && walletsList.length === 0 ? (jsx(SearchNotFoundMessage, { title: t('dyn_wallet_list.search.not_found.title'), subtitle: t('dyn_wallet_list.search.not_found.description'), image: jsx(SvgNoWalletFound, {}) })) : (walletsList.map((wallet, index) => (jsx(WalletListItem, { wallet: wallet, usingMultiWallet: multiWallet, onResetSearchValue: () => handleFilterValueChange('') }, `${wallet.key}_${index}`))))] })), isSearchEnabled && !filterValue && projectSettings && (jsx(SearchNotFoundMessage, {}))] }) }), noDefaultFooter && (jsx("div", { className: classNames('wallet-list__tiny-footer', {
83
+ }), "data-testid": 'wallet-list-scroll-container', ref: walletListScrollRef, onScroll: handleScroll, children: [!projectSettings ? (jsx(Skeleton, { count: 10, className: 'wallet-list__tile-skeleton' })) : (jsxs(Fragment, { children: [walletConnectorOptions.length === 0 && (jsx(ErrorContainer, { copykey: 'dyn_wallet_list.configuration_mismatch', children: t('dyn_wallet_list.configuration_mismatch') })), walletConnectorOptions.length && walletsList.length === 0 ? (jsx(SearchNotFoundMessage, { title: t('dyn_wallet_list.search.not_found.title'), subtitle: t('dyn_wallet_list.search.not_found.description'), image: jsx(SvgNoWalletFound, {}) })) : (walletsList.map((wallet, index) => (jsx(WalletListItem, { wallet: wallet, usingMultiWallet: multiWallet, onResetSearchValue: () => handleFilterValueChange('') }, `${wallet.key}_${index}`))))] })), isSearchEnabled && !filterValue && projectSettings && (jsx(SearchNotFoundMessage, {}))] }) }), showDefaultFooter && (jsx("div", { className: classNames('wallet-list__tiny-footer', {
87
84
  'wallet-list__tiny-footer--hidden': footerIsVisible,
88
85
  }), "data-testid": 'wallet-list-tiny-footer' }))] }));
89
86
  };
@@ -4,7 +4,7 @@ interface IChain {
4
4
  enabled: boolean;
5
5
  name: string;
6
6
  }
7
- export declare const getEnabledChains: (chains: IChain[]) => ("STARK" | "ETH" | "FLOW" | "SOL" | "EVM" | "ALGO" | "ATOM" | "COSMOS")[];
7
+ export declare const getEnabledChains: (chains: IChain[]) => ("STARK" | "ETH" | "FLOW" | "SOL" | "EVM" | "ALGO" | "ATOM" | "COSMOS" | "BTC")[];
8
8
  type BaseGetSupportedWalletOpts = Omit<GetSupportedWalletsOpts, 'isWalletConnectV2Enabled' | 'walletConnectProjectId' | 'chainRpcProviders'>;
9
9
  export declare const getWallets: (props: {
10
10
  getSupportedWalletOpts: BaseGetSupportedWalletOpts;
@@ -84,10 +84,13 @@ const DynamicWidgetWalletHeader = ({ variant, }) => {
84
84
  const { supportsFunding, setShowFunding, fundingEnabled } = FundingContext.useFundingContext();
85
85
  const { setDynamicWidgetView, setIsOpen } = DynamicWidgetContext.useWidgetContext();
86
86
  const isSendBalanceEnabled = React.useMemo(() => {
87
+ var _a;
87
88
  const connector = primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector;
88
89
  if (!connector)
89
90
  return false;
90
- return walletConnectorCore.isEmbeddedConnector(connector);
91
+ // @todo: QNTM-804 Remove supported chains check to support other chains
92
+ return (((_a = connector.supportedChains) === null || _a === void 0 ? void 0 : _a.includes('EVM')) &&
93
+ walletConnectorCore.isEmbeddedConnector(connector));
91
94
  }, [primaryWallet]);
92
95
  const handleOnClickSend = () => {
93
96
  if (variant === 'dropdown') {
@@ -76,10 +76,13 @@ const DynamicWidgetWalletHeader = ({ variant, }) => {
76
76
  const { supportsFunding, setShowFunding, fundingEnabled } = useFundingContext();
77
77
  const { setDynamicWidgetView, setIsOpen } = useWidgetContext();
78
78
  const isSendBalanceEnabled = useMemo(() => {
79
+ var _a;
79
80
  const connector = primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector;
80
81
  if (!connector)
81
82
  return false;
82
- return isEmbeddedConnector(connector);
83
+ // @todo: QNTM-804 Remove supported chains check to support other chains
84
+ return (((_a = connector.supportedChains) === null || _a === void 0 ? void 0 : _a.includes('EVM')) &&
85
+ isEmbeddedConnector(connector));
83
86
  }, [primaryWallet]);
84
87
  const handleOnClickSend = () => {
85
88
  if (variant === 'dropdown') {
@@ -1 +0,0 @@
1
- export { useFetchNetworkConfigurations } from './useFetchNetworkConfigurations';