@dynamic-labs/sdk-react-core 1.0.0-alpha.6 → 1.0.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.
- package/CHANGELOG.md +32 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +10 -10
- package/src/index.cjs +4 -2
- package/src/index.d.ts +1 -1
- package/src/index.js +2 -1
- package/src/lib/Main.cjs +18 -21
- package/src/lib/Main.js +18 -21
- package/src/lib/components/NeedHelpSection/NeedHelpSection.cjs +84 -5
- package/src/lib/components/NeedHelpSection/NeedHelpSection.js +85 -6
- package/src/lib/components/NetworkPicker/NetworkPicker.cjs +8 -6
- package/src/lib/components/NetworkPicker/NetworkPicker.d.ts +2 -1
- package/src/lib/components/NetworkPicker/NetworkPicker.js +8 -6
- package/src/lib/components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs +68 -0
- package/src/lib/components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.d.ts +6 -0
- package/src/lib/components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js +64 -0
- package/src/lib/components/PasskeyCreatedSuccessBanner/index.d.ts +1 -0
- package/src/lib/components/SecureTurnkeyWalletCard/SecureTurnkeyWalletCard.cjs +24 -0
- package/src/lib/components/SecureTurnkeyWalletCard/SecureTurnkeyWalletCard.d.ts +6 -0
- package/src/lib/components/SecureTurnkeyWalletCard/SecureTurnkeyWalletCard.js +20 -0
- package/src/lib/components/SecureTurnkeyWalletCard/index.d.ts +1 -0
- package/src/lib/components/SendBalanceForm/SendBalanceForm.cjs +4 -1
- package/src/lib/components/SendBalanceForm/SendBalanceForm.js +4 -1
- package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.cjs +5 -2
- package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.js +5 -2
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.cjs +6 -2
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.js +6 -2
- package/src/lib/components/index.d.ts +2 -0
- package/src/lib/context/DynamicContext/DynamicContext.cjs +8 -5
- package/src/lib/context/DynamicContext/DynamicContext.js +8 -5
- package/src/lib/context/DynamicContext/hooks/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/hooks/useShowPasskeyCreateSuccess/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/hooks/useShowPasskeyCreateSuccess/useShowPasskeyCreateSuccess.cjs +23 -0
- package/src/lib/context/DynamicContext/hooks/useShowPasskeyCreateSuccess/useShowPasskeyCreateSuccess.d.ts +4 -0
- package/src/lib/context/DynamicContext/hooks/useShowPasskeyCreateSuccess/useShowPasskeyCreateSuccess.js +19 -0
- package/src/lib/context/DynamicContext/types/index.d.ts +2 -1
- package/src/lib/data/api.cjs +14 -10
- package/src/lib/data/api.d.ts +2 -2
- package/src/lib/data/api.js +14 -10
- package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +9 -11
- package/src/lib/layout/DynamicAuthLayout/Header/header.js +10 -12
- package/src/lib/locale/en/translation.cjs +77 -3
- package/src/lib/locale/en/translation.d.ts +76 -2
- package/src/lib/locale/en/translation.js +77 -3
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +6 -2
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +6 -2
- package/src/lib/modals/SignMessageConfirmationModal/getProperErrorMessage.cjs +1 -1
- package/src/lib/modals/SignMessageConfirmationModal/getProperErrorMessage.js +1 -1
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.cjs +1 -1
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.js +1 -1
- package/src/lib/utils/hooks/index.d.ts +2 -0
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +1 -6
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +1 -6
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +3 -0
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +3 -0
- package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.cjs +7 -8
- package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.js +7 -8
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/index.d.ts +1 -0
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +83 -0
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.d.ts +15 -0
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +79 -0
- package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.cjs +11 -3
- package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.js +11 -3
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +57 -33
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +1 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +57 -33
- package/src/lib/utils/hooks/useEventListener/useEventListener.cjs +2 -1
- package/src/lib/utils/hooks/useEventListener/useEventListener.js +2 -1
- package/src/lib/utils/hooks/useIsTurnkeyWallet/index.d.ts +1 -0
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.cjs +37 -0
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.d.ts +6 -0
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.js +33 -0
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +9 -5
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.d.ts +0 -1
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +10 -6
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +20 -21
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +1 -2
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +20 -21
- package/src/lib/utils/hooks/useWalletsConnectionState/useWalletsConnectionState.cjs +32 -9
- package/src/lib/utils/hooks/useWalletsConnectionState/useWalletsConnectionState.d.ts +0 -1
- package/src/lib/utils/hooks/useWalletsConnectionState/useWalletsConnectionState.js +33 -10
- package/src/lib/views/AccountExistsView/AccountExistsView.cjs +1 -1
- package/src/lib/views/AccountExistsView/AccountExistsView.js +1 -1
- package/src/lib/views/CollectUserDataView/CollectUserDataView.cjs +1 -1
- package/src/lib/views/CollectUserDataView/CollectUserDataView.js +1 -1
- package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +1 -1
- package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +1 -1
- package/src/lib/views/LoginView/sections/SocialSignInSection/MagicSocialSignIn/MagicSocialSignIn.cjs +1 -1
- package/src/lib/views/LoginView/sections/SocialSignInSection/MagicSocialSignIn/MagicSocialSignIn.js +1 -1
- package/src/lib/views/LoginView/sections/SocialSignInSection/SocialSignInSection.cjs +2 -5
- package/src/lib/views/LoginView/sections/SocialSignInSection/SocialSignInSection.js +2 -5
- package/src/lib/views/LoginView/useLoginView.cjs +101 -84
- package/src/lib/views/LoginView/useLoginView.js +102 -85
- package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +6 -3
- package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +6 -3
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.cjs +20 -50
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.d.ts +1 -6
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.js +20 -50
- package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.cjs +7 -2
- package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.js +7 -2
- package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.cjs +11 -7
- package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.js +11 -7
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.cjs +8 -10
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.js +8 -10
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.cjs +56 -0
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.d.ts +13 -0
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.js +52 -0
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/index.d.ts +1 -0
- package/src/lib/views/Passkey/utils/index.d.ts +1 -0
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs +1 -1
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.js +1 -1
- package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.cjs +1 -1
- package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.js +1 -1
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +12 -2
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +12 -2
- package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs +3 -0
- package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.js +4 -1
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +6 -3
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +6 -3
- package/src/lib/widgets/DynamicWidget/components/DynamicNav/DynamicNav.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/components/DynamicNav/DynamicNav.js +2 -2
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +8 -5
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +8 -5
- package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.cjs +2 -3
- package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.js +2 -3
- package/src/lib/widgets/DynamicWidget/components/EmptyWallets/EmptyWallets.cjs +11 -2
- package/src/lib/widgets/DynamicWidget/components/EmptyWallets/EmptyWallets.js +11 -2
- package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.cjs +1 -2
- package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.js +1 -2
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.cjs +1 -3
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.js +1 -3
- package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.js +1 -1
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysWidgetView/ManagePasskeysWidgetView.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysWidgetView/ManagePasskeysWidgetView.js +2 -1
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs +16 -6
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js +16 -6
- package/src/lib/utils/functions/getEnabledProviders/index.cjs +0 -7
- package/src/lib/utils/functions/getEnabledProviders/index.js +0 -3
|
@@ -40,6 +40,7 @@ require('../../components/Popper/PopperContext/PopperContext.cjs');
|
|
|
40
40
|
require('react-focus-lock');
|
|
41
41
|
require('formik');
|
|
42
42
|
require('yup');
|
|
43
|
+
var useMutation = require('../../utils/hooks/useMutation/useMutation.cjs');
|
|
43
44
|
require('../../components/OverlayCard/OverlayCard.context.cjs');
|
|
44
45
|
require('../../context/FooterAnimationContext/index.cjs');
|
|
45
46
|
require('../../context/MockContext/MockContext.cjs');
|
|
@@ -57,7 +58,6 @@ require('@dynamic-labs/types');
|
|
|
57
58
|
require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
|
|
58
59
|
require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
|
|
59
60
|
require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
60
|
-
var useMutation = require('../../utils/hooks/useMutation/useMutation.cjs');
|
|
61
61
|
|
|
62
62
|
const EmailWalletOTPVerificationView = () => {
|
|
63
63
|
const { setView } = ViewContext.useViewContext();
|
|
@@ -36,6 +36,7 @@ import '../../components/Popper/PopperContext/PopperContext.js';
|
|
|
36
36
|
import 'react-focus-lock';
|
|
37
37
|
import 'formik';
|
|
38
38
|
import 'yup';
|
|
39
|
+
import { useMutation } from '../../utils/hooks/useMutation/useMutation.js';
|
|
39
40
|
import '../../components/OverlayCard/OverlayCard.context.js';
|
|
40
41
|
import '../../context/FooterAnimationContext/index.js';
|
|
41
42
|
import '../../context/MockContext/MockContext.js';
|
|
@@ -53,7 +54,6 @@ import '@dynamic-labs/types';
|
|
|
53
54
|
import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js';
|
|
54
55
|
import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
|
|
55
56
|
import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
|
|
56
|
-
import { useMutation } from '../../utils/hooks/useMutation/useMutation.js';
|
|
57
57
|
|
|
58
58
|
const EmailWalletOTPVerificationView = () => {
|
|
59
59
|
const { setView } = useViewContext();
|
package/src/lib/views/LoginView/sections/SocialSignInSection/MagicSocialSignIn/MagicSocialSignIn.cjs
CHANGED
|
@@ -46,13 +46,13 @@ require('../../../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs')
|
|
|
46
46
|
require('yup');
|
|
47
47
|
require('../../../../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.cjs');
|
|
48
48
|
require('@dynamic-labs/types');
|
|
49
|
+
var useMutation = require('../../../../../utils/hooks/useMutation/useMutation.cjs');
|
|
49
50
|
require('../../../../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
|
|
50
51
|
require('../../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
|
|
51
52
|
require('formik');
|
|
52
53
|
require('../../../../../components/IconButton/IconButton.cjs');
|
|
53
54
|
require('../../../../../components/Alert/Alert.cjs');
|
|
54
55
|
require('../../../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
55
|
-
var useMutation = require('../../../../../utils/hooks/useMutation/useMutation.cjs');
|
|
56
56
|
require('../../../../../components/InlineWidget/InlineWidget.cjs');
|
|
57
57
|
require('../../../../../components/MenuList/Dropdown/Dropdown.cjs');
|
|
58
58
|
require('../../../../../components/Popper/Popper/Popper.cjs');
|
package/src/lib/views/LoginView/sections/SocialSignInSection/MagicSocialSignIn/MagicSocialSignIn.js
CHANGED
|
@@ -42,13 +42,13 @@ import '../../../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
|
|
|
42
42
|
import 'yup';
|
|
43
43
|
import '../../../../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.js';
|
|
44
44
|
import '@dynamic-labs/types';
|
|
45
|
+
import { useMutation } from '../../../../../utils/hooks/useMutation/useMutation.js';
|
|
45
46
|
import '../../../../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js';
|
|
46
47
|
import '../../../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
|
|
47
48
|
import 'formik';
|
|
48
49
|
import '../../../../../components/IconButton/IconButton.js';
|
|
49
50
|
import '../../../../../components/Alert/Alert.js';
|
|
50
51
|
import '../../../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
|
|
51
|
-
import { useMutation } from '../../../../../utils/hooks/useMutation/useMutation.js';
|
|
52
52
|
import '../../../../../components/InlineWidget/InlineWidget.js';
|
|
53
53
|
import '../../../../../components/MenuList/Dropdown/Dropdown.js';
|
|
54
54
|
import '../../../../../components/Popper/Popper/Popper.js';
|
|
@@ -32,16 +32,13 @@ const SocialSignInSection = ({ sectionData, collapsedLayout, }) => {
|
|
|
32
32
|
numOfItemsToDisplay: sectionData.numOfItemsToDisplay,
|
|
33
33
|
};
|
|
34
34
|
const isMagicEnabled = isProviderEnabled.isProviderEnabled(providers, sdkApi.ProviderEnum.MagicLink);
|
|
35
|
-
const isDynamicEnabled = isProviderEnabled.isProviderEnabled(providers, sdkApi.ProviderEnum.Dynamic) ||
|
|
36
|
-
isProviderEnabled.isProviderEnabled(providers, sdkApi.ProviderEnum.EmailOnly);
|
|
37
35
|
if (isMagicEnabled &&
|
|
38
36
|
((_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.socialSignIn) === null || _b === void 0 ? void 0 : _b.signInProvider) ===
|
|
39
37
|
sdkApi.SignInProviderEnum.MagicLink) {
|
|
40
38
|
return jsxRuntime.jsx(MagicSocialSignIn.MagicSocialSignIn, Object.assign({}, componentProps));
|
|
41
39
|
}
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
sdkApi.SignInProviderEnum.Dynamic) {
|
|
40
|
+
if (((_c = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.socialSignIn) === null || _c === void 0 ? void 0 : _c.signInProvider) ===
|
|
41
|
+
sdkApi.SignInProviderEnum.Dynamic) {
|
|
45
42
|
return jsxRuntime.jsx(DynamicSocialSignIn.DynamicSocialSignIn, Object.assign({}, componentProps));
|
|
46
43
|
}
|
|
47
44
|
logger.logger.error('Failed to render SocialSignInSection - no sign in provider enabled');
|
|
@@ -28,16 +28,13 @@ const SocialSignInSection = ({ sectionData, collapsedLayout, }) => {
|
|
|
28
28
|
numOfItemsToDisplay: sectionData.numOfItemsToDisplay,
|
|
29
29
|
};
|
|
30
30
|
const isMagicEnabled = isProviderEnabled(providers, ProviderEnum.MagicLink);
|
|
31
|
-
const isDynamicEnabled = isProviderEnabled(providers, ProviderEnum.Dynamic) ||
|
|
32
|
-
isProviderEnabled(providers, ProviderEnum.EmailOnly);
|
|
33
31
|
if (isMagicEnabled &&
|
|
34
32
|
((_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.socialSignIn) === null || _b === void 0 ? void 0 : _b.signInProvider) ===
|
|
35
33
|
SignInProviderEnum.MagicLink) {
|
|
36
34
|
return jsx(MagicSocialSignIn, Object.assign({}, componentProps));
|
|
37
35
|
}
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
SignInProviderEnum.Dynamic) {
|
|
36
|
+
if (((_c = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.socialSignIn) === null || _c === void 0 ? void 0 : _c.signInProvider) ===
|
|
37
|
+
SignInProviderEnum.Dynamic) {
|
|
41
38
|
return jsx(DynamicSocialSignIn, Object.assign({}, componentProps));
|
|
42
39
|
}
|
|
43
40
|
logger.error('Failed to render SocialSignInSection - no sign in provider enabled');
|
|
@@ -19,15 +19,20 @@ require('viem');
|
|
|
19
19
|
require('@dynamic-labs/utils');
|
|
20
20
|
require('../../shared/consts/index.cjs');
|
|
21
21
|
require('@dynamic-labs/multi-wallet');
|
|
22
|
-
var index = require('../../utils/functions/getEnabledProviders/index.cjs');
|
|
23
22
|
var isEmailProviderEnabled = require('../../utils/functions/isEmailProviderEnabled/isEmailProviderEnabled.cjs');
|
|
24
23
|
|
|
25
24
|
/* eslint-disable multiline-comment-style */
|
|
26
25
|
const NUMBER_OF_WALLETS = 3;
|
|
27
26
|
const useLoginView = () => {
|
|
28
|
-
var _a, _b, _c, _d;
|
|
27
|
+
var _a, _b, _c, _d, _e, _f;
|
|
29
28
|
const { projectSettings, authorizationViewDisplayOrder, loginWithEmail, wallets, walletsFilter, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
29
|
+
const { t } = reactI18next.useTranslation();
|
|
30
30
|
const { enabledSocialProviders } = SocialRedirectContext.useSocialRedirectContext();
|
|
31
|
+
const hasSocialProvidersEnabled = Boolean(enabledSocialProviders === null || enabledSocialProviders === void 0 ? void 0 : enabledSocialProviders.length);
|
|
32
|
+
const hasEmailProviderEnabled = ((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
33
|
+
isEmailProviderEnabled.isEmailProviderEnabled(projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers);
|
|
34
|
+
// is email only is set in the project settings when the "Email (Web2) only" is toggled on in the dashboard
|
|
35
|
+
const isEmailOnly = (_c = (_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design) === null || _b === void 0 ? void 0 : _b.modal) === null || _c === void 0 ? void 0 : _c.emailOnly;
|
|
31
36
|
/** Takes from wallets only those that can be selected in the wallet list by the user.
|
|
32
37
|
* Should filter out embedded wallets
|
|
33
38
|
* WHY: when we decide whether to show wallets or not, we need to know how many wallets
|
|
@@ -35,61 +40,91 @@ const useLoginView = () => {
|
|
|
35
40
|
* wallets and then display an empty wallet list (since turnkey doesn't render)
|
|
36
41
|
*/
|
|
37
42
|
const selectableWallets = (walletsFilter ? walletsFilter(wallets) : wallets).filter(({ key }) => key !== 'turnkey');
|
|
38
|
-
const
|
|
39
|
-
|
|
43
|
+
const separator = React.useMemo(() => ({
|
|
44
|
+
label: t('dyn_login.separators.default'),
|
|
45
|
+
type: sdkApi.SdkViewSectionType.Separator,
|
|
46
|
+
}), [t]);
|
|
40
47
|
const isWalletOnly = React.useMemo(() => {
|
|
41
|
-
var _a, _b, _c
|
|
48
|
+
var _a, _b, _c;
|
|
42
49
|
if (!projectSettings) {
|
|
43
50
|
return false;
|
|
44
51
|
}
|
|
45
|
-
//
|
|
46
|
-
if (!loginWithEmail) {
|
|
52
|
+
// if both loginWithEmail AND hasSocialProvidersEnabled are false, it's wallet only
|
|
53
|
+
if (!loginWithEmail && !hasSocialProvidersEnabled) {
|
|
47
54
|
return true;
|
|
48
55
|
}
|
|
49
56
|
const loginView = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.views) === null || _b === void 0 ? void 0 : _b.find((view) => view.type === sdkApi.SdkViewType.Login);
|
|
50
|
-
// backwards compatibility for those that didn't set up login view
|
|
57
|
+
// backwards compatibility for those that didn't set up login view sections
|
|
51
58
|
if (!((_c = loginView === null || loginView === void 0 ? void 0 : loginView.sections) === null || _c === void 0 ? void 0 : _c.length)) {
|
|
52
|
-
return
|
|
53
|
-
!isEmailProviderEnabled.isEmailProviderEnabled(projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers));
|
|
59
|
+
return !hasEmailProviderEnabled && !hasSocialProvidersEnabled;
|
|
54
60
|
}
|
|
55
61
|
return (loginView.sections.length === 1 && loginView.sections[0].type === 'wallet');
|
|
56
|
-
}, [
|
|
62
|
+
}, [
|
|
63
|
+
projectSettings,
|
|
64
|
+
loginWithEmail,
|
|
65
|
+
hasSocialProvidersEnabled,
|
|
66
|
+
hasEmailProviderEnabled,
|
|
67
|
+
enabledSocialProviders === null || enabledSocialProviders === void 0 ? void 0 : enabledSocialProviders.length,
|
|
68
|
+
]);
|
|
57
69
|
/**
|
|
58
|
-
* build email
|
|
70
|
+
* build email from project settings design.modal props
|
|
59
71
|
* @returns SdkViewSection[]
|
|
60
72
|
*/
|
|
61
73
|
const getEmailViewSectionDefinition = React.useCallback(() => {
|
|
62
|
-
|
|
63
|
-
|
|
74
|
+
if (!hasEmailProviderEnabled)
|
|
75
|
+
return [];
|
|
76
|
+
return [
|
|
64
77
|
{
|
|
65
78
|
type: sdkApi.SdkViewSectionType.Email,
|
|
66
79
|
},
|
|
67
80
|
];
|
|
68
|
-
|
|
69
|
-
|
|
81
|
+
}, [hasEmailProviderEnabled]);
|
|
82
|
+
/**
|
|
83
|
+
* build social from project settings design.modal props
|
|
84
|
+
* @returns SdkViewSection[]
|
|
85
|
+
*/
|
|
86
|
+
const getSocialViewSectionDefinition = React.useCallback(() => {
|
|
87
|
+
if (!(enabledSocialProviders === null || enabledSocialProviders === void 0 ? void 0 : enabledSocialProviders.length))
|
|
88
|
+
return [];
|
|
89
|
+
return [
|
|
90
|
+
{
|
|
70
91
|
numOfItemsToDisplay: 5,
|
|
71
92
|
type: sdkApi.SdkViewSectionType.Social,
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
93
|
+
},
|
|
94
|
+
];
|
|
95
|
+
}, [enabledSocialProviders === null || enabledSocialProviders === void 0 ? void 0 : enabledSocialProviders.length]);
|
|
96
|
+
const getWalletViewSectionDefinition = React.useCallback(() => {
|
|
97
|
+
var _a, _b;
|
|
98
|
+
if (!(selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length))
|
|
99
|
+
return [];
|
|
100
|
+
const numOfItemsToDisplay = ((_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design) === null || _a === void 0 ? void 0 : _a.modal) === null || _b === void 0 ? void 0 : _b.showWalletsButton)
|
|
101
|
+
? 0
|
|
102
|
+
: NUMBER_OF_WALLETS;
|
|
103
|
+
return [
|
|
104
|
+
{
|
|
105
|
+
numOfItemsToDisplay,
|
|
106
|
+
type: sdkApi.SdkViewSectionType.Wallet,
|
|
107
|
+
},
|
|
108
|
+
];
|
|
87
109
|
}, [
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
(_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design.modal) === null || _b === void 0 ? void 0 : _b.splitEmailAndSocial,
|
|
91
|
-
t,
|
|
110
|
+
(_e = (_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design) === null || _d === void 0 ? void 0 : _d.modal) === null || _e === void 0 ? void 0 : _e.showWalletsButton,
|
|
111
|
+
selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length,
|
|
92
112
|
]);
|
|
113
|
+
const applyLoginModalSettings = React.useCallback((emailAndSocialSections) => {
|
|
114
|
+
if (emailAndSocialSections.length < 2) {
|
|
115
|
+
return emailAndSocialSections;
|
|
116
|
+
}
|
|
117
|
+
const { splitEmailAndSocial, socialAboveEmail } = (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design.modal) || {};
|
|
118
|
+
if (splitEmailAndSocial) {
|
|
119
|
+
emailAndSocialSections.splice(1, 0, separator);
|
|
120
|
+
// eslint-disable-next-line prefer-destructuring
|
|
121
|
+
emailAndSocialSections[2].defaultItem = enabledSocialProviders[0];
|
|
122
|
+
}
|
|
123
|
+
if (socialAboveEmail) {
|
|
124
|
+
emailAndSocialSections.reverse();
|
|
125
|
+
}
|
|
126
|
+
return emailAndSocialSections;
|
|
127
|
+
}, [enabledSocialProviders, projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design.modal, separator]);
|
|
93
128
|
// TODO: https://linear.app/dynamic-labs/issue/GVTY-212/rethink-or-implement-toolkit-template-for-email-wallet-order
|
|
94
129
|
/**
|
|
95
130
|
* remove wallet view section from projectSettings?.sdk?.views if no wallet defined
|
|
@@ -109,78 +144,60 @@ const useLoginView = () => {
|
|
|
109
144
|
}
|
|
110
145
|
return sections.filter((section) => section.type !== 'wallet');
|
|
111
146
|
}, [selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length, projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.chains]);
|
|
112
|
-
const addSeparator = React.useCallback((index) => {
|
|
113
|
-
// if not the first index, no separator is needed
|
|
114
|
-
// if the first index but does not have wallets or providers,
|
|
115
|
-
// it'll show only one view section - no separator is needed
|
|
116
|
-
if (index !== 0 || !(selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length) || !hasEnabledProviders) {
|
|
117
|
-
return [];
|
|
118
|
-
}
|
|
119
|
-
return [
|
|
120
|
-
{
|
|
121
|
-
label: t('dyn_login.separators.default'),
|
|
122
|
-
type: sdkApi.SdkViewSectionType.Separator,
|
|
123
|
-
},
|
|
124
|
-
];
|
|
125
|
-
}, [hasEnabledProviders, selectableWallets === null || selectableWallets === void 0 ? void 0 : selectableWallets.length, t]);
|
|
126
147
|
/**
|
|
127
148
|
* build login view sections array from project settings design.modal props - backwards compatibility
|
|
128
149
|
* @returns SdkViewSection[]
|
|
129
150
|
*/
|
|
130
|
-
const buildLoginSections = React.useCallback(() => {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if (
|
|
135
|
-
(
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
// add
|
|
139
|
-
|
|
151
|
+
const buildLoginSections = React.useCallback((buildOrder) => {
|
|
152
|
+
const loginViewSections = [];
|
|
153
|
+
buildOrder === null || buildOrder === void 0 ? void 0 : buildOrder.forEach((loginItem) => {
|
|
154
|
+
// Add a separator if there are sections already
|
|
155
|
+
if (loginViewSections.length)
|
|
156
|
+
loginViewSections.push(separator);
|
|
157
|
+
if (loginItem === 'email') {
|
|
158
|
+
// In the past, the email and social sections were combined into one section,
|
|
159
|
+
// so we need to check for that case and add the social section if needed for backwards compatibility
|
|
160
|
+
// if email was just pushed to the loginViewSections array and social is not defined in the buildOrder,
|
|
161
|
+
// then we need to add social (if social is enabled)
|
|
162
|
+
const emailAndSocialSections = [
|
|
163
|
+
...getEmailViewSectionDefinition(),
|
|
164
|
+
...getSocialViewSectionDefinition(),
|
|
165
|
+
];
|
|
166
|
+
loginViewSections.push(...applyLoginModalSettings(emailAndSocialSections));
|
|
140
167
|
}
|
|
141
|
-
if (loginItem === 'wallet'
|
|
142
|
-
|
|
143
|
-
const numOfItemsToDisplay = ((_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.design) === null || _a === void 0 ? void 0 : _a.modal) === null || _b === void 0 ? void 0 : _b.showWalletsButton)
|
|
144
|
-
? 0
|
|
145
|
-
: NUMBER_OF_WALLETS;
|
|
146
|
-
loginViewSections = loginViewSections.concat([
|
|
147
|
-
{
|
|
148
|
-
numOfItemsToDisplay,
|
|
149
|
-
type: sdkApi.SdkViewSectionType.Wallet,
|
|
150
|
-
},
|
|
151
|
-
],
|
|
152
|
-
// add separator if email providers defined
|
|
153
|
-
addSeparator(index));
|
|
168
|
+
if (loginItem === 'wallet') {
|
|
169
|
+
loginViewSections.push(...getWalletViewSectionDefinition());
|
|
154
170
|
}
|
|
155
171
|
});
|
|
156
172
|
return loginViewSections;
|
|
157
173
|
}, [
|
|
158
|
-
|
|
159
|
-
authorizationViewDisplayOrder,
|
|
174
|
+
applyLoginModalSettings,
|
|
160
175
|
getEmailViewSectionDefinition,
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
176
|
+
getSocialViewSectionDefinition,
|
|
177
|
+
getWalletViewSectionDefinition,
|
|
178
|
+
separator,
|
|
164
179
|
]);
|
|
165
180
|
/**
|
|
166
181
|
* returns the login view sections to be displayed in order from projectSettings?.sdk?.views
|
|
167
182
|
* and has backwards compatibility with project settings design.modal props
|
|
168
183
|
*/
|
|
169
184
|
const logingViewSections = React.useMemo(() => {
|
|
170
|
-
var _a, _b, _c
|
|
185
|
+
var _a, _b, _c;
|
|
171
186
|
const loginView = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.views) === null || _b === void 0 ? void 0 : _b.find((view) => view.type === sdkApi.SdkViewType.Login);
|
|
172
187
|
if ((_c = loginView === null || loginView === void 0 ? void 0 : loginView.sections) === null || _c === void 0 ? void 0 : _c.length) {
|
|
173
188
|
return filterLoginViewSections(loginView === null || loginView === void 0 ? void 0 : loginView.sections);
|
|
174
189
|
}
|
|
175
|
-
|
|
176
|
-
|
|
190
|
+
let viewOrder = authorizationViewDisplayOrder;
|
|
191
|
+
if (isEmailOnly) {
|
|
192
|
+
viewOrder = ['email'];
|
|
177
193
|
}
|
|
178
|
-
return buildLoginSections();
|
|
194
|
+
return buildLoginSections(viewOrder);
|
|
179
195
|
}, [
|
|
180
|
-
projectSettings,
|
|
181
|
-
|
|
182
|
-
|
|
196
|
+
(_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _f === void 0 ? void 0 : _f.views,
|
|
197
|
+
authorizationViewDisplayOrder,
|
|
198
|
+
isEmailOnly,
|
|
183
199
|
buildLoginSections,
|
|
200
|
+
filterLoginViewSections,
|
|
184
201
|
]);
|
|
185
202
|
return {
|
|
186
203
|
isWalletOnly,
|