@dynamic-labs/sdk-react-core 0.16.4 → 0.17.0-RC.1

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 (144) hide show
  1. package/CHANGELOG.md +21 -7
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +5 -5
  5. package/src/index.cjs +5 -3
  6. package/src/index.js +3 -2
  7. package/src/lib/Main.cjs +8 -4
  8. package/src/lib/Main.js +8 -4
  9. package/src/lib/components/AnimatePresence/AnimatePresence.cjs +6 -6
  10. package/src/lib/components/AnimatePresence/AnimatePresence.js +6 -6
  11. package/src/lib/components/AnimatePresence/AnimatePresence.types.d.ts +2 -4
  12. package/src/lib/components/AnimatePresence/index.d.ts +0 -1
  13. package/src/lib/components/IconListTile/IconListTile.cjs +15 -0
  14. package/src/lib/components/IconListTile/IconListTile.d.ts +2 -0
  15. package/src/lib/components/IconListTile/IconListTile.js +11 -0
  16. package/src/lib/components/IconListTile/index.d.ts +1 -0
  17. package/src/lib/components/ListTile/ListTile.cjs +1 -1
  18. package/src/lib/components/ListTile/ListTile.js +1 -1
  19. package/src/lib/components/ListTile/index.d.ts +1 -0
  20. package/src/lib/components/ModalHeaderBanner/ModalHeaderBanner.cjs +5 -2
  21. package/src/lib/components/ModalHeaderBanner/ModalHeaderBanner.js +5 -2
  22. package/src/lib/components/OverlayCard/OverlayCard.cjs +45 -0
  23. package/src/lib/components/OverlayCard/OverlayCard.context.cjs +9 -0
  24. package/src/lib/components/OverlayCard/OverlayCard.context.d.ts +6 -0
  25. package/src/lib/components/OverlayCard/OverlayCard.context.js +5 -0
  26. package/src/lib/components/OverlayCard/OverlayCard.d.ts +8 -0
  27. package/src/lib/components/OverlayCard/OverlayCard.js +40 -0
  28. package/src/lib/components/OverlayCard/OverlayCardTarget.cjs +17 -0
  29. package/src/lib/components/OverlayCard/OverlayCardTarget.d.ts +2 -0
  30. package/src/lib/components/OverlayCard/OverlayCardTarget.js +13 -0
  31. package/src/lib/components/OverlayCard/index.d.ts +2 -0
  32. package/src/lib/components/Portal/Portal.cjs +17 -1
  33. package/src/lib/components/Portal/Portal.js +17 -1
  34. package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.cjs +50 -0
  35. package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.d.ts +4 -0
  36. package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.js +46 -0
  37. package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.types.d.ts +6 -0
  38. package/src/lib/components/Transition/VerticalDrawerTransition/index.d.ts +1 -0
  39. package/src/lib/components/Transition/index.d.ts +1 -0
  40. package/src/lib/components/Transition/transition.type.d.ts +2 -4
  41. package/src/lib/components/index.d.ts +2 -0
  42. package/src/lib/context/DynamicContext/DynamicContext.cjs +6 -7
  43. package/src/lib/context/DynamicContext/DynamicContext.js +6 -7
  44. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +107 -0
  45. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.d.ts +16 -0
  46. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +101 -0
  47. package/src/lib/context/SocialRedirectContext/index.d.ts +1 -0
  48. package/src/lib/context/ViewContext/ViewContext.cjs +4 -1
  49. package/src/lib/context/ViewContext/ViewContext.d.ts +1 -1
  50. package/src/lib/context/ViewContext/ViewContext.js +4 -1
  51. package/src/lib/data/api.cjs +4 -6
  52. package/src/lib/data/api.js +5 -7
  53. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.cjs +4 -2
  54. package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.js +4 -2
  55. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +5 -2
  56. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +5 -2
  57. package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.cjs +5 -2
  58. package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.js +5 -2
  59. package/src/lib/shared/assets/dots-horizontal.cjs +54 -0
  60. package/src/lib/shared/assets/dots-horizontal.js +30 -0
  61. package/src/lib/shared/assets/index.d.ts +1 -0
  62. package/src/lib/styles/index.shadow.cjs +1 -1
  63. package/src/lib/styles/index.shadow.js +1 -1
  64. package/src/lib/utils/functions/getSocialIcon/getSocialIcon.cjs +22 -0
  65. package/src/lib/utils/functions/getSocialIcon/getSocialIcon.d.ts +3 -0
  66. package/src/lib/utils/functions/getSocialIcon/getSocialIcon.js +18 -0
  67. package/src/lib/utils/functions/getSocialIcon/index.d.ts +1 -0
  68. package/src/lib/utils/functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.cjs +1 -7
  69. package/src/lib/utils/functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.js +1 -7
  70. package/src/lib/utils/functions/walletListBuilder/index.d.ts +1 -19
  71. package/src/lib/utils/functions/walletListBuilder/{index.cjs → walletListBuilder.cjs} +4 -1
  72. package/src/lib/utils/functions/walletListBuilder/walletListBuilder.d.ts +19 -0
  73. package/src/lib/utils/functions/walletListBuilder/{index.js → walletListBuilder.js} +5 -2
  74. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +28 -34
  75. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +29 -35
  76. package/src/lib/utils/hooks/useConnectWithEmail/useConnectWithEmail.cjs +0 -1
  77. package/src/lib/utils/hooks/useConnectWithEmail/useConnectWithEmail.d.ts +2 -2
  78. package/src/lib/utils/hooks/useConnectWithEmail/useConnectWithEmail.js +0 -1
  79. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +1 -2
  80. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +1 -2
  81. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +2 -2
  82. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +2 -2
  83. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +0 -2
  84. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +0 -2
  85. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +9 -3
  86. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.js +9 -3
  87. package/src/lib/views/CollectUserDataView/CollectUserDataView.cjs +1 -1
  88. package/src/lib/views/CollectUserDataView/CollectUserDataView.js +1 -1
  89. package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.cjs +1 -1
  90. package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.js +1 -1
  91. package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.cjs +1 -2
  92. package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.js +1 -2
  93. package/src/lib/views/EmailVerification/EmailVerification.cjs +1 -1
  94. package/src/lib/views/EmailVerification/EmailVerification.js +1 -1
  95. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +1 -1
  96. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +1 -1
  97. package/src/lib/views/LoginWithEmailView/LoginWithEmailView.cjs +2 -2
  98. package/src/lib/views/LoginWithEmailView/LoginWithEmailView.js +1 -1
  99. package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.cjs +8 -1
  100. package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.js +9 -2
  101. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.cjs +61 -0
  102. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.d.ts +2 -0
  103. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.js +57 -0
  104. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/index.d.ts +1 -0
  105. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +1 -1
  106. package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +1 -1
  107. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.cjs +3 -3
  108. package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.js +3 -3
  109. package/src/lib/views/SocialRedirectView/SocialRedirectView.cjs +51 -0
  110. package/src/lib/views/SocialRedirectView/SocialRedirectView.d.ts +2 -0
  111. package/src/lib/views/SocialRedirectView/SocialRedirectView.js +47 -0
  112. package/src/lib/views/SocialRedirectView/index.d.ts +1 -0
  113. package/src/lib/views/WalletList/WalletList.cjs +2 -2
  114. package/src/lib/views/WalletList/WalletList.js +1 -1
  115. package/src/lib/views/WalletNoAccess/WalletNoAccess.cjs +1 -2
  116. package/src/lib/views/WalletNoAccess/WalletNoAccess.js +1 -2
  117. package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.cjs +1 -2
  118. package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.js +1 -2
  119. package/src/lib/views/WalletUsedView/WalletUsedView.cjs +1 -1
  120. package/src/lib/views/WalletUsedView/WalletUsedView.js +1 -1
  121. package/src/lib/views/viewToComponentMap.cjs +2 -0
  122. package/src/lib/views/viewToComponentMap.js +2 -0
  123. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +2 -2
  124. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +2 -2
  125. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetDropdown/DynamicWidgetDropdown.cjs +20 -0
  126. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetDropdown/DynamicWidgetDropdown.js +20 -0
  127. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetModal/DynamicWidgetModal.cjs +3 -0
  128. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetModal/DynamicWidgetModal.js +3 -0
  129. package/src/lib/widgets/DynamicWidget/components/EmailConnectorPendingSignModalContent/EmailConnectorPendingSignModalContent.types.d.ts +2 -2
  130. package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.d.ts +2 -2
  131. package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.cjs +1 -2
  132. package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.js +1 -2
  133. package/src/lib/widgets/DynamicWidget/hooks/useFetchCurrency/useFetchCurrency.cjs +3 -3
  134. package/src/lib/widgets/DynamicWidget/hooks/useFetchCurrency/useFetchCurrency.js +3 -3
  135. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/PendingAccountSwitchModal.cjs +3 -3
  136. package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/PendingAccountSwitchModal.js +3 -3
  137. package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.cjs +3 -3
  138. package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.js +3 -3
  139. package/src/lib/components/AnimatePresence/animations/VerticalDrawerAnimation/VerticalDrawerAnimation.cjs +0 -57
  140. package/src/lib/components/AnimatePresence/animations/VerticalDrawerAnimation/VerticalDrawerAnimation.d.ts +0 -4
  141. package/src/lib/components/AnimatePresence/animations/VerticalDrawerAnimation/VerticalDrawerAnimation.js +0 -51
  142. package/src/lib/components/AnimatePresence/animations/VerticalDrawerAnimation/VerticalDrawerAnimation.types.d.ts +0 -8
  143. package/src/lib/components/AnimatePresence/animations/VerticalDrawerAnimation/index.d.ts +0 -1
  144. package/src/lib/components/AnimatePresence/animations/index.d.ts +0 -1
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
2
- import { useState, useEffect } from 'react';
2
+ import { useState, useCallback, useEffect, useMemo } from 'react';
3
3
  import { getWalletConnectorByName, isSameAddress } from '@dynamic-labs/multi-wallet';
4
4
  import '@dynamic-labs/sdk-api';
5
5
  import '../../../shared/logger.js';
@@ -17,25 +17,24 @@ import { shouldManuallyReconnectOnRefresh } from '../../functions/shouldManually
17
17
  const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly) => {
18
18
  const [connectedInfo, setConnectedInfo, removeConnectedInfo] = useLocalStorage(CONNECTED_WALLET_CONNECTOR_DATA, null);
19
19
  const [connectedWallet, setConnectedWallet] = useState(null);
20
- useEffect(() => {
21
- const fetchBasicInfo = (connectedWallet) => __awaiter(void 0, void 0, void 0, function* () {
22
- const provider = getWalletProvider(connectedWallet.connector);
23
- setConnectedInfo({
24
- chain: connectedWallet.chain,
25
- name: connectedWallet.connector.name,
26
- provider,
27
- walletPublicKey: connectedWallet.address,
28
- });
20
+ const setConnectedStates = useCallback((walletConnector, address, chain) => {
21
+ setConnectedWallet({
22
+ address,
23
+ chain,
24
+ connected: true,
25
+ connector: walletConnector,
26
+ id: 'connect-only-wallet',
29
27
  });
30
- if (connectedWallet) {
31
- fetchBasicInfo(connectedWallet);
32
- }
33
- }, [connectedWallet === null || connectedWallet === void 0 ? void 0 : connectedWallet.address]);
34
- const connectWalletByAddressAndChain = (name, address, chain) => __awaiter(void 0, void 0, void 0, function* () {
28
+ setConnectedInfo({
29
+ chain,
30
+ name: walletConnector.name,
31
+ provider: getWalletProvider(walletConnector),
32
+ walletPublicKey: address,
33
+ });
34
+ }, [setConnectedInfo]);
35
+ const connectWalletByAddressAndChain = useCallback((name, address, chain) => __awaiter(void 0, void 0, void 0, function* () {
35
36
  const walletConnector = getWalletConnectorByName(wallets.map((wallet) => wallet.walletConnector), name);
36
37
  if (walletConnector) {
37
- // this is here because phantom fires a disconnect event on page load,
38
- // and other wallets and chains have similar issues
39
38
  if (shouldManuallyReconnectOnRefresh(walletConnector)) {
40
39
  yield walletConnector.connect();
41
40
  }
@@ -43,13 +42,7 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
43
42
  const result = connectedAccounts.filter((account) => isSameAddress(account, address, chain));
44
43
  if (result.length > 0) {
45
44
  walletConnector.connect();
46
- setConnectedWallet({
47
- address,
48
- chain,
49
- connected: true,
50
- connector: walletConnector,
51
- id: 'connect-only-wallet',
52
- });
45
+ setConnectedStates(walletConnector, address, chain);
53
46
  }
54
47
  else {
55
48
  setConnectedWallet(null);
@@ -58,9 +51,9 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
58
51
  else {
59
52
  setConnectedWallet(null);
60
53
  }
61
- });
54
+ }), [setConnectedStates, wallets]);
62
55
  useEffect(() => {
63
- if (authMode === 'connect-only' && connectedInfo) {
56
+ if (authMode === 'connect-only' && connectedInfo && !connectedWallet) {
64
57
  if (connectedInfo.walletPublicKey &&
65
58
  connectedInfo.name &&
66
59
  connectedInfo.chain) {
@@ -68,7 +61,14 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
68
61
  connectWalletByAddressAndChain(name, walletPublicKey, chain);
69
62
  }
70
63
  }
71
- }, [connectedInfo, wallets.length]);
64
+ }, [
65
+ authMode,
66
+ connectWalletByAddressAndChain,
67
+ connectedInfo,
68
+ connectedWallet,
69
+ ]);
70
+ const shouldSkipCreatingVisit = useMemo(() => (authMode === 'connect-only' && !enableVisitTrackingOnConnectOnly) ||
71
+ connectedWallet, [authMode, connectedWallet, enableVisitTrackingOnConnectOnly]);
72
72
  const connectWallet = (walletConnector, fetchPublicAddressOpts) => __awaiter(void 0, void 0, void 0, function* () {
73
73
  const publicWalletAddress = yield walletConnector.fetchPublicAddress(fetchPublicAddressOpts);
74
74
  if (!publicWalletAddress) {
@@ -77,14 +77,8 @@ const useConnectWallet = (wallets, authMode, environmentId, enableVisitTrackingO
77
77
  throw error;
78
78
  }
79
79
  const chain = walletConnector.connectedChain || '';
80
- setConnectedWallet({
81
- address: publicWalletAddress,
82
- chain,
83
- connected: true,
84
- connector: walletConnector,
85
- id: 'connect-only-wallet',
86
- });
87
- if (authMode === 'connect-only' && !enableVisitTrackingOnConnectOnly) {
80
+ setConnectedStates(walletConnector, publicWalletAddress, chain);
81
+ if (shouldSkipCreatingVisit) {
88
82
  return publicWalletAddress;
89
83
  }
90
84
  // send information to backend to kick off background jobs
@@ -23,7 +23,6 @@ const useConnectWithEmail = ({ emailWalletConnector, handleConnect, }) => {
23
23
  return;
24
24
  setLoading(true);
25
25
  emailWalletConnector.setEmail(email);
26
- emailWalletConnector.cancelPreviousEmail();
27
26
  try {
28
27
  yield handleConnect(emailWalletConnector);
29
28
  }
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { EmailWalletConnector, WalletConnector } from '@dynamic-labs/wallet-connector-core';
2
+ import { IEmailWalletConnector, WalletConnector } from '@dynamic-labs/wallet-connector-core';
3
3
  type ConnectWithEmailProps = {
4
- emailWalletConnector: EmailWalletConnector | undefined;
4
+ emailWalletConnector: IEmailWalletConnector | undefined;
5
5
  handleConnect: (walletConnector: WalletConnector) => Promise<void>;
6
6
  };
7
7
  export declare const useConnectWithEmail: ({ emailWalletConnector, handleConnect, }: ConnectWithEmailProps) => {
@@ -19,7 +19,6 @@ const useConnectWithEmail = ({ emailWalletConnector, handleConnect, }) => {
19
19
  return;
20
20
  setLoading(true);
21
21
  emailWalletConnector.setEmail(email);
22
- emailWalletConnector.cancelPreviousEmail();
23
22
  try {
24
23
  yield handleConnect(emailWalletConnector);
25
24
  }
@@ -9,7 +9,6 @@ var isSameWalletName = require('../../functions/isSameWalletName/isSameWalletNam
9
9
 
10
10
  const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWalletId, secondaryWallets, setUser, }) => {
11
11
  const callback = React.useCallback((walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
12
- var _a, _b;
13
12
  if (walletId === primaryWalletId)
14
13
  return;
15
14
  const newUser = yield handleUnlinkHelper.handleUnlinkHelper({
@@ -25,7 +24,7 @@ const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWall
25
24
  isSameWalletName.isSameWalletName(account.walletName, (wallet === null || wallet === void 0 ? void 0 : wallet.connector.name) || '')).length;
26
25
  // If there's only 1, it's the one being removed and we can kill the session
27
26
  if (numberOfLinkedWallets === 1) {
28
- yield ((_b = wallet === null || wallet === void 0 ? void 0 : (_a = wallet.connector).endSession) === null || _b === void 0 ? void 0 : _b.call(_a));
27
+ yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.endSession());
29
28
  }
30
29
  }), [
31
30
  primaryWalletId,
@@ -5,7 +5,6 @@ import { isSameWalletName } from '../../functions/isSameWalletName/isSameWalletN
5
5
 
6
6
  const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWalletId, secondaryWallets, setUser, }) => {
7
7
  const callback = useCallback((walletId) => __awaiter(void 0, void 0, void 0, function* () {
8
- var _a, _b;
9
8
  if (walletId === primaryWalletId)
10
9
  return;
11
10
  const newUser = yield handleUnlinkHelper({
@@ -21,7 +20,7 @@ const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWall
21
20
  isSameWalletName(account.walletName, (wallet === null || wallet === void 0 ? void 0 : wallet.connector.name) || '')).length;
22
21
  // If there's only 1, it's the one being removed and we can kill the session
23
22
  if (numberOfLinkedWallets === 1) {
24
- yield ((_b = wallet === null || wallet === void 0 ? void 0 : (_a = wallet.connector).endSession) === null || _b === void 0 ? void 0 : _b.call(_a));
23
+ yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.endSession());
25
24
  }
26
25
  }), [
27
26
  primaryWalletId,
@@ -84,7 +84,6 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
84
84
  }
85
85
  };
86
86
  const handleError = (e, walletConnector) => {
87
- var _a;
88
87
  // This is a special case where the user is trying to link a wallet
89
88
  // and the wallet is already linked and we don't want to kill the session.
90
89
  if (e.name === 'WalletUsedError') {
@@ -96,7 +95,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
96
95
  }
97
96
  return;
98
97
  }
99
- (_a = walletConnector.endSession) === null || _a === void 0 ? void 0 : _a.call(walletConnector);
98
+ walletConnector.endSession();
100
99
  if (e.name === 'ChainalysisError') {
101
100
  setView('chainalysis-blocked-wallet');
102
101
  return;
@@ -159,6 +158,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
159
158
  setCallback('authSuccess');
160
159
  }
161
160
  else {
161
+ setView('wallet-list');
162
162
  setCallback('linkSuccess');
163
163
  }
164
164
  }
@@ -80,7 +80,6 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
80
80
  }
81
81
  };
82
82
  const handleError = (e, walletConnector) => {
83
- var _a;
84
83
  // This is a special case where the user is trying to link a wallet
85
84
  // and the wallet is already linked and we don't want to kill the session.
86
85
  if (e.name === 'WalletUsedError') {
@@ -92,7 +91,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
92
91
  }
93
92
  return;
94
93
  }
95
- (_a = walletConnector.endSession) === null || _a === void 0 ? void 0 : _a.call(walletConnector);
94
+ walletConnector.endSession();
96
95
  if (e.name === 'ChainalysisError') {
97
96
  setView('chainalysis-blocked-wallet');
98
97
  return;
@@ -155,6 +154,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
155
154
  setCallback('authSuccess');
156
155
  }
157
156
  else {
157
+ setView('wallet-list');
158
158
  setCallback('linkSuccess');
159
159
  }
160
160
  }
@@ -54,8 +54,6 @@ const useWalletConnectors = ({ authToken, wallets: availableWallets, multiWallet
54
54
  /* istanbul ignore next */
55
55
  if (!wallet)
56
56
  return null;
57
- // this is here because phantom fires a disconnect event on page load,
58
- // and other wallets and chains have similar issues
59
57
  if (account.id === primaryWalletId &&
60
58
  shouldManuallyReconnectOnRefresh.shouldManuallyReconnectOnRefresh(wallet.walletConnector)) {
61
59
  yield wallet.walletConnector.connect();
@@ -50,8 +50,6 @@ const useWalletConnectors = ({ authToken, wallets: availableWallets, multiWallet
50
50
  /* istanbul ignore next */
51
51
  if (!wallet)
52
52
  return null;
53
- // this is here because phantom fires a disconnect event on page load,
54
- // and other wallets and chains have similar issues
55
53
  if (account.id === primaryWalletId &&
56
54
  shouldManuallyReconnectOnRefresh(wallet.walletConnector)) {
57
55
  yield wallet.walletConnector.connect();
@@ -75,7 +75,14 @@ const useWalletItemActions = () => {
75
75
  setError(undefined);
76
76
  });
77
77
  const handleAlreadyConnectedWallet = (walletConnector) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
78
- setMultiWalletWidgetState('awaiting_account_switch', 'linking_new_wallet');
78
+ const connectedAccounts = yield walletConnector.getConnectedAccounts();
79
+ const activeAccountAlreadyLinked = connectedWallets.find((wallet) => { var _a; return wallet.address.toLowerCase() === ((_a = connectedAccounts[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase()); });
80
+ if (activeAccountAlreadyLinked) {
81
+ setMultiWalletWidgetState('awaiting_account_switch', 'linking_new_wallet');
82
+ }
83
+ else {
84
+ setMultiWalletWidgetState('awaiting_signature', undefined, 'linking_new_wallet');
85
+ }
79
86
  setShowAuthFlow(false);
80
87
  setWalletConnectorAndWalletColor(walletConnector);
81
88
  });
@@ -95,12 +102,11 @@ const useWalletItemActions = () => {
95
102
  }
96
103
  };
97
104
  const handleWalletItemClick = (wallet) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
98
- var _a;
99
105
  const { walletConnector, isInstalledOnBrowser } = wallet;
100
106
  if (mockedSDK)
101
107
  return;
102
108
  if (walletConnector.connectedChain === 'FLOW') {
103
- yield ((_a = walletConnector.endSession) === null || _a === void 0 ? void 0 : _a.call(walletConnector));
109
+ yield walletConnector.endSession();
104
110
  }
105
111
  if (isSelectedWalletAlreadyConnected.isSelectedWalletAlreadyConnected(connectedWallets, walletConnector, user) &&
106
112
  walletConnector.connectedChain !== 'FLOW') {
@@ -71,7 +71,14 @@ const useWalletItemActions = () => {
71
71
  setError(undefined);
72
72
  });
73
73
  const handleAlreadyConnectedWallet = (walletConnector) => __awaiter(void 0, void 0, void 0, function* () {
74
- setMultiWalletWidgetState('awaiting_account_switch', 'linking_new_wallet');
74
+ const connectedAccounts = yield walletConnector.getConnectedAccounts();
75
+ const activeAccountAlreadyLinked = connectedWallets.find((wallet) => { var _a; return wallet.address.toLowerCase() === ((_a = connectedAccounts[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase()); });
76
+ if (activeAccountAlreadyLinked) {
77
+ setMultiWalletWidgetState('awaiting_account_switch', 'linking_new_wallet');
78
+ }
79
+ else {
80
+ setMultiWalletWidgetState('awaiting_signature', undefined, 'linking_new_wallet');
81
+ }
75
82
  setShowAuthFlow(false);
76
83
  setWalletConnectorAndWalletColor(walletConnector);
77
84
  });
@@ -91,12 +98,11 @@ const useWalletItemActions = () => {
91
98
  }
92
99
  };
93
100
  const handleWalletItemClick = (wallet) => __awaiter(void 0, void 0, void 0, function* () {
94
- var _a;
95
101
  const { walletConnector, isInstalledOnBrowser } = wallet;
96
102
  if (mockedSDK)
97
103
  return;
98
104
  if (walletConnector.connectedChain === 'FLOW') {
99
- yield ((_a = walletConnector.endSession) === null || _a === void 0 ? void 0 : _a.call(walletConnector));
105
+ yield walletConnector.endSession();
100
106
  }
101
107
  if (isSelectedWalletAlreadyConnected(connectedWallets, walletConnector, user) &&
102
108
  walletConnector.connectedChain !== 'FLOW') {
@@ -24,13 +24,13 @@ require('react-focus-lock');
24
24
  require('../../components/Transition/ZoomTransition/ZoomTransition.cjs');
25
25
  require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
26
26
  require('../../components/Transition/OpacityTransition/OpacityTransition.cjs');
27
- var TextButton = require('../../components/TextButton/TextButton.cjs');
28
27
  require('../../config/ApiEndpoint.cjs');
29
28
  require('../../context/ErrorContext/ErrorContext.cjs');
30
29
  require('ethers');
31
30
  require('../../context/MockContext/MockContext.cjs');
32
31
  require('../../context/CaptchaContext/CaptchaContext.cjs');
33
32
  require('../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.cjs');
33
+ var TextButton = require('../../components/TextButton/TextButton.cjs');
34
34
  require('../../components/IconButton/IconButton.cjs');
35
35
  var ErrorContainer = require('../../components/ErrorContainer/ErrorContainer.cjs');
36
36
  var NetworkPicker = require('../../components/NetworkPicker/NetworkPicker.cjs');
@@ -20,13 +20,13 @@ import 'react-focus-lock';
20
20
  import '../../components/Transition/ZoomTransition/ZoomTransition.js';
21
21
  import '../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
22
22
  import '../../components/Transition/OpacityTransition/OpacityTransition.js';
23
- import { TextButton } from '../../components/TextButton/TextButton.js';
24
23
  import '../../config/ApiEndpoint.js';
25
24
  import '../../context/ErrorContext/ErrorContext.js';
26
25
  import 'ethers';
27
26
  import '../../context/MockContext/MockContext.js';
28
27
  import '../../context/CaptchaContext/CaptchaContext.js';
29
28
  import '../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.js';
29
+ import { TextButton } from '../../components/TextButton/TextButton.js';
30
30
  import '../../components/IconButton/IconButton.js';
31
31
  import { ErrorContainer } from '../../components/ErrorContainer/ErrorContainer.js';
32
32
  import { NetworkPicker } from '../../components/NetworkPicker/NetworkPicker.js';
@@ -21,13 +21,13 @@ require('react-focus-lock');
21
21
  require('../../components/Transition/ZoomTransition/ZoomTransition.cjs');
22
22
  require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
23
23
  require('../../components/Transition/OpacityTransition/OpacityTransition.cjs');
24
- var TextButton = require('../../components/TextButton/TextButton.cjs');
25
24
  require('../../config/ApiEndpoint.cjs');
26
25
  require('../../context/ErrorContext/ErrorContext.cjs');
27
26
  require('ethers');
28
27
  require('../../context/MockContext/MockContext.cjs');
29
28
  require('../../context/CaptchaContext/CaptchaContext.cjs');
30
29
  require('../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.cjs');
30
+ var TextButton = require('../../components/TextButton/TextButton.cjs');
31
31
  require('../../components/IconButton/IconButton.cjs');
32
32
  var UserDataForm = require('../CollectUserDataView/UserDataForm/UserDataForm.cjs');
33
33
 
@@ -17,13 +17,13 @@ import 'react-focus-lock';
17
17
  import '../../components/Transition/ZoomTransition/ZoomTransition.js';
18
18
  import '../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
19
19
  import '../../components/Transition/OpacityTransition/OpacityTransition.js';
20
- import { TextButton } from '../../components/TextButton/TextButton.js';
21
20
  import '../../config/ApiEndpoint.js';
22
21
  import '../../context/ErrorContext/ErrorContext.js';
23
22
  import 'ethers';
24
23
  import '../../context/MockContext/MockContext.js';
25
24
  import '../../context/CaptchaContext/CaptchaContext.js';
26
25
  import '../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.js';
26
+ import { TextButton } from '../../components/TextButton/TextButton.js';
27
27
  import '../../components/IconButton/IconButton.js';
28
28
  import { UserDataForm } from '../CollectUserDataView/UserDataForm/UserDataForm.js';
29
29
 
@@ -42,8 +42,7 @@ const EmailConfirmationWaitingView = () => {
42
42
  }
43
43
  const emailConnector = walletConnector;
44
44
  const onClickResetEmail = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
45
- var _a;
46
- yield ((_a = emailConnector === null || emailConnector === void 0 ? void 0 : emailConnector.endSession) === null || _a === void 0 ? void 0 : _a.call(emailConnector));
45
+ yield (emailConnector === null || emailConnector === void 0 ? void 0 : emailConnector.endSession());
47
46
  setView('login-with-email-or-wallet');
48
47
  clearStatesOnBackClick();
49
48
  }), [setView, emailConnector, clearStatesOnBackClick]);
@@ -38,8 +38,7 @@ const EmailConfirmationWaitingView = () => {
38
38
  }
39
39
  const emailConnector = walletConnector;
40
40
  const onClickResetEmail = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
41
- var _a;
42
- yield ((_a = emailConnector === null || emailConnector === void 0 ? void 0 : emailConnector.endSession) === null || _a === void 0 ? void 0 : _a.call(emailConnector));
41
+ yield (emailConnector === null || emailConnector === void 0 ? void 0 : emailConnector.endSession());
43
42
  setView('login-with-email-or-wallet');
44
43
  clearStatesOnBackClick();
45
44
  }), [setView, emailConnector, clearStatesOnBackClick]);
@@ -25,13 +25,13 @@ require('react-focus-lock');
25
25
  require('../../components/Transition/ZoomTransition/ZoomTransition.cjs');
26
26
  require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
27
27
  require('../../components/Transition/OpacityTransition/OpacityTransition.cjs');
28
- var TextButton = require('../../components/TextButton/TextButton.cjs');
29
28
  var api = require('../../data/api.cjs');
30
29
  var ErrorContext = require('../../context/ErrorContext/ErrorContext.cjs');
31
30
  require('ethers');
32
31
  require('../../context/MockContext/MockContext.cjs');
33
32
  require('../../context/CaptchaContext/CaptchaContext.cjs');
34
33
  require('../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.cjs');
34
+ var TextButton = require('../../components/TextButton/TextButton.cjs');
35
35
  require('../../components/IconButton/IconButton.cjs');
36
36
  var PoweredByDynamic = require('../../components/PoweredByDynamic/PoweredByDynamic.cjs');
37
37
  var IconWithSpinner = require('../../components/IconWithSpinner/IconWithSpinner.cjs');
@@ -21,13 +21,13 @@ import 'react-focus-lock';
21
21
  import '../../components/Transition/ZoomTransition/ZoomTransition.js';
22
22
  import '../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
23
23
  import '../../components/Transition/OpacityTransition/OpacityTransition.js';
24
- import { TextButton } from '../../components/TextButton/TextButton.js';
25
24
  import { signInWithEmailVerification, retryEmailVerification } from '../../data/api.js';
26
25
  import { useErrorContext } from '../../context/ErrorContext/ErrorContext.js';
27
26
  import 'ethers';
28
27
  import '../../context/MockContext/MockContext.js';
29
28
  import '../../context/CaptchaContext/CaptchaContext.js';
30
29
  import '../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.js';
30
+ import { TextButton } from '../../components/TextButton/TextButton.js';
31
31
  import '../../components/IconButton/IconButton.js';
32
32
  import { PoweredByDynamic } from '../../components/PoweredByDynamic/PoweredByDynamic.js';
33
33
  import { IconWithSpinner } from '../../components/IconWithSpinner/IconWithSpinner.js';
@@ -42,7 +42,7 @@ const EmailWalletOTPVerificationView = () => {
42
42
  throw new Error('EmailWalletOtpVerificationView requires a email');
43
43
  }
44
44
  const handleBackClick = () => {
45
- emailWalletConnector.cancelPreviousEmail();
45
+ emailWalletConnector.clearEmail();
46
46
  clearStatesOnBackClick();
47
47
  setView('login-with-email-or-wallet');
48
48
  };
@@ -38,7 +38,7 @@ const EmailWalletOTPVerificationView = () => {
38
38
  throw new Error('EmailWalletOtpVerificationView requires a email');
39
39
  }
40
40
  const handleBackClick = () => {
41
- emailWalletConnector.cancelPreviousEmail();
41
+ emailWalletConnector.clearEmail();
42
42
  clearStatesOnBackClick();
43
43
  setView('login-with-email-or-wallet');
44
44
  };
@@ -19,7 +19,7 @@ var ErrorContainer = require('../../components/ErrorContainer/ErrorContainer.cjs
19
19
  var Divider = require('../../components/Divider/Divider.cjs');
20
20
  var useInternalDynamicContext = require('../../context/DynamicContext/useInternalDynamicContext.cjs');
21
21
  var classNames = require('../../utils/functions/classNames/classNames.cjs');
22
- var index = require('../../utils/functions/walletListBuilder/index.cjs');
22
+ var walletListBuilder = require('../../utils/functions/walletListBuilder/walletListBuilder.cjs');
23
23
  var LoginWithEmailForm = require('./components/LoginWithEmailForm/LoginWithEmailForm.cjs');
24
24
  var LoginWithEmailWalletList = require('./components/LoginWithEmailWalletList/LoginWithEmailWalletList.cjs');
25
25
 
@@ -28,7 +28,7 @@ const LoginWithEmailView = () => {
28
28
  const { error } = ErrorContext.useErrorContext();
29
29
  const { authorizationViewDisplayOrder, wallets, projectSettings } = useInternalDynamicContext.useInternalDynamicContext();
30
30
  const { walletsFilter, signWithEmailWalletName, loginWithEmail } = useInternalDynamicContext.useInternalDynamicContext();
31
- const { numberOfWallets, walletsList } = index.walletListBuilder({
31
+ const { numberOfWallets, walletsList } = walletListBuilder.walletListBuilder({
32
32
  inputList: wallets,
33
33
  isWalletConnectList: false,
34
34
  lastUsedWalletName: getFromLS.getFromLS(localStorage.LAST_USED_WALLET),
@@ -15,7 +15,7 @@ import { ErrorContainer } from '../../components/ErrorContainer/ErrorContainer.j
15
15
  import { Divider } from '../../components/Divider/Divider.js';
16
16
  import { useInternalDynamicContext } from '../../context/DynamicContext/useInternalDynamicContext.js';
17
17
  import { classNames } from '../../utils/functions/classNames/classNames.js';
18
- import { walletListBuilder } from '../../utils/functions/walletListBuilder/index.js';
18
+ import { walletListBuilder } from '../../utils/functions/walletListBuilder/walletListBuilder.js';
19
19
  import { LoginWithEmailForm } from './components/LoginWithEmailForm/LoginWithEmailForm.js';
20
20
  import { NUMBER_OF_WALLETS, LoginWithEmailWalletList } from './components/LoginWithEmailWalletList/LoginWithEmailWalletList.js';
21
21
 
@@ -31,6 +31,7 @@ require('../../../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.cjs')
31
31
  var useConnectWithEmail = require('../../../../utils/hooks/useConnectWithEmail/useConnectWithEmail.cjs');
32
32
  var EmailVerificationContext = require('../../../../context/EmailVerificationContext/EmailVerificationContext.cjs');
33
33
  var LoadingContext = require('../../../../context/LoadingContext/LoadingContext.cjs');
34
+ var SocialSignIn = require('../SocialSignIn/SocialSignIn.cjs');
34
35
 
35
36
  const EMAIL_REGEX = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i;
36
37
  const LoginWithEmailForm = () => {
@@ -95,7 +96,13 @@ const LoginWithEmailForm = () => {
95
96
  setLoading(false);
96
97
  }
97
98
  });
98
- return (jsxRuntime.jsxs("form", Object.assign({ className: 'login-with-email-form', onSubmit: (e) => handleSubmit(e) }, { children: [jsxRuntime.jsx(Input.Input, { id: 'email_field', value: emailValue, onChange: onChangeHandler, label: 'Enter your email', error: emailError, message: emailError && 'Please enter a valid email address' }), jsxRuntime.jsx(Button.Button, Object.assign({ buttonClassName: 'login-with-email-form__button', type: 'submit', loading: isLoading, disabled: isLoading, buttonVariant: 'primary', buttonPadding: 'large', buttonRounded: 'medium', expanded: true }, { children: "Continue" }))] })));
99
+ let socialSignInEnabled = false;
100
+ const params = new URLSearchParams(window.location.search);
101
+ if (params.has('socialSignIn')) {
102
+ socialSignInEnabled = true;
103
+ }
104
+ // social sign in currently coupled to email... might be better to decouple
105
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [socialSignInEnabled && jsxRuntime.jsx(SocialSignIn.SocialSignIn, {}), jsxRuntime.jsxs("form", Object.assign({ className: 'login-with-email-form', onSubmit: (e) => handleSubmit(e) }, { children: [jsxRuntime.jsx(Input.Input, { id: 'email_field', value: emailValue, onChange: onChangeHandler, label: 'Enter your email', error: emailError, message: emailError && 'Please enter a valid email address' }), jsxRuntime.jsx(Button.Button, Object.assign({ buttonClassName: 'login-with-email-form__button', type: 'submit', loading: isLoading, disabled: isLoading, buttonVariant: 'primary', buttonPadding: 'large', buttonRounded: 'medium', expanded: true }, { children: "Continue" }))] }))] }));
99
106
  };
100
107
 
101
108
  exports.EMAIL_REGEX = EMAIL_REGEX;
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from '../../../../../../_virtual/_tslib.js';
2
- import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
3
  import { useState, useMemo } from 'react';
4
4
  import { isEmailWalletConnector } from '@dynamic-labs/multi-wallet';
5
5
  import { createEmailVerification } from '../../../../data/api.js';
@@ -27,6 +27,7 @@ import '../../../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.js';
27
27
  import { useConnectWithEmail } from '../../../../utils/hooks/useConnectWithEmail/useConnectWithEmail.js';
28
28
  import { useEmailVerificationContext } from '../../../../context/EmailVerificationContext/EmailVerificationContext.js';
29
29
  import { useLoadingContext } from '../../../../context/LoadingContext/LoadingContext.js';
30
+ import { SocialSignIn } from '../SocialSignIn/SocialSignIn.js';
30
31
 
31
32
  const EMAIL_REGEX = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i;
32
33
  const LoginWithEmailForm = () => {
@@ -91,7 +92,13 @@ const LoginWithEmailForm = () => {
91
92
  setLoading(false);
92
93
  }
93
94
  });
94
- return (jsxs("form", Object.assign({ className: 'login-with-email-form', onSubmit: (e) => handleSubmit(e) }, { children: [jsx(Input, { id: 'email_field', value: emailValue, onChange: onChangeHandler, label: 'Enter your email', error: emailError, message: emailError && 'Please enter a valid email address' }), jsx(Button, Object.assign({ buttonClassName: 'login-with-email-form__button', type: 'submit', loading: isLoading, disabled: isLoading, buttonVariant: 'primary', buttonPadding: 'large', buttonRounded: 'medium', expanded: true }, { children: "Continue" }))] })));
95
+ let socialSignInEnabled = false;
96
+ const params = new URLSearchParams(window.location.search);
97
+ if (params.has('socialSignIn')) {
98
+ socialSignInEnabled = true;
99
+ }
100
+ // social sign in currently coupled to email... might be better to decouple
101
+ return (jsxs(Fragment, { children: [socialSignInEnabled && jsx(SocialSignIn, {}), jsxs("form", Object.assign({ className: 'login-with-email-form', onSubmit: (e) => handleSubmit(e) }, { children: [jsx(Input, { id: 'email_field', value: emailValue, onChange: onChangeHandler, label: 'Enter your email', error: emailError, message: emailError && 'Please enter a valid email address' }), jsx(Button, Object.assign({ buttonClassName: 'login-with-email-form__button', type: 'submit', loading: isLoading, disabled: isLoading, buttonVariant: 'primary', buttonPadding: 'large', buttonRounded: 'medium', expanded: true }, { children: "Continue" }))] }))] }));
95
102
  };
96
103
 
97
104
  export { EMAIL_REGEX, LoginWithEmailForm };
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var React = require('react');
7
+ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
8
+ require('@dynamic-labs/sdk-api');
9
+ require('../../../../shared/logger.cjs');
10
+ require('@dynamic-labs/iconic');
11
+ require('@dynamic-labs/multi-wallet');
12
+ require('../../../../context/ViewContext/ViewContext.cjs');
13
+ var close = require('../../../../shared/assets/close.cjs');
14
+ var dotsHorizontal = require('../../../../shared/assets/dots-horizontal.cjs');
15
+ require('../../../../utils/constants/colors.cjs');
16
+ require('../../../../shared/consts/index.cjs');
17
+ require('../../../../context/DynamicContext/DynamicContext.cjs');
18
+ require('../../../../components/ShadowDOM/ShadowDOM.cjs');
19
+ require('../../../../context/ThemeContext/ThemeContext.cjs');
20
+ var Icon = require('../../../../components/Icon/Icon.cjs');
21
+ require('react-dom');
22
+ require('react-focus-lock');
23
+ require('../../../../components/Transition/ZoomTransition/ZoomTransition.cjs');
24
+ require('../../../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
25
+ require('../../../../components/Transition/OpacityTransition/OpacityTransition.cjs');
26
+ require('../../../../config/ApiEndpoint.cjs');
27
+ require('../../../../context/ErrorContext/ErrorContext.cjs');
28
+ require('ethers');
29
+ require('../../../../context/MockContext/MockContext.cjs');
30
+ require('../../../../context/CaptchaContext/CaptchaContext.cjs');
31
+ var useMutation = require('../../../../utils/hooks/useMutation/useMutation.cjs');
32
+ require('../../../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.cjs');
33
+ var IconButton = require('../../../../components/IconButton/IconButton.cjs');
34
+ var ModalHeader = require('../../../../components/ModalHeader/ModalHeader.cjs');
35
+ var IconWithSpinner = require('../../../../components/IconWithSpinner/IconWithSpinner.cjs');
36
+ var IconListTile = require('../../../../components/IconListTile/IconListTile.cjs');
37
+ var SocialRedirectContext = require('../../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
38
+ var getSocialIcon = require('../../../../utils/functions/getSocialIcon/getSocialIcon.cjs');
39
+ var OverlayCard = require('../../../../components/OverlayCard/OverlayCard.cjs');
40
+ require('../../../../components/OverlayCard/OverlayCard.context.cjs');
41
+
42
+ const SocialSignIn = () => {
43
+ const { socialProvider, setSocialProvider, socialWalletConnector } = SocialRedirectContext.useSocialRedirectContext();
44
+ const [showCard, setShowCard] = React.useState(false);
45
+ const closeCard = () => !isLoading && setShowCard(false);
46
+ const showCardButton = walletConnectorCore.socialProviders.length > 5;
47
+ const socialProvidersToDisplayInline = showCardButton
48
+ ? walletConnectorCore.socialProviders.slice(0, 4)
49
+ : walletConnectorCore.socialProviders.slice(0, 5);
50
+ const numberOfSocialGridItems = socialProvidersToDisplayInline.length + (showCardButton ? 1 : 0);
51
+ const { mutate: onClickProvider, isLoading } = useMutation.useMutation((provider) => {
52
+ setSocialProvider(provider);
53
+ return socialWalletConnector === null || socialWalletConnector === void 0 ? void 0 : socialWalletConnector.connect(provider);
54
+ });
55
+ const closeButton = (jsxRuntime.jsx(IconButton.IconButton, Object.assign({ onClick: closeCard, type: 'button', id: 'close-button', disabled: isLoading, "data-testid": 'close-button' }, { children: jsxRuntime.jsx(close.ReactComponent, {}) })));
56
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", Object.assign({ className: 'social-sign-in', style: {
57
+ '--number-of-social-grid-items': numberOfSocialGridItems,
58
+ } }, { children: [socialProvidersToDisplayInline.map((provider) => (jsxRuntime.jsx(IconListTile.IconListTile, Object.assign({ dataTestId: `inline-${provider}`, onClick: () => onClickProvider(provider) }, { children: jsxRuntime.jsx(IconWithSpinner.IconWithSpinner, { Icon: getSocialIcon.getSocialIcon(provider), isSpinning: socialProvider === provider, iconSize: 32 }) }), provider))), showCardButton && (jsxRuntime.jsx(IconListTile.IconListTile, Object.assign({ dataTestId: 'show-more-options', onClick: () => setShowCard(true) }, { children: jsxRuntime.jsx(Icon.Icon, Object.assign({ color: 'text-primary' }, { children: jsxRuntime.jsx(dotsHorizontal.ReactComponent, {}) })) }), 'show-more-options'))] })), jsxRuntime.jsx(OverlayCard.OverlayCard, Object.assign({ isOpen: showCard, onClickOverlay: closeCard }, { children: jsxRuntime.jsxs("div", Object.assign({ className: 'social-sign-in--card' }, { children: [jsxRuntime.jsx(ModalHeader.ModalHeader, Object.assign({ trailing: closeButton }, { children: "Choose a social account" })), jsxRuntime.jsx("div", Object.assign({ className: 'social-sign-in--card--body' }, { children: walletConnectorCore.socialProviders.map((provider) => (jsxRuntime.jsx(IconListTile.IconListTile, Object.assign({ dataTestId: `card-${provider}`, onClick: () => onClickProvider(provider) }, { children: jsxRuntime.jsx(IconWithSpinner.IconWithSpinner, { Icon: getSocialIcon.getSocialIcon(provider), isSpinning: socialProvider === provider, iconSize: 32 }) }), provider))) }))] })) }))] }));
59
+ };
60
+
61
+ exports.SocialSignIn = SocialSignIn;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const SocialSignIn: () => JSX.Element;