@dynamic-labs/sdk-react-core 2.1.0-alpha.10 → 2.1.0-alpha.12

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 (57) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +13 -13
  5. package/src/index.cjs +2 -0
  6. package/src/index.d.ts +1 -1
  7. package/src/index.js +1 -0
  8. package/src/lib/components/CopyButton/CopyButton.cjs +3 -3
  9. package/src/lib/components/CopyButton/CopyButton.d.ts +1 -1
  10. package/src/lib/components/CopyButton/CopyButton.js +3 -3
  11. package/src/lib/components/LoadingQrCode/LoadingQrCode.cjs +11 -0
  12. package/src/lib/components/LoadingQrCode/LoadingQrCode.d.ts +8 -0
  13. package/src/lib/components/LoadingQrCode/LoadingQrCode.js +7 -0
  14. package/src/lib/components/LoadingQrCode/index.d.ts +1 -0
  15. package/src/lib/components/QrCodeWrapper/QrCodeContainer/QrCodeContainer.cjs +2 -1
  16. package/src/lib/components/QrCodeWrapper/QrCodeContainer/QrCodeContainer.js +2 -1
  17. package/src/lib/components/QrCodeWrapper/QrCodeWrapper.cjs +5 -1
  18. package/src/lib/components/QrCodeWrapper/QrCodeWrapper.js +5 -1
  19. package/src/lib/data/api/chains/balances.cjs +38 -0
  20. package/src/lib/data/api/chains/balances.d.ts +8 -0
  21. package/src/lib/data/api/chains/balances.js +34 -0
  22. package/src/lib/data/api/chains/index.d.ts +1 -0
  23. package/src/lib/shared/types/general.d.ts +1 -0
  24. package/src/lib/utils/constants/errors.cjs +2 -0
  25. package/src/lib/utils/constants/errors.d.ts +1 -0
  26. package/src/lib/utils/constants/errors.js +2 -1
  27. package/src/lib/utils/hooks/index.d.ts +1 -0
  28. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +34 -3
  29. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +18 -9
  30. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +34 -3
  31. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.cjs +5 -1
  32. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.d.ts +1 -0
  33. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.js +5 -1
  34. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs +4 -0
  35. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.d.ts +2 -0
  36. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js +3 -1
  37. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +68 -28
  38. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.d.ts +11 -6
  39. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +70 -30
  40. package/src/lib/utils/hooks/useTokenBalances/index.d.ts +1 -0
  41. package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.cjs +141 -0
  42. package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.d.ts +12 -0
  43. package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.js +137 -0
  44. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +1 -1
  45. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +1 -1
  46. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs +5 -4
  47. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js +5 -4
  48. package/src/lib/views/FarcasterQrCodeView/FarcasterQrCodeView.cjs +103 -0
  49. package/src/lib/views/FarcasterQrCodeView/FarcasterQrCodeView.d.ts +6 -0
  50. package/src/lib/views/FarcasterQrCodeView/FarcasterQrCodeView.js +99 -0
  51. package/src/lib/views/FarcasterQrCodeView/index.d.ts +1 -0
  52. package/src/lib/views/LoginView/LoginView.cjs +9 -1
  53. package/src/lib/views/LoginView/LoginView.js +9 -1
  54. package/src/lib/views/LoginView/utils/showFarcasterQrCodeView/index.d.ts +1 -0
  55. package/src/lib/views/LoginView/utils/showFarcasterQrCodeView/showFarcasterQrCodeView.cjs +14 -0
  56. package/src/lib/views/LoginView/utils/showFarcasterQrCodeView/showFarcasterQrCodeView.d.ts +2 -0
  57. package/src/lib/views/LoginView/utils/showFarcasterQrCodeView/showFarcasterQrCodeView.js +10 -0
@@ -17,18 +17,19 @@ import '../../../../shared/consts/index.js';
17
17
  import '../../../../config/ApiEndpoint.js';
18
18
  import { exportEmbeddedWallet } from '../../../../data/api/embeddedWallets/embeddedWallets.js';
19
19
  import '../../../../locale/locale.js';
20
+ import { INVALID_WALLET_DATA, ERROR_PROCESSING_REVEAL_REQUEST } from '../../../../utils/constants/errors.js';
20
21
 
21
22
  const initExport = (_a) => __awaiter(void 0, [_a], void 0, function* ({ iframeContainer, iframeElementId, wallet, }) {
22
23
  var _b;
23
24
  if (!(wallet === null || wallet === void 0 ? void 0 : wallet.connector) ||
24
25
  !(wallet === null || wallet === void 0 ? void 0 : wallet.id) ||
25
26
  !isPasskeyWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
26
- throw new DynamicError('Connector is missing. Please make sure you added EthereumWalletConnectors and/or SolanaWalletConnectors to DynamicProvider settings');
27
+ throw new DynamicError('Connector is missing. Please make sure you added EthereumWalletConnectors and/or SolanaWalletConnectors to DynamicProvider settings', INVALID_WALLET_DATA);
27
28
  }
28
29
  const turnkeyExportHandler = (_b = wallet.connector) === null || _b === void 0 ? void 0 : _b.getExportHandler();
29
30
  const publicKey = yield turnkeyExportHandler.initExport(iframeContainer, iframeElementId);
30
31
  if (!publicKey) {
31
- throw new DynamicError('Something went wrong');
32
+ throw new DynamicError('Something went wrong', ERROR_PROCESSING_REVEAL_REQUEST);
32
33
  }
33
34
  return turnkeyExportHandler;
34
35
  });
@@ -82,7 +83,7 @@ const exportCredential = (_c) => __awaiter(void 0, [_c], void 0, function* ({ au
82
83
  const turnkeyExportHandler = connector.getExportHandler();
83
84
  const targetPublicKey = turnkeyExportHandler.publicKey;
84
85
  if (!targetPublicKey) {
85
- throw new DynamicError('Must initialize export first');
86
+ throw new DynamicError('Must initialize export first', ERROR_PROCESSING_REVEAL_REQUEST);
86
87
  }
87
88
  // calls turnkey export api
88
89
  let newActivity;
@@ -119,7 +120,7 @@ const exportCredential = (_c) => __awaiter(void 0, [_c], void 0, function* ({ au
119
120
  exportBundle = res === null || res === void 0 ? void 0 : res.exportBundle;
120
121
  }
121
122
  if (!exportBundle) {
122
- throw new DynamicError('Invalid export response');
123
+ throw new DynamicError('Invalid export response', ERROR_PROCESSING_REVEAL_REQUEST);
123
124
  }
124
125
  if (address || privateKeyId) {
125
126
  return turnkeyExportHandler.verifyExportPrivateKey(exportBundle);
@@ -0,0 +1,103 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../_virtual/_tslib.cjs');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+ require('react');
9
+ require('../../context/DynamicContext/DynamicContext.cjs');
10
+ require('@dynamic-labs/sdk-api-core');
11
+ require('../../shared/logger.cjs');
12
+ require('@dynamic-labs/iconic');
13
+ require('@dynamic-labs/wallet-connector-core');
14
+ require('../../context/ViewContext/ViewContext.cjs');
15
+ require('@dynamic-labs/wallet-book');
16
+ require('../../utils/constants/colors.cjs');
17
+ require('../../utils/constants/values.cjs');
18
+ require('../../shared/utils/classes/storage/localStorage.cjs');
19
+ require('@dynamic-labs/utils');
20
+ require('../../shared/consts/index.cjs');
21
+ require('../../events/dynamicEvents.cjs');
22
+ require('../../context/CaptchaContext/CaptchaContext.cjs');
23
+ var ErrorContext = require('../../context/ErrorContext/ErrorContext.cjs');
24
+ require('@dynamic-labs/multi-wallet');
25
+ require('react-international-phone');
26
+ require('viem');
27
+ require('viem/chains');
28
+ require('../../config/ApiEndpoint.cjs');
29
+ require('../../locale/locale.cjs');
30
+ require('../../context/AccessDeniedContext/AccessDeniedContext.cjs');
31
+ require('../../context/AccountExistsContext/AccountExistsContext.cjs');
32
+ require('../../context/UserWalletsContext/UserWalletsContext.cjs');
33
+ require('../../context/VerificationContext/VerificationContext.cjs');
34
+ require('react-dom');
35
+ require('../../context/WalletContext/WalletContext.cjs');
36
+ var usePromise = require('../../utils/hooks/usePromise/usePromise.cjs');
37
+ require('../../context/ThemeContext/ThemeContext.cjs');
38
+ require('@dynamic-labs/types');
39
+ var farcaster = require('../../utils/hooks/useSocialAuth/farcaster.cjs');
40
+ require('yup');
41
+ require('../../context/MockContext/MockContext.cjs');
42
+ require('react-i18next');
43
+ require('../../context/FieldsStateContext/FieldsStateContext.cjs');
44
+ require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
45
+ require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
46
+ require('@dynamic-labs/rpc-providers');
47
+ require('../../components/Alert/Alert.cjs');
48
+ require('../../components/ShadowDOM/ShadowDOM.cjs');
49
+ require('../../components/IconButton/IconButton.cjs');
50
+ require('../../components/InlineWidget/InlineWidget.cjs');
51
+ require('../../components/Input/Input.cjs');
52
+ require('../../components/IsBrowser/IsBrowser.cjs');
53
+ require('../../components/MenuList/Dropdown/Dropdown.cjs');
54
+ require('../../components/Transition/ZoomTransition/ZoomTransition.cjs');
55
+ require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
56
+ require('../../components/Transition/OpacityTransition/OpacityTransition.cjs');
57
+ require('../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.cjs');
58
+ require('../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
59
+ require('../../components/Popper/Popper/Popper.cjs');
60
+ require('../../components/Popper/PopperContext/PopperContext.cjs');
61
+ require('react-focus-lock');
62
+ require('qrcode');
63
+ require('formik');
64
+ require('../WalletList/WalletList.cjs');
65
+ var FarcasterConnectView = require('../FarcasterConnectView/FarcasterConnectView.cjs');
66
+ require('../../context/SocialRedirectContext/SocialRedirectContext.cjs');
67
+ require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
68
+ require('@hcaptcha/react-hcaptcha');
69
+ require('../../context/LoadingContext/LoadingContext.cjs');
70
+ require('../../context/FooterAnimationContext/index.cjs');
71
+ require('../LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection.cjs');
72
+ require('../../context/WalletGroupContext/WalletGroupContext.cjs');
73
+ require('../../context/PasskeyContext/PasskeyContext.cjs');
74
+ require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
75
+ require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
76
+ require('../TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
77
+ require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
78
+ var useInternalDynamicContext = require('../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
79
+
80
+ /**
81
+ * This view is used to display the QR code for the farcaster connection.
82
+ * It is only used in the login view when Farcaster is the only available login method.
83
+ */
84
+ const FarcasterQrCodeView = () => {
85
+ var _a;
86
+ const { consumeNonce, redirectUrl } = useInternalDynamicContext.useInternalDynamicContext();
87
+ const { setError } = ErrorContext.useErrorContext();
88
+ const { data } = usePromise.usePromise(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
89
+ const dynamicNonce = consumeNonce();
90
+ const domain = window.location.host;
91
+ return farcaster.connect({
92
+ domain,
93
+ nonce: dynamicNonce,
94
+ redirectUrl,
95
+ siweUri: window.location.origin,
96
+ });
97
+ }), {
98
+ onReject: () => setError('Something went wrong'),
99
+ });
100
+ return jsxRuntime.jsx(FarcasterConnectView.FarcasterConnectView, { url: (_a = data === null || data === void 0 ? void 0 : data.url) !== null && _a !== void 0 ? _a : '' });
101
+ };
102
+
103
+ exports.FarcasterQrCodeView = FarcasterQrCodeView;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * This view is used to display the QR code for the farcaster connection.
4
+ * It is only used in the login view when Farcaster is the only available login method.
5
+ */
6
+ export declare const FarcasterQrCodeView: () => JSX.Element;
@@ -0,0 +1,99 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../_virtual/_tslib.js';
3
+ import { jsx } from 'react/jsx-runtime';
4
+ import 'react';
5
+ import '../../context/DynamicContext/DynamicContext.js';
6
+ import '@dynamic-labs/sdk-api-core';
7
+ import '../../shared/logger.js';
8
+ import '@dynamic-labs/iconic';
9
+ import '@dynamic-labs/wallet-connector-core';
10
+ import '../../context/ViewContext/ViewContext.js';
11
+ import '@dynamic-labs/wallet-book';
12
+ import '../../utils/constants/colors.js';
13
+ import '../../utils/constants/values.js';
14
+ import '../../shared/utils/classes/storage/localStorage.js';
15
+ import '@dynamic-labs/utils';
16
+ import '../../shared/consts/index.js';
17
+ import '../../events/dynamicEvents.js';
18
+ import '../../context/CaptchaContext/CaptchaContext.js';
19
+ import { useErrorContext } from '../../context/ErrorContext/ErrorContext.js';
20
+ import '@dynamic-labs/multi-wallet';
21
+ import 'react-international-phone';
22
+ import 'viem';
23
+ import 'viem/chains';
24
+ import '../../config/ApiEndpoint.js';
25
+ import '../../locale/locale.js';
26
+ import '../../context/AccessDeniedContext/AccessDeniedContext.js';
27
+ import '../../context/AccountExistsContext/AccountExistsContext.js';
28
+ import '../../context/UserWalletsContext/UserWalletsContext.js';
29
+ import '../../context/VerificationContext/VerificationContext.js';
30
+ import 'react-dom';
31
+ import '../../context/WalletContext/WalletContext.js';
32
+ import { usePromise } from '../../utils/hooks/usePromise/usePromise.js';
33
+ import '../../context/ThemeContext/ThemeContext.js';
34
+ import '@dynamic-labs/types';
35
+ import { connect } from '../../utils/hooks/useSocialAuth/farcaster.js';
36
+ import 'yup';
37
+ import '../../context/MockContext/MockContext.js';
38
+ import 'react-i18next';
39
+ import '../../context/FieldsStateContext/FieldsStateContext.js';
40
+ import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js';
41
+ import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
42
+ import '@dynamic-labs/rpc-providers';
43
+ import '../../components/Alert/Alert.js';
44
+ import '../../components/ShadowDOM/ShadowDOM.js';
45
+ import '../../components/IconButton/IconButton.js';
46
+ import '../../components/InlineWidget/InlineWidget.js';
47
+ import '../../components/Input/Input.js';
48
+ import '../../components/IsBrowser/IsBrowser.js';
49
+ import '../../components/MenuList/Dropdown/Dropdown.js';
50
+ import '../../components/Transition/ZoomTransition/ZoomTransition.js';
51
+ import '../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
52
+ import '../../components/Transition/OpacityTransition/OpacityTransition.js';
53
+ import '../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.js';
54
+ import '../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
55
+ import '../../components/Popper/Popper/Popper.js';
56
+ import '../../components/Popper/PopperContext/PopperContext.js';
57
+ import 'react-focus-lock';
58
+ import 'qrcode';
59
+ import 'formik';
60
+ import '../WalletList/WalletList.js';
61
+ import { FarcasterConnectView } from '../FarcasterConnectView/FarcasterConnectView.js';
62
+ import '../../context/SocialRedirectContext/SocialRedirectContext.js';
63
+ import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
64
+ import '@hcaptcha/react-hcaptcha';
65
+ import '../../context/LoadingContext/LoadingContext.js';
66
+ import '../../context/FooterAnimationContext/index.js';
67
+ import '../LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection.js';
68
+ import '../../context/WalletGroupContext/WalletGroupContext.js';
69
+ import '../../context/PasskeyContext/PasskeyContext.js';
70
+ import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
71
+ import '../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
72
+ import '../TransactionConfirmationView/helpers/transactionErrorMessage.js';
73
+ import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
74
+ import { useInternalDynamicContext } from '../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
75
+
76
+ /**
77
+ * This view is used to display the QR code for the farcaster connection.
78
+ * It is only used in the login view when Farcaster is the only available login method.
79
+ */
80
+ const FarcasterQrCodeView = () => {
81
+ var _a;
82
+ const { consumeNonce, redirectUrl } = useInternalDynamicContext();
83
+ const { setError } = useErrorContext();
84
+ const { data } = usePromise(() => __awaiter(void 0, void 0, void 0, function* () {
85
+ const dynamicNonce = consumeNonce();
86
+ const domain = window.location.host;
87
+ return connect({
88
+ domain,
89
+ nonce: dynamicNonce,
90
+ redirectUrl,
91
+ siweUri: window.location.origin,
92
+ });
93
+ }), {
94
+ onReject: () => setError('Something went wrong'),
95
+ });
96
+ return jsx(FarcasterConnectView, { url: (_a = data === null || data === void 0 ? void 0 : data.url) !== null && _a !== void 0 ? _a : '' });
97
+ };
98
+
99
+ export { FarcasterQrCodeView };
@@ -0,0 +1 @@
1
+ export { FarcasterQrCodeView } from './FarcasterQrCodeView';
@@ -14,14 +14,18 @@ var DefaultFooter = require('../../layout/DynamicAuthLayout/DefaultFooter/Defaul
14
14
  var classNames = require('../../utils/functions/classNames/classNames.cjs');
15
15
  var useAuthLayoutChecks = require('../../utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs');
16
16
  var WalletList = require('../WalletList/WalletList.cjs');
17
+ var SocialRedirectContext = require('../../context/SocialRedirectContext/SocialRedirectContext.cjs');
18
+ var FarcasterQrCodeView = require('../FarcasterQrCodeView/FarcasterQrCodeView.cjs');
17
19
  var LoginViewSection = require('./LoginViewSection/LoginViewSection.cjs');
18
20
  var useLoginView = require('./useLoginView/useLoginView.cjs');
21
+ var showFarcasterQrCodeView = require('./utils/showFarcasterQrCodeView/showFarcasterQrCodeView.cjs');
19
22
 
20
23
  const LoginView = () => {
21
24
  var _a;
22
25
  const { error } = ErrorContext.useErrorContext();
23
26
  const { view, setView } = ViewContext.useViewContext();
24
27
  const { isWalletOnly, loginViewSections } = useLoginView.useLoginView();
28
+ const { enabledSocialProviders } = SocialRedirectContext.useSocialRedirectContext();
25
29
  const [showWalletList, setShowWalletList] = React.useState(isWalletOnly);
26
30
  React.useEffect(() => {
27
31
  // toolkit log in with email was set to false
@@ -43,11 +47,15 @@ const LoginView = () => {
43
47
  const { showDefaultFooter } = useAuthLayoutChecks.useAuthLayoutChecks();
44
48
  const numOfWallets = ((_a = loginViewSections.find((section) => section.type === sdkApiCore.SdkViewSectionType.Wallet)) === null || _a === void 0 ? void 0 : _a.numOfItemsToDisplay) || 0;
45
49
  const renderViewSections = React.useMemo(() => loginViewSections.map((viewSection, index) => (jsxRuntime.jsx("div", { className: classNames.classNames('login-view__scroll__section', `login-view__scroll__section--${viewSection.type}`), children: jsxRuntime.jsx(LoginViewSection.LoginViewSection, { gotToWalletList: () => setShowWalletList(true), index: index, viewSection: viewSection, walletCount: numOfWallets }) }, `${viewSection.type}__${index}`))), [loginViewSections, numOfWallets]);
50
+ const errorElement = error && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { className: 'login-view__error-container', withIcon: false, children: error }));
51
+ if (showFarcasterQrCodeView.showFarcasterQrCodeView(loginViewSections, enabledSocialProviders)) {
52
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [errorElement, jsxRuntime.jsx(FarcasterQrCodeView.FarcasterQrCodeView, {})] }));
53
+ }
46
54
  if (showWalletList) {
47
55
  return jsxRuntime.jsx(WalletList.WalletList, {});
48
56
  }
49
57
  const shouldShowFooter = utils.isMobile() && showDefaultFooter;
50
- 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', {
58
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [errorElement, jsxRuntime.jsx("div", { className: classNames.classNames('login-view__container', {
51
59
  'login-view__container--error': Boolean(error),
52
60
  }), children: jsxRuntime.jsx("div", { className: 'login-view__scroll', "data-testid": 'login-view-scroll', children: renderViewSections }) }), shouldShowFooter && jsxRuntime.jsx(DefaultFooter.DefaultFooter, { hideBorder: true })] }));
53
61
  };
@@ -10,14 +10,18 @@ import { DefaultFooter } from '../../layout/DynamicAuthLayout/DefaultFooter/Defa
10
10
  import { classNames } from '../../utils/functions/classNames/classNames.js';
11
11
  import { useAuthLayoutChecks } from '../../utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js';
12
12
  import { WalletList } from '../WalletList/WalletList.js';
13
+ import { useSocialRedirectContext } from '../../context/SocialRedirectContext/SocialRedirectContext.js';
14
+ import { FarcasterQrCodeView } from '../FarcasterQrCodeView/FarcasterQrCodeView.js';
13
15
  import { LoginViewSection } from './LoginViewSection/LoginViewSection.js';
14
16
  import { useLoginView } from './useLoginView/useLoginView.js';
17
+ import { showFarcasterQrCodeView } from './utils/showFarcasterQrCodeView/showFarcasterQrCodeView.js';
15
18
 
16
19
  const LoginView = () => {
17
20
  var _a;
18
21
  const { error } = useErrorContext();
19
22
  const { view, setView } = useViewContext();
20
23
  const { isWalletOnly, loginViewSections } = useLoginView();
24
+ const { enabledSocialProviders } = useSocialRedirectContext();
21
25
  const [showWalletList, setShowWalletList] = useState(isWalletOnly);
22
26
  useEffect(() => {
23
27
  // toolkit log in with email was set to false
@@ -39,11 +43,15 @@ const LoginView = () => {
39
43
  const { showDefaultFooter } = useAuthLayoutChecks();
40
44
  const numOfWallets = ((_a = loginViewSections.find((section) => section.type === SdkViewSectionType.Wallet)) === null || _a === void 0 ? void 0 : _a.numOfItemsToDisplay) || 0;
41
45
  const renderViewSections = useMemo(() => loginViewSections.map((viewSection, index) => (jsx("div", { className: classNames('login-view__scroll__section', `login-view__scroll__section--${viewSection.type}`), children: jsx(LoginViewSection, { gotToWalletList: () => setShowWalletList(true), index: index, viewSection: viewSection, walletCount: numOfWallets }) }, `${viewSection.type}__${index}`))), [loginViewSections, numOfWallets]);
46
+ const errorElement = error && (jsx(ErrorContainer, { className: 'login-view__error-container', withIcon: false, children: error }));
47
+ if (showFarcasterQrCodeView(loginViewSections, enabledSocialProviders)) {
48
+ return (jsxs(Fragment, { children: [errorElement, jsx(FarcasterQrCodeView, {})] }));
49
+ }
42
50
  if (showWalletList) {
43
51
  return jsx(WalletList, {});
44
52
  }
45
53
  const shouldShowFooter = isMobile() && showDefaultFooter;
46
- return (jsxs(Fragment, { children: [error && (jsx(ErrorContainer, { className: 'login-view__error-container', withIcon: false, children: error })), jsx("div", { className: classNames('login-view__container', {
54
+ return (jsxs(Fragment, { children: [errorElement, jsx("div", { className: classNames('login-view__container', {
47
55
  'login-view__container--error': Boolean(error),
48
56
  }), children: jsx("div", { className: 'login-view__scroll', "data-testid": 'login-view-scroll', children: renderViewSections }) }), shouldShowFooter && jsx(DefaultFooter, { hideBorder: true })] }));
49
57
  };
@@ -0,0 +1 @@
1
+ export { showFarcasterQrCodeView } from './showFarcasterQrCodeView';
@@ -0,0 +1,14 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
7
+ var utils = require('@dynamic-labs/utils');
8
+
9
+ const showFarcasterQrCodeView = (loginViewSections, enabledSocialProviders) => loginViewSections.length === 1 &&
10
+ enabledSocialProviders.length === 1 &&
11
+ enabledSocialProviders.includes(sdkApiCore.SocialSignInProviderEnum.Farcaster) &&
12
+ !utils.isMobile();
13
+
14
+ exports.showFarcasterQrCodeView = showFarcasterQrCodeView;
@@ -0,0 +1,2 @@
1
+ import { SdkViewSection, SocialSignInProviderEnum } from '@dynamic-labs/sdk-api-core';
2
+ export declare const showFarcasterQrCodeView: (loginViewSections: SdkViewSection[], enabledSocialProviders: SocialSignInProviderEnum[]) => boolean;
@@ -0,0 +1,10 @@
1
+ 'use client'
2
+ import { SocialSignInProviderEnum } from '@dynamic-labs/sdk-api-core';
3
+ import { isMobile } from '@dynamic-labs/utils';
4
+
5
+ const showFarcasterQrCodeView = (loginViewSections, enabledSocialProviders) => loginViewSections.length === 1 &&
6
+ enabledSocialProviders.length === 1 &&
7
+ enabledSocialProviders.includes(SocialSignInProviderEnum.Farcaster) &&
8
+ !isMobile();
9
+
10
+ export { showFarcasterQrCodeView };