@dynamic-labs/sdk-react-core 1.1.0-alpha.6 → 1.1.0-alpha.8

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 (84) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +12 -11
  5. package/src/index.cjs +2 -0
  6. package/src/index.js +1 -0
  7. package/src/lib/components/ChainCard/ChainCard.d.ts +2 -2
  8. package/src/lib/components/SelectWalletChainLayout/SelectWalletChainLayout.cjs +5 -1
  9. package/src/lib/components/SelectWalletChainLayout/SelectWalletChainLayout.js +5 -1
  10. package/src/lib/context/DynamicContext/DynamicContext.cjs +18 -3
  11. package/src/lib/context/DynamicContext/DynamicContext.js +18 -3
  12. package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.cjs +29 -7
  13. package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.d.ts +4 -4
  14. package/src/lib/context/DynamicContext/hooks/useSetShowAuthFlowWithInit/useSetShowAuthFlowWithInit.js +29 -7
  15. package/src/lib/context/DynamicContext/hooks/useSetShowLinkNewWalletModalWithInit/index.d.ts +1 -0
  16. package/src/lib/context/DynamicContext/hooks/useSetShowLinkNewWalletModalWithInit/useSetShowLinkNewWalletModalWithInit.cjs +54 -0
  17. package/src/lib/context/DynamicContext/hooks/useSetShowLinkNewWalletModalWithInit/useSetShowLinkNewWalletModalWithInit.d.ts +18 -0
  18. package/src/lib/context/DynamicContext/hooks/useSetShowLinkNewWalletModalWithInit/useSetShowLinkNewWalletModalWithInit.js +50 -0
  19. package/src/lib/context/DynamicContext/types/index.d.ts +1 -0
  20. package/src/lib/context/DynamicContext/useDynamicContext.cjs +2 -1
  21. package/src/lib/context/DynamicContext/useDynamicContext.d.ts +1 -1
  22. package/src/lib/context/DynamicContext/useDynamicContext.js +2 -1
  23. package/src/lib/context/FundingContext/FundingContext.cjs +4 -1
  24. package/src/lib/context/FundingContext/FundingContext.js +4 -1
  25. package/src/lib/context/ViewContext/ViewContext.d.ts +1 -1
  26. package/src/lib/locale/en/translation.cjs +20 -2
  27. package/src/lib/locale/en/translation.d.ts +19 -1
  28. package/src/lib/locale/en/translation.js +20 -2
  29. package/src/lib/shared/assets/alt-key.cjs +54 -0
  30. package/src/lib/shared/assets/alt-key.js +30 -0
  31. package/src/lib/shared/assets/index.d.ts +1 -0
  32. package/src/lib/styles/index.shadow.cjs +1 -1
  33. package/src/lib/styles/index.shadow.js +1 -1
  34. package/src/lib/utils/functions/walletListBuilder/utils/filterConnectedWallets/filterConnectedWallets.cjs +13 -2
  35. package/src/lib/utils/functions/walletListBuilder/utils/filterConnectedWallets/filterConnectedWallets.js +13 -2
  36. package/src/lib/utils/hooks/index.d.ts +1 -0
  37. package/src/lib/utils/hooks/multiWallet/useMultiWallet/useMultiWallet.cjs +3 -2
  38. package/src/lib/utils/hooks/multiWallet/useMultiWallet/useMultiWallet.d.ts +6 -1
  39. package/src/lib/utils/hooks/multiWallet/useMultiWallet/useMultiWallet.js +3 -2
  40. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +2 -1
  41. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +2 -1
  42. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.cjs +18 -11
  43. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.d.ts +1 -1
  44. package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.js +18 -11
  45. package/src/lib/utils/hooks/useWalletConnectorNetwork/index.d.ts +1 -0
  46. package/src/lib/utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.cjs +42 -0
  47. package/src/lib/utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.d.ts +18 -0
  48. package/src/lib/utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.js +38 -0
  49. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +19 -17
  50. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +19 -17
  51. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs +55 -30
  52. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.d.ts +7 -1
  53. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js +55 -31
  54. package/src/lib/views/LoginView/LoginView.cjs +60 -7
  55. package/src/lib/views/LoginView/LoginView.js +60 -7
  56. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +3 -4
  57. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +3 -4
  58. package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs +3 -6
  59. package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js +3 -6
  60. package/src/lib/views/WalletGroupView/WalletGroupView.cjs +70 -1
  61. package/src/lib/views/WalletGroupView/WalletGroupView.js +71 -2
  62. package/src/lib/views/WalletGroupView/components/HardwareWalletToggle/HardwareWalletToggle.cjs +72 -0
  63. package/src/lib/views/WalletGroupView/components/HardwareWalletToggle/HardwareWalletToggle.d.ts +7 -0
  64. package/src/lib/views/WalletGroupView/components/HardwareWalletToggle/HardwareWalletToggle.js +68 -0
  65. package/src/lib/views/WalletGroupView/components/HardwareWalletToggle/index.d.ts +1 -0
  66. package/src/lib/views/WalletGroupView/components/WalletGroupItem/WalletGroupItem.cjs +2 -4
  67. package/src/lib/views/WalletGroupView/components/WalletGroupItem/WalletGroupItem.d.ts +2 -1
  68. package/src/lib/views/WalletGroupView/components/WalletGroupItem/WalletGroupItem.js +2 -4
  69. package/src/lib/views/viewToComponentMap.cjs +1 -0
  70. package/src/lib/views/viewToComponentMap.js +1 -0
  71. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveBitcoinWalletAddresses/ActiveBitcoinWalletAddresses.cjs +76 -0
  72. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveBitcoinWalletAddresses/ActiveBitcoinWalletAddresses.d.ts +9 -0
  73. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveBitcoinWalletAddresses/ActiveBitcoinWalletAddresses.js +72 -0
  74. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveBitcoinWalletAddresses/index.d.ts +1 -0
  75. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletAddress/ActiveWalletAddress.cjs +67 -0
  76. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletAddress/ActiveWalletAddress.d.ts +9 -0
  77. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletAddress/ActiveWalletAddress.js +63 -0
  78. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletAddress/index.d.ts +1 -0
  79. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +7 -5
  80. package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +7 -5
  81. package/src/lib/widgets/DynamicWidget/views/WalletSettingsView/WalletSettingsView.cjs +8 -6
  82. package/src/lib/widgets/DynamicWidget/views/WalletSettingsView/WalletSettingsView.js +8 -6
  83. package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.cjs +2 -2
  84. package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.js +2 -2
@@ -28,8 +28,8 @@ const initExport = ({ iframeContainer, iframeElementId, wallet, }) => __awaiter(
28
28
  }
29
29
  return turnkeyExportHandler;
30
30
  });
31
- const exportCredential = ({ authToken, userEmail, wallet, environmentId, }) => __awaiter(void 0, void 0, void 0, function* () {
32
- var _b, _c;
31
+ const handleExportInitCheck = ({ authToken, userEmail, wallet, }) => {
32
+ var _a, _b;
33
33
  if (!authToken) {
34
34
  throw new DynamicError('User must be logged in');
35
35
  }
@@ -44,7 +44,7 @@ const exportCredential = ({ authToken, userEmail, wallet, environmentId, }) => _
44
44
  }
45
45
  const connector = wallet.connector;
46
46
  connector.setEmail(userEmail);
47
- const walletProperties = (_c = (_b = decodedJwt.verifiedCredentials) === null || _b === void 0 ? void 0 : _b.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'))) === null || _c === void 0 ? void 0 : _c.walletProperties;
47
+ const walletProperties = (_b = (_a = decodedJwt.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'))) === null || _b === void 0 ? void 0 : _b.walletProperties;
48
48
  const turnkeyHDWalletId = walletProperties === null || walletProperties === void 0 ? void 0 : walletProperties.turnkeyHDWalletId;
49
49
  const privateKeyId = walletProperties === null || walletProperties === void 0 ? void 0 : walletProperties.turnkeyPrivateKeyId;
50
50
  const organizationId = walletProperties === null || walletProperties === void 0 ? void 0 : walletProperties.turnkeySubOrganizationId;
@@ -52,57 +52,81 @@ const exportCredential = ({ authToken, userEmail, wallet, environmentId, }) => _
52
52
  (turnkeyHDWalletId === undefined && privateKeyId === undefined)) {
53
53
  throw new DynamicError('Invalid token!');
54
54
  }
55
+ return {
56
+ connector,
57
+ organizationId,
58
+ privateKeyId,
59
+ turnkeyHDWalletId,
60
+ };
61
+ };
62
+ const extractExportBundle = ({ address, privateKeyId, activity, }) => {
63
+ var _a, _b, _c;
64
+ const exportWalletResult = address
65
+ ? (_a = activity.result) === null || _a === void 0 ? void 0 : _a.exportWalletAccountResult
66
+ : (_b = activity.result) === null || _b === void 0 ? void 0 : _b.exportWalletResult;
67
+ const result = privateKeyId
68
+ ? (_c = activity.result) === null || _c === void 0 ? void 0 : _c.exportPrivateKeyResult
69
+ : exportWalletResult;
70
+ return result === null || result === void 0 ? void 0 : result.exportBundle;
71
+ };
72
+ const exportCredential = ({ authToken, userEmail, wallet, environmentId, address, }) => __awaiter(void 0, void 0, void 0, function* () {
73
+ const { connector, turnkeyHDWalletId, privateKeyId, organizationId } = handleExportInitCheck({
74
+ authToken,
75
+ userEmail,
76
+ wallet,
77
+ });
55
78
  const turnkeyExportHandler = connector.getExportHandler();
56
79
  const targetPublicKey = turnkeyExportHandler.publicKey;
57
80
  if (!targetPublicKey) {
58
81
  throw new DynamicError('Must initialize export first');
59
82
  }
60
83
  // calls turnkey export api
84
+ let newActivity;
61
85
  if (turnkeyHDWalletId) {
62
- const newActivity = yield turnkeyExportHandler.exportWallet({
86
+ newActivity = yield turnkeyExportHandler.exportWallet({
87
+ address,
63
88
  organizationId,
64
89
  walletId: turnkeyHDWalletId,
65
90
  });
66
- const activityId = newActivity.id;
67
- const res = yield exportEmbeddedWallet({
68
- activityId,
69
- environmentId,
70
- userJwt: authToken,
71
- walletId: wallet.id,
72
- });
73
- const exportBundle = res === null || res === void 0 ? void 0 : res.exportBundle;
74
- if (!exportBundle) {
75
- throw new DynamicError('Invalid export response');
76
- }
77
- const injected = yield turnkeyExportHandler.verifyExportWallet(exportBundle);
78
- return injected;
79
91
  }
80
92
  else if (privateKeyId) {
81
- const newActivity = yield turnkeyExportHandler.exportPrivateKey({
93
+ newActivity = yield turnkeyExportHandler.exportPrivateKey({
82
94
  organizationId,
83
95
  privateKeyId,
84
96
  });
85
- const activityId = newActivity.id;
97
+ }
98
+ const activityId = newActivity.id;
99
+ const activityStatus = newActivity.status;
100
+ let exportBundle;
101
+ if (activityStatus === 'ACTIVITY_STATUS_COMPLETED') {
102
+ exportBundle = extractExportBundle({
103
+ activity: newActivity,
104
+ address,
105
+ privateKeyId,
106
+ });
107
+ }
108
+ else {
86
109
  const res = yield exportEmbeddedWallet({
87
110
  activityId,
88
111
  environmentId,
89
- userJwt: authToken,
90
- walletId: wallet.id,
112
+ userJwt: authToken || '',
113
+ walletId: (wallet === null || wallet === void 0 ? void 0 : wallet.id) || '',
91
114
  });
92
- const exportBundle = res === null || res === void 0 ? void 0 : res.exportBundle;
93
- if (!exportBundle) {
94
- throw new DynamicError('Invalid export response');
95
- }
96
- const injected = yield turnkeyExportHandler.verifyExportPrivateKey(exportBundle);
97
- return injected;
115
+ exportBundle = res === null || res === void 0 ? void 0 : res.exportBundle;
116
+ }
117
+ if (!exportBundle) {
118
+ throw new DynamicError('Invalid export response');
119
+ }
120
+ if (address || privateKeyId) {
121
+ return turnkeyExportHandler.verifyExportPrivateKey(exportBundle);
98
122
  }
99
- throw new DynamicError('Invalid token!');
123
+ return turnkeyExportHandler.verifyExportWallet(exportBundle);
100
124
  });
101
125
  const cleanupExport = ({ wallet }) => __awaiter(void 0, void 0, void 0, function* () {
102
- var _d;
126
+ var _b;
103
127
  const connector = wallet === null || wallet === void 0 ? void 0 : wallet.connector;
104
128
  // clear iframeStamper and its reference
105
- (_d = connector === null || connector === void 0 ? void 0 : connector.getExportHandler()) === null || _d === void 0 ? void 0 : _d.clear();
129
+ (_b = connector === null || connector === void 0 ? void 0 : connector.getExportHandler()) === null || _b === void 0 ? void 0 : _b.clear();
106
130
  });
107
131
 
108
- export { cleanupExport, exportCredential, initExport };
132
+ export { cleanupExport, exportCredential, extractExportBundle, initExport };
@@ -12,6 +12,57 @@ var LoadingContext = require('../../context/LoadingContext/LoadingContext.cjs');
12
12
  var classNames = require('../../utils/functions/classNames/classNames.cjs');
13
13
  var ViewContext = require('../../context/ViewContext/ViewContext.cjs');
14
14
  var WalletList = require('../WalletList/WalletList.cjs');
15
+ require('../../events/dynamicEvents.cjs');
16
+ require('@dynamic-labs/utils');
17
+ require('../../context/DynamicContext/DynamicContext.cjs');
18
+ require('@dynamic-labs/wallet-connector-core');
19
+ require('../../context/CaptchaContext/CaptchaContext.cjs');
20
+ require('../../shared/logger.cjs');
21
+ require('@dynamic-labs/iconic');
22
+ require('@dynamic-labs/wallet-book');
23
+ require('../../utils/constants/colors.cjs');
24
+ require('../../shared/utils/classes/storage/localStorage.cjs');
25
+ require('viem');
26
+ require('../../shared/consts/index.cjs');
27
+ require('@dynamic-labs/multi-wallet');
28
+ require('../../context/AccessDeniedContext/AccessDeniedContext.cjs');
29
+ require('../../context/AccountExistsContext/AccountExistsContext.cjs');
30
+ require('../../config/ApiEndpoint.cjs');
31
+ require('../../context/EmailVerificationContext/EmailVerificationContext.cjs');
32
+ require('react-dom');
33
+ require('../../context/ThemeContext/ThemeContext.cjs');
34
+ require('@dynamic-labs/types');
35
+ require('yup');
36
+ require('react-i18next');
37
+ require('../../context/MockContext/MockContext.cjs');
38
+ require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
39
+ require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
40
+ require('@dynamic-labs/rpc-providers');
41
+ require('../../context/UserWalletsContext/UserWalletsContext.cjs');
42
+ require('../../components/Transition/ZoomTransition/ZoomTransition.cjs');
43
+ require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
44
+ require('../../components/Transition/OpacityTransition/OpacityTransition.cjs');
45
+ require('../../components/ShadowDOM/ShadowDOM.cjs');
46
+ require('../../components/OverlayCard/OverlayCard.context.cjs');
47
+ require('../../context/FooterAnimationContext/index.cjs');
48
+ require('../../context/QrCodeContext/QrCodeContext.cjs');
49
+ var Typography = require('../../components/Typography/Typography.cjs');
50
+ require('../../context/WalletGroupContext/WalletGroupContext.cjs');
51
+ require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
52
+ require('react-focus-lock');
53
+ require('qrcode');
54
+ require('i18next');
55
+ require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
56
+ require('../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.cjs');
57
+ require('formik');
58
+ require('../../components/IconButton/IconButton.cjs');
59
+ require('../../components/Alert/Alert.cjs');
60
+ require('@dynamic-labs/viem-utils');
61
+ require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
62
+ require('../../components/InlineWidget/InlineWidget.cjs');
63
+ require('../../components/MenuList/Dropdown/Dropdown.cjs');
64
+ require('../../components/Popper/Popper/Popper.cjs');
65
+ require('../../components/Popper/PopperContext/PopperContext.cjs');
15
66
  var LoginEmailForm = require('./sections/EmailSignInSection/LoginEmailForm.cjs');
16
67
  var WalletSignInSection = require('./sections/WalletSignInSection/WalletSignInSection.cjs');
17
68
  var SocialSignInSection = require('./sections/SocialSignInSection/SocialSignInSection.cjs');
@@ -45,17 +96,19 @@ const LoginView = () => {
45
96
  const numOfWallets = ((_a = logingViewSections.find((section) => section.type === sdkApi.SdkViewSectionType.Wallet)) === null || _a === void 0 ? void 0 : _a.numOfItemsToDisplay) || 0;
46
97
  const renderViewSections = React.useMemo(() => logingViewSections.map((viewSection, index) => {
47
98
  switch (viewSection.type) {
48
- case 'separator':
99
+ case sdkApi.SdkViewSectionType.Separator:
49
100
  return (jsxRuntime.jsx(Divider.Divider, { text: viewSection.label }, `${viewSection.type}_${index}`));
50
- case 'email':
101
+ case sdkApi.SdkViewSectionType.Email:
51
102
  return (jsxRuntime.jsx(LoginEmailForm.LoginEmailForm, { onSubmit: () => setIsLoading(true), onSubmitError: () => setIsLoading(false), isLoading: isLoading }, `${viewSection.type}_${index}`));
52
- case 'wallet':
103
+ case sdkApi.SdkViewSectionType.Wallet:
53
104
  return (jsxRuntime.jsx(WalletSignInSection.WalletSignInSection, { numberOfItensToShow: viewSection.numOfItemsToDisplay || 0, onSubmit: () => {
54
105
  setView('login-with-email-or-wallet-full-wallet-list'); // this view is just to show the back button
55
106
  setShowWalletList(true);
56
107
  }, isLoading: isLoading }, `${viewSection.type}_${index}`));
57
- case 'social':
108
+ case sdkApi.SdkViewSectionType.Social:
58
109
  return (jsxRuntime.jsx(SocialSignInSection.SocialSignInSection, { collapsedLayout: numOfWallets > 1, sectionData: viewSection }, `${viewSection.type}_${index}`));
110
+ case sdkApi.SdkViewSectionType.Text:
111
+ return (jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', color: 'secondary', align: viewSection.alignment, className: 'login-view__text', children: viewSection.label }, `${viewSection.type}_${index}`));
59
112
  default:
60
113
  return null;
61
114
  }
@@ -63,9 +116,9 @@ const LoginView = () => {
63
116
  if (showWalletList) {
64
117
  return jsxRuntime.jsx(WalletList.WalletList, {});
65
118
  }
66
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [error && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { className: 'login-with-email__error-container', withIcon: false, children: error })), jsxRuntime.jsx("div", { className: classNames.classNames('login-with-email__container', {
67
- 'login-with-email__container--error': Boolean(error),
68
- }), children: jsxRuntime.jsx("div", { className: 'login-with-email__scroll', "data-testid": 'login-with-email-scroll', children: renderViewSections }) })] }));
119
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [error && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { className: 'login-view__error-container', withIcon: false, children: error })), jsxRuntime.jsx("div", { className: classNames.classNames('login-view__container', {
120
+ 'login-view__container--error': Boolean(error),
121
+ }), children: jsxRuntime.jsx("div", { className: 'login-view__scroll', "data-testid": 'login-view-scroll', children: renderViewSections }) })] }));
69
122
  };
70
123
 
71
124
  exports.LoginView = LoginView;
@@ -8,6 +8,57 @@ import { useLoadingContext } from '../../context/LoadingContext/LoadingContext.j
8
8
  import { classNames } from '../../utils/functions/classNames/classNames.js';
9
9
  import { useViewContext } from '../../context/ViewContext/ViewContext.js';
10
10
  import { WalletList } from '../WalletList/WalletList.js';
11
+ import '../../events/dynamicEvents.js';
12
+ import '@dynamic-labs/utils';
13
+ import '../../context/DynamicContext/DynamicContext.js';
14
+ import '@dynamic-labs/wallet-connector-core';
15
+ import '../../context/CaptchaContext/CaptchaContext.js';
16
+ import '../../shared/logger.js';
17
+ import '@dynamic-labs/iconic';
18
+ import '@dynamic-labs/wallet-book';
19
+ import '../../utils/constants/colors.js';
20
+ import '../../shared/utils/classes/storage/localStorage.js';
21
+ import 'viem';
22
+ import '../../shared/consts/index.js';
23
+ import '@dynamic-labs/multi-wallet';
24
+ import '../../context/AccessDeniedContext/AccessDeniedContext.js';
25
+ import '../../context/AccountExistsContext/AccountExistsContext.js';
26
+ import '../../config/ApiEndpoint.js';
27
+ import '../../context/EmailVerificationContext/EmailVerificationContext.js';
28
+ import 'react-dom';
29
+ import '../../context/ThemeContext/ThemeContext.js';
30
+ import '@dynamic-labs/types';
31
+ import 'yup';
32
+ import 'react-i18next';
33
+ import '../../context/MockContext/MockContext.js';
34
+ import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js';
35
+ import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
36
+ import '@dynamic-labs/rpc-providers';
37
+ import '../../context/UserWalletsContext/UserWalletsContext.js';
38
+ import '../../components/Transition/ZoomTransition/ZoomTransition.js';
39
+ import '../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
40
+ import '../../components/Transition/OpacityTransition/OpacityTransition.js';
41
+ import '../../components/ShadowDOM/ShadowDOM.js';
42
+ import '../../components/OverlayCard/OverlayCard.context.js';
43
+ import '../../context/FooterAnimationContext/index.js';
44
+ import '../../context/QrCodeContext/QrCodeContext.js';
45
+ import { Typography } from '../../components/Typography/Typography.js';
46
+ import '../../context/WalletGroupContext/WalletGroupContext.js';
47
+ import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
48
+ import 'react-focus-lock';
49
+ import 'qrcode';
50
+ import 'i18next';
51
+ import '../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
52
+ import '../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.js';
53
+ import 'formik';
54
+ import '../../components/IconButton/IconButton.js';
55
+ import '../../components/Alert/Alert.js';
56
+ import '@dynamic-labs/viem-utils';
57
+ import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
58
+ import '../../components/InlineWidget/InlineWidget.js';
59
+ import '../../components/MenuList/Dropdown/Dropdown.js';
60
+ import '../../components/Popper/Popper/Popper.js';
61
+ import '../../components/Popper/PopperContext/PopperContext.js';
11
62
  import { LoginEmailForm } from './sections/EmailSignInSection/LoginEmailForm.js';
12
63
  import { WalletSignInSection } from './sections/WalletSignInSection/WalletSignInSection.js';
13
64
  import { SocialSignInSection } from './sections/SocialSignInSection/SocialSignInSection.js';
@@ -41,17 +92,19 @@ const LoginView = () => {
41
92
  const numOfWallets = ((_a = logingViewSections.find((section) => section.type === SdkViewSectionType.Wallet)) === null || _a === void 0 ? void 0 : _a.numOfItemsToDisplay) || 0;
42
93
  const renderViewSections = useMemo(() => logingViewSections.map((viewSection, index) => {
43
94
  switch (viewSection.type) {
44
- case 'separator':
95
+ case SdkViewSectionType.Separator:
45
96
  return (jsx(Divider, { text: viewSection.label }, `${viewSection.type}_${index}`));
46
- case 'email':
97
+ case SdkViewSectionType.Email:
47
98
  return (jsx(LoginEmailForm, { onSubmit: () => setIsLoading(true), onSubmitError: () => setIsLoading(false), isLoading: isLoading }, `${viewSection.type}_${index}`));
48
- case 'wallet':
99
+ case SdkViewSectionType.Wallet:
49
100
  return (jsx(WalletSignInSection, { numberOfItensToShow: viewSection.numOfItemsToDisplay || 0, onSubmit: () => {
50
101
  setView('login-with-email-or-wallet-full-wallet-list'); // this view is just to show the back button
51
102
  setShowWalletList(true);
52
103
  }, isLoading: isLoading }, `${viewSection.type}_${index}`));
53
- case 'social':
104
+ case SdkViewSectionType.Social:
54
105
  return (jsx(SocialSignInSection, { collapsedLayout: numOfWallets > 1, sectionData: viewSection }, `${viewSection.type}_${index}`));
106
+ case SdkViewSectionType.Text:
107
+ return (jsx(Typography, { variant: 'body_normal', color: 'secondary', align: viewSection.alignment, className: 'login-view__text', children: viewSection.label }, `${viewSection.type}_${index}`));
55
108
  default:
56
109
  return null;
57
110
  }
@@ -59,9 +112,9 @@ const LoginView = () => {
59
112
  if (showWalletList) {
60
113
  return jsx(WalletList, {});
61
114
  }
62
- return (jsxs(Fragment, { children: [error && (jsx(ErrorContainer, { className: 'login-with-email__error-container', withIcon: false, children: error })), jsx("div", { className: classNames('login-with-email__container', {
63
- 'login-with-email__container--error': Boolean(error),
64
- }), children: jsx("div", { className: 'login-with-email__scroll', "data-testid": 'login-with-email-scroll', children: renderViewSections }) })] }));
115
+ return (jsxs(Fragment, { children: [error && (jsx(ErrorContainer, { className: 'login-view__error-container', withIcon: false, children: error })), jsx("div", { className: classNames('login-view__container', {
116
+ 'login-view__container--error': Boolean(error),
117
+ }), children: jsx("div", { className: 'login-view__scroll', "data-testid": 'login-view-scroll', children: renderViewSections }) })] }));
65
118
  };
66
119
 
67
120
  export { LoginView };
@@ -31,7 +31,6 @@ require('../../context/CaptchaContext/CaptchaContext.cjs');
31
31
  require('../../context/EmailVerificationContext/EmailVerificationContext.cjs');
32
32
  require('react-dom');
33
33
  require('../../context/ThemeContext/ThemeContext.cjs');
34
- var usePromise = require('../../utils/hooks/usePromise/usePromise.cjs');
35
34
  require('@dynamic-labs/types');
36
35
  require('yup');
37
36
  require('../../context/MockContext/MockContext.cjs');
@@ -61,6 +60,7 @@ require('../../components/IconButton/IconButton.cjs');
61
60
  require('../../components/Alert/Alert.cjs');
62
61
  require('@dynamic-labs/viem-utils');
63
62
  require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
63
+ var useWalletConnectorNetwork = require('../../utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.cjs');
64
64
  require('../../components/InlineWidget/InlineWidget.cjs');
65
65
  require('../../components/MenuList/Dropdown/Dropdown.cjs');
66
66
  require('../../components/Popper/Popper/Popper.cjs');
@@ -70,10 +70,9 @@ var UserAddress = require('../../components/UserAddress/UserAddress.cjs');
70
70
  var SelectNetworkButton = require('../../components/SelectNetworkButton/SelectNetworkButton.cjs');
71
71
 
72
72
  const NetworkNotSupported = () => {
73
- const { onboardingImageUrl, selectedWalletConnector: walletConnector, connectedWallets, primaryWallet, isFullyConnected, setShowAuthFlow, bridgeChainsToConnect, } = useInternalDynamicContext.useInternalDynamicContext();
73
+ const { onboardingImageUrl, selectedWalletConnector: walletConnector, isFullyConnected, setShowAuthFlow, bridgeChainsToConnect, } = useInternalDynamicContext.useInternalDynamicContext();
74
74
  const { t } = reactI18next.useTranslation();
75
- // Refresh selectedWalletConnector network when primaryWallet or connectedWallets updates
76
- const { data: walletConnectorNetwork } = usePromise.usePromise(() => walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.getNetwork(), { deps: [primaryWallet, walletConnector, connectedWallets] });
75
+ const { network: walletConnectorNetwork } = useWalletConnectorNetwork.useWalletConnectorNetwork(walletConnector);
77
76
  const finishConnectAndSign = useConnectAndSign.useConnectAndSign({
78
77
  shouldCallCallback: false,
79
78
  shouldUpdateWallets: !isFullyConnected ||
@@ -27,7 +27,6 @@ import '../../context/CaptchaContext/CaptchaContext.js';
27
27
  import '../../context/EmailVerificationContext/EmailVerificationContext.js';
28
28
  import 'react-dom';
29
29
  import '../../context/ThemeContext/ThemeContext.js';
30
- import { usePromise } from '../../utils/hooks/usePromise/usePromise.js';
31
30
  import '@dynamic-labs/types';
32
31
  import 'yup';
33
32
  import '../../context/MockContext/MockContext.js';
@@ -57,6 +56,7 @@ import '../../components/IconButton/IconButton.js';
57
56
  import '../../components/Alert/Alert.js';
58
57
  import '@dynamic-labs/viem-utils';
59
58
  import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
59
+ import { useWalletConnectorNetwork } from '../../utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.js';
60
60
  import '../../components/InlineWidget/InlineWidget.js';
61
61
  import '../../components/MenuList/Dropdown/Dropdown.js';
62
62
  import '../../components/Popper/Popper/Popper.js';
@@ -66,10 +66,9 @@ import { UserAddress } from '../../components/UserAddress/UserAddress.js';
66
66
  import { SelectNetworkButton } from '../../components/SelectNetworkButton/SelectNetworkButton.js';
67
67
 
68
68
  const NetworkNotSupported = () => {
69
- const { onboardingImageUrl, selectedWalletConnector: walletConnector, connectedWallets, primaryWallet, isFullyConnected, setShowAuthFlow, bridgeChainsToConnect, } = useInternalDynamicContext();
69
+ const { onboardingImageUrl, selectedWalletConnector: walletConnector, isFullyConnected, setShowAuthFlow, bridgeChainsToConnect, } = useInternalDynamicContext();
70
70
  const { t } = useTranslation();
71
- // Refresh selectedWalletConnector network when primaryWallet or connectedWallets updates
72
- const { data: walletConnectorNetwork } = usePromise(() => walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.getNetwork(), { deps: [primaryWallet, walletConnector, connectedWallets] });
71
+ const { network: walletConnectorNetwork } = useWalletConnectorNetwork(walletConnector);
73
72
  const finishConnectAndSign = useConnectAndSign({
74
73
  shouldCallCallback: false,
75
74
  shouldUpdateWallets: !isFullyConnected ||
@@ -31,7 +31,6 @@ require('../../context/CaptchaContext/CaptchaContext.cjs');
31
31
  require('../../context/EmailVerificationContext/EmailVerificationContext.cjs');
32
32
  require('react-dom');
33
33
  require('../../context/ThemeContext/ThemeContext.cjs');
34
- var usePromise = require('../../utils/hooks/usePromise/usePromise.cjs');
35
34
  require('@dynamic-labs/types');
36
35
  require('yup');
37
36
  require('../../context/MockContext/MockContext.cjs');
@@ -61,6 +60,7 @@ require('../../components/IconButton/IconButton.cjs');
61
60
  require('../../components/Alert/Alert.cjs');
62
61
  require('@dynamic-labs/viem-utils');
63
62
  require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
63
+ var useWalletConnectorNetwork = require('../../utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.cjs');
64
64
  require('../../components/InlineWidget/InlineWidget.cjs');
65
65
  require('../../components/MenuList/Dropdown/Dropdown.cjs');
66
66
  require('../../components/Popper/Popper/Popper.cjs');
@@ -70,12 +70,9 @@ require('../../components/Popper/PopperContext/PopperContext.cjs');
70
70
  // as the wallet does not support programmatic network change.
71
71
  const NetworkNotSupportedSwitchManual = () => {
72
72
  var _a, _b;
73
- const { user, selectedWalletConnector: walletConnector, connectedWallets, isFullyConnected, setShowAuthFlow, bridgeChainsToConnect, } = useInternalDynamicContext.useInternalDynamicContext();
73
+ const { user, selectedWalletConnector: walletConnector, isFullyConnected, setShowAuthFlow, bridgeChainsToConnect, } = useInternalDynamicContext.useInternalDynamicContext();
74
74
  const { t } = reactI18next.useTranslation();
75
- // Refresh selectedWalletConnector network when primaryWallet or connectedWallets updates
76
- const { data: walletConnectorNetwork } = usePromise.usePromise(() => walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.getNetwork(), {
77
- deps: [walletConnector, connectedWallets],
78
- });
75
+ const { network: walletConnectorNetwork } = useWalletConnectorNetwork.useWalletConnectorNetwork(walletConnector);
79
76
  const finishConnectAndSign = useConnectAndSign.useConnectAndSign({
80
77
  shouldCallCallback: false,
81
78
  shouldUpdateWallets: !isFullyConnected ||
@@ -27,7 +27,6 @@ import '../../context/CaptchaContext/CaptchaContext.js';
27
27
  import '../../context/EmailVerificationContext/EmailVerificationContext.js';
28
28
  import 'react-dom';
29
29
  import '../../context/ThemeContext/ThemeContext.js';
30
- import { usePromise } from '../../utils/hooks/usePromise/usePromise.js';
31
30
  import '@dynamic-labs/types';
32
31
  import 'yup';
33
32
  import '../../context/MockContext/MockContext.js';
@@ -57,6 +56,7 @@ import '../../components/IconButton/IconButton.js';
57
56
  import '../../components/Alert/Alert.js';
58
57
  import '@dynamic-labs/viem-utils';
59
58
  import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
59
+ import { useWalletConnectorNetwork } from '../../utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.js';
60
60
  import '../../components/InlineWidget/InlineWidget.js';
61
61
  import '../../components/MenuList/Dropdown/Dropdown.js';
62
62
  import '../../components/Popper/Popper/Popper.js';
@@ -66,12 +66,9 @@ import '../../components/Popper/PopperContext/PopperContext.js';
66
66
  // as the wallet does not support programmatic network change.
67
67
  const NetworkNotSupportedSwitchManual = () => {
68
68
  var _a, _b;
69
- const { user, selectedWalletConnector: walletConnector, connectedWallets, isFullyConnected, setShowAuthFlow, bridgeChainsToConnect, } = useInternalDynamicContext();
69
+ const { user, selectedWalletConnector: walletConnector, isFullyConnected, setShowAuthFlow, bridgeChainsToConnect, } = useInternalDynamicContext();
70
70
  const { t } = useTranslation();
71
- // Refresh selectedWalletConnector network when primaryWallet or connectedWallets updates
72
- const { data: walletConnectorNetwork } = usePromise(() => walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.getNetwork(), {
73
- deps: [walletConnector, connectedWallets],
74
- });
71
+ const { network: walletConnectorNetwork } = useWalletConnectorNetwork(walletConnector);
75
72
  const finishConnectAndSign = useConnectAndSign({
76
73
  shouldCallCallback: false,
77
74
  shouldUpdateWallets: !isFullyConnected ||
@@ -3,19 +3,88 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
+ var React = require('react');
6
7
  var walletBook = require('@dynamic-labs/wallet-book');
7
8
  var SelectWalletChainLayout = require('../../components/SelectWalletChainLayout/SelectWalletChainLayout.cjs');
8
9
  var WalletGroupContext = require('../../context/WalletGroupContext/WalletGroupContext.cjs');
10
+ require('../../events/dynamicEvents.cjs');
11
+ require('@dynamic-labs/utils');
12
+ require('../../context/DynamicContext/DynamicContext.cjs');
13
+ require('@dynamic-labs/wallet-connector-core');
14
+ require('../../context/CaptchaContext/CaptchaContext.cjs');
15
+ require('../../context/ErrorContext/ErrorContext.cjs');
16
+ require('../../context/ViewContext/ViewContext.cjs');
17
+ require('@dynamic-labs/sdk-api');
18
+ require('../../shared/logger.cjs');
19
+ require('@dynamic-labs/iconic');
20
+ require('../../utils/constants/colors.cjs');
21
+ require('../../shared/utils/classes/storage/localStorage.cjs');
22
+ require('viem');
23
+ require('../../shared/consts/index.cjs');
24
+ require('@dynamic-labs/multi-wallet');
25
+ require('../../context/AccessDeniedContext/AccessDeniedContext.cjs');
26
+ require('../../context/AccountExistsContext/AccountExistsContext.cjs');
27
+ require('../../config/ApiEndpoint.cjs');
28
+ require('../../context/EmailVerificationContext/EmailVerificationContext.cjs');
29
+ require('react-dom');
30
+ require('../../context/ThemeContext/ThemeContext.cjs');
31
+ require('@dynamic-labs/types');
32
+ require('yup');
33
+ require('react-i18next');
34
+ require('../../context/MockContext/MockContext.cjs');
35
+ require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
36
+ require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
37
+ require('@dynamic-labs/rpc-providers');
38
+ require('../../context/UserWalletsContext/UserWalletsContext.cjs');
39
+ var useWalletItemActions = require('../../utils/hooks/useWalletItemActions/useWalletItemActions.cjs');
40
+ require('../../components/Alert/Alert.cjs');
41
+ require('../../components/ShadowDOM/ShadowDOM.cjs');
42
+ require('../../components/IconButton/IconButton.cjs');
43
+ require('../../components/InlineWidget/InlineWidget.cjs');
44
+ require('../../components/MenuList/Dropdown/Dropdown.cjs');
45
+ require('../../components/Transition/ZoomTransition/ZoomTransition.cjs');
46
+ require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
47
+ require('../../components/Transition/OpacityTransition/OpacityTransition.cjs');
48
+ require('../../components/Popper/Popper/Popper.cjs');
49
+ require('../../components/Popper/PopperContext/PopperContext.cjs');
50
+ require('react-focus-lock');
51
+ require('formik');
52
+ require('i18next');
53
+ require('../../components/OverlayCard/OverlayCard.context.cjs');
54
+ var Divider = require('../../components/Divider/Divider.cjs');
55
+ require('../../context/FooterAnimationContext/index.cjs');
56
+ require('../../context/QrCodeContext/QrCodeContext.cjs');
57
+ require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
58
+ require('../../context/LoadingContext/LoadingContext.cjs');
59
+ require('qrcode');
60
+ require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
61
+ require('../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.cjs');
62
+ require('@dynamic-labs/viem-utils');
63
+ require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
9
64
  var WalletGroupItem = require('./components/WalletGroupItem/WalletGroupItem.cjs');
65
+ var HardwareWalletToggle = require('./components/HardwareWalletToggle/HardwareWalletToggle.cjs');
10
66
 
67
+ const hardwareWallets = ['phantomledger'];
68
+ const isHardwareWallet = (wallet) => hardwareWallets.includes(wallet.key);
11
69
  const WalletGroupView = () => {
12
70
  var _a;
13
71
  const { selectedWalletGroup } = WalletGroupContext.useWalletGroupContext();
14
72
  const { walletBook: walletBook$1 } = walletBook.useWalletBookContext();
73
+ const { handleWalletItemClick } = useWalletItemActions.useWalletItemActions();
74
+ const [isHardwareWalletEnabled, setIsHardwareWalletEnabled] = React.useState(false);
15
75
  if (!selectedWalletGroup)
16
76
  throw new Error('Could not access WalletGroup view without selected group');
17
77
  const walletBookData = walletBook.getWalletGroup(walletBook$1, selectedWalletGroup === null || selectedWalletGroup === void 0 ? void 0 : selectedWalletGroup.key);
18
- return (jsxRuntime.jsx(SelectWalletChainLayout.SelectWalletChainLayout, { HeaderIcon: jsxRuntime.jsx(walletBook.WalletIcon, { walletKey: (_a = walletBookData.brand) === null || _a === void 0 ? void 0 : _a.spriteId }), children: selectedWalletGroup.groupedWallets.map((wallet, index) => (jsxRuntime.jsx(WalletGroupItem.WalletGroupItem, { wallet: wallet }, `${wallet.key}_${index}`))) }));
78
+ const wallets = selectedWalletGroup.groupedWallets.filter((wallet) => !isHardwareWallet(wallet));
79
+ const hardwareWallet = selectedWalletGroup.groupedWallets.find(isHardwareWallet);
80
+ const isHardwareWalletPresent = Boolean(hardwareWallet);
81
+ return (jsxRuntime.jsx(SelectWalletChainLayout.SelectWalletChainLayout, { HeaderIcon: jsxRuntime.jsx(walletBook.WalletIcon, { walletKey: (_a = walletBookData.brand) === null || _a === void 0 ? void 0 : _a.spriteId }), children: jsxRuntime.jsxs("div", { className: 'wallet-group__list', children: [isHardwareWalletPresent && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(HardwareWalletToggle.HardwareWalletToggle, { checked: isHardwareWalletEnabled, onChecked: setIsHardwareWalletEnabled }), jsxRuntime.jsx(Divider.Divider, {})] })), jsxRuntime.jsx("div", { className: 'select-wallet-chain-layout__list', children: wallets.map((wallet, index) => (jsxRuntime.jsx(WalletGroupItem.WalletGroupItem, { wallet: wallet, onClick: () => {
82
+ if (isHardwareWalletEnabled && hardwareWallet) {
83
+ handleWalletItemClick(hardwareWallet);
84
+ return;
85
+ }
86
+ handleWalletItemClick(wallet);
87
+ } }, `${wallet.key}_${index}`))) })] }) }));
19
88
  };
20
89
 
21
90
  exports.WalletGroupView = WalletGroupView;
@@ -1,17 +1,86 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
2
3
  import { useWalletBookContext, getWalletGroup, WalletIcon } from '@dynamic-labs/wallet-book';
3
4
  import { SelectWalletChainLayout } from '../../components/SelectWalletChainLayout/SelectWalletChainLayout.js';
4
5
  import { useWalletGroupContext } from '../../context/WalletGroupContext/WalletGroupContext.js';
6
+ import '../../events/dynamicEvents.js';
7
+ import '@dynamic-labs/utils';
8
+ import '../../context/DynamicContext/DynamicContext.js';
9
+ import '@dynamic-labs/wallet-connector-core';
10
+ import '../../context/CaptchaContext/CaptchaContext.js';
11
+ import '../../context/ErrorContext/ErrorContext.js';
12
+ import '../../context/ViewContext/ViewContext.js';
13
+ import '@dynamic-labs/sdk-api';
14
+ import '../../shared/logger.js';
15
+ import '@dynamic-labs/iconic';
16
+ import '../../utils/constants/colors.js';
17
+ import '../../shared/utils/classes/storage/localStorage.js';
18
+ import 'viem';
19
+ import '../../shared/consts/index.js';
20
+ import '@dynamic-labs/multi-wallet';
21
+ import '../../context/AccessDeniedContext/AccessDeniedContext.js';
22
+ import '../../context/AccountExistsContext/AccountExistsContext.js';
23
+ import '../../config/ApiEndpoint.js';
24
+ import '../../context/EmailVerificationContext/EmailVerificationContext.js';
25
+ import 'react-dom';
26
+ import '../../context/ThemeContext/ThemeContext.js';
27
+ import '@dynamic-labs/types';
28
+ import 'yup';
29
+ import 'react-i18next';
30
+ import '../../context/MockContext/MockContext.js';
31
+ import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js';
32
+ import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
33
+ import '@dynamic-labs/rpc-providers';
34
+ import '../../context/UserWalletsContext/UserWalletsContext.js';
35
+ import { useWalletItemActions } from '../../utils/hooks/useWalletItemActions/useWalletItemActions.js';
36
+ import '../../components/Alert/Alert.js';
37
+ import '../../components/ShadowDOM/ShadowDOM.js';
38
+ import '../../components/IconButton/IconButton.js';
39
+ import '../../components/InlineWidget/InlineWidget.js';
40
+ import '../../components/MenuList/Dropdown/Dropdown.js';
41
+ import '../../components/Transition/ZoomTransition/ZoomTransition.js';
42
+ import '../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
43
+ import '../../components/Transition/OpacityTransition/OpacityTransition.js';
44
+ import '../../components/Popper/Popper/Popper.js';
45
+ import '../../components/Popper/PopperContext/PopperContext.js';
46
+ import 'react-focus-lock';
47
+ import 'formik';
48
+ import 'i18next';
49
+ import '../../components/OverlayCard/OverlayCard.context.js';
50
+ import { Divider } from '../../components/Divider/Divider.js';
51
+ import '../../context/FooterAnimationContext/index.js';
52
+ import '../../context/QrCodeContext/QrCodeContext.js';
53
+ import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
54
+ import '../../context/LoadingContext/LoadingContext.js';
55
+ import 'qrcode';
56
+ import '../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
57
+ import '../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.js';
58
+ import '@dynamic-labs/viem-utils';
59
+ import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
5
60
  import { WalletGroupItem } from './components/WalletGroupItem/WalletGroupItem.js';
61
+ import { HardwareWalletToggle } from './components/HardwareWalletToggle/HardwareWalletToggle.js';
6
62
 
63
+ const hardwareWallets = ['phantomledger'];
64
+ const isHardwareWallet = (wallet) => hardwareWallets.includes(wallet.key);
7
65
  const WalletGroupView = () => {
8
66
  var _a;
9
67
  const { selectedWalletGroup } = useWalletGroupContext();
10
68
  const { walletBook } = useWalletBookContext();
69
+ const { handleWalletItemClick } = useWalletItemActions();
70
+ const [isHardwareWalletEnabled, setIsHardwareWalletEnabled] = useState(false);
11
71
  if (!selectedWalletGroup)
12
72
  throw new Error('Could not access WalletGroup view without selected group');
13
73
  const walletBookData = getWalletGroup(walletBook, selectedWalletGroup === null || selectedWalletGroup === void 0 ? void 0 : selectedWalletGroup.key);
14
- return (jsx(SelectWalletChainLayout, { HeaderIcon: jsx(WalletIcon, { walletKey: (_a = walletBookData.brand) === null || _a === void 0 ? void 0 : _a.spriteId }), children: selectedWalletGroup.groupedWallets.map((wallet, index) => (jsx(WalletGroupItem, { wallet: wallet }, `${wallet.key}_${index}`))) }));
74
+ const wallets = selectedWalletGroup.groupedWallets.filter((wallet) => !isHardwareWallet(wallet));
75
+ const hardwareWallet = selectedWalletGroup.groupedWallets.find(isHardwareWallet);
76
+ const isHardwareWalletPresent = Boolean(hardwareWallet);
77
+ return (jsx(SelectWalletChainLayout, { HeaderIcon: jsx(WalletIcon, { walletKey: (_a = walletBookData.brand) === null || _a === void 0 ? void 0 : _a.spriteId }), children: jsxs("div", { className: 'wallet-group__list', children: [isHardwareWalletPresent && (jsxs(Fragment, { children: [jsx(HardwareWalletToggle, { checked: isHardwareWalletEnabled, onChecked: setIsHardwareWalletEnabled }), jsx(Divider, {})] })), jsx("div", { className: 'select-wallet-chain-layout__list', children: wallets.map((wallet, index) => (jsx(WalletGroupItem, { wallet: wallet, onClick: () => {
78
+ if (isHardwareWalletEnabled && hardwareWallet) {
79
+ handleWalletItemClick(hardwareWallet);
80
+ return;
81
+ }
82
+ handleWalletItemClick(wallet);
83
+ } }, `${wallet.key}_${index}`))) })] }) }));
15
84
  };
16
85
 
17
86
  export { WalletGroupView };