@dynamic-labs/sdk-react-core 2.1.0-alpha.17 → 2.1.0-alpha.19
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 +18 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +13 -13
- package/src/lib/components/MfaRecoveryIcon/MfaRecoveryIcon.cjs +15 -0
- package/src/lib/components/MfaRecoveryIcon/MfaRecoveryIcon.d.ts +2 -0
- package/src/lib/components/MfaRecoveryIcon/MfaRecoveryIcon.js +11 -0
- package/src/lib/components/MfaRecoveryIcon/index.d.ts +1 -0
- package/src/lib/components/Portal/Portal.cjs +0 -1
- package/src/lib/components/Portal/Portal.js +0 -1
- package/src/lib/components/SocialSignIn/SocialSignIn.cjs +5 -2
- package/src/lib/components/SocialSignIn/SocialSignIn.js +5 -2
- package/src/lib/components/SyncEmbeddedWalletAuthFlow/SyncEmbeddedWalletAuthFlow.cjs +16 -28
- package/src/lib/components/SyncEmbeddedWalletAuthFlow/SyncEmbeddedWalletAuthFlow.js +16 -28
- package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.d.ts +1 -1
- package/src/lib/components/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/DynamicContext.cjs +1 -1
- package/src/lib/context/DynamicContext/DynamicContext.js +1 -1
- package/src/lib/context/DynamicContext/hooks/useNameService/useNameService.cjs +4 -5
- package/src/lib/context/DynamicContext/hooks/useNameService/useNameService.d.ts +3 -2
- package/src/lib/context/DynamicContext/hooks/useNameService/useNameService.js +4 -5
- package/src/lib/context/PasskeyContext/PasskeyContext.cjs +1 -1
- package/src/lib/context/PasskeyContext/PasskeyContext.js +2 -2
- package/src/lib/context/ViewContext/types/index.d.ts +1 -1
- package/src/lib/data/api/api.cjs +2 -2
- package/src/lib/data/api/api.js +2 -2
- package/src/lib/data/api/user/user.cjs +3 -0
- package/src/lib/data/api/user/user.js +4 -1
- package/src/lib/locale/en/translation.cjs +38 -21
- package/src/lib/locale/en/translation.d.ts +38 -21
- package/src/lib/locale/en/translation.js +38 -21
- package/src/lib/modals/SignMessageConfirmationModal/getProperErrorMessage.cjs +19 -2
- package/src/lib/modals/SignMessageConfirmationModal/getProperErrorMessage.js +19 -2
- package/src/lib/shared/assets/index.d.ts +1 -0
- package/src/lib/shared/assets/mfa-recovery-icon.cjs +54 -0
- package/src/lib/shared/assets/mfa-recovery-icon.js +30 -0
- package/src/lib/shared/utils/functions/lastAuthenticatedAccount/index.d.ts +2 -2
- package/src/lib/shared/utils/functions/wallet/createWallet.d.ts +4 -0
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/functions/createUserProfile/createUserProfile.cjs +1 -1
- package/src/lib/utils/functions/createUserProfile/createUserProfile.d.ts +2 -1
- package/src/lib/utils/functions/createUserProfile/createUserProfile.js +1 -1
- package/src/lib/utils/functions/getEnabledSocialSignInProvidersAsProviderEnum/getEnabledSocialSignInProvidersAsProviderEnum.cjs +21 -0
- package/src/lib/utils/functions/getEnabledSocialSignInProvidersAsProviderEnum/getEnabledSocialSignInProvidersAsProviderEnum.js +17 -0
- package/src/lib/utils/functions/getUserProfileFields/getUserProfileFields.cjs +6 -3
- package/src/lib/utils/functions/getUserProfileFields/getUserProfileFields.d.ts +2 -1
- package/src/lib/utils/functions/getUserProfileFields/getUserProfileFields.js +7 -4
- package/src/lib/utils/functions/validateMfaRecoveryCode/index.d.ts +1 -0
- package/src/lib/utils/functions/validateMfaRecoveryCode/validateMfaRecoveryCode.cjs +11 -0
- package/src/lib/utils/functions/validateMfaRecoveryCode/validateMfaRecoveryCode.d.ts +1 -0
- package/src/lib/utils/functions/validateMfaRecoveryCode/validateMfaRecoveryCode.js +7 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +5 -3
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +5 -3
- package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.cjs +8 -0
- package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.js +8 -0
- package/src/lib/utils/hooks/useDynamicModals/useDynamicModals.cjs +10 -1
- package/src/lib/utils/hooks/useDynamicModals/useDynamicModals.d.ts +5 -0
- package/src/lib/utils/hooks/useDynamicModals/useDynamicModals.js +10 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +21 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +1 -0
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +21 -1
- package/src/lib/utils/hooks/useKYCFlag/useKYCFlag.cjs +1 -0
- package/src/lib/utils/hooks/useKYCFlag/useKYCFlag.js +1 -0
- package/src/lib/utils/hooks/useMfaModals/index.d.ts +1 -0
- package/src/lib/utils/hooks/useMfaModals/useMfaModals.cjs +131 -0
- package/src/lib/utils/hooks/useMfaModals/useMfaModals.d.ts +8 -0
- package/src/lib/utils/hooks/useMfaModals/useMfaModals.js +127 -0
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +24 -3
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.d.ts +1 -0
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +24 -3
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +8 -4
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.d.ts +3 -3
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +8 -4
- package/src/lib/utils/hooks/useUserAuth/useUserAuth.cjs +42 -35
- package/src/lib/utils/hooks/useUserAuth/useUserAuth.js +43 -36
- package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs +7 -2
- package/src/lib/utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js +7 -2
- package/src/lib/views/EmailVerification/EmailVerification.cjs +1 -10
- package/src/lib/views/EmailVerification/EmailVerification.js +1 -10
- package/src/lib/views/FarcasterQrCodeView/FarcasterQrCodeView.cjs +1 -1
- package/src/lib/views/FarcasterQrCodeView/FarcasterQrCodeView.js +1 -1
- package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.cjs +5 -2
- package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.js +5 -2
- package/src/lib/views/MfaRecoveryView/MfaRecoveryView.cjs +116 -0
- package/src/lib/views/MfaRecoveryView/MfaRecoveryView.d.ts +2 -0
- package/src/lib/views/MfaRecoveryView/MfaRecoveryView.js +112 -0
- package/src/lib/views/MfaRecoveryView/index.d.ts +1 -0
- package/src/lib/views/viewToComponentMap.cjs +2 -2
- package/src/lib/views/viewToComponentMap.d.ts +2 -2
- package/src/lib/views/viewToComponentMap.js +2 -2
- package/src/lib/widgets/DynamicBridgeWidget/views/ProfileView/ProfileView.cjs +5 -1
- package/src/lib/widgets/DynamicBridgeWidget/views/ProfileView/ProfileView.js +5 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.cjs +3 -3
- package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.js +3 -3
- package/src/lib/views/EmailUpdate/EmailUpdate.cjs +0 -131
- package/src/lib/views/EmailUpdate/EmailUpdate.d.ts +0 -2
- package/src/lib/views/EmailUpdate/EmailUpdate.js +0 -127
- package/src/lib/views/EmailUpdate/index.d.ts +0 -1
|
@@ -29,7 +29,7 @@ const createUserProfile = (decodedJwt) => {
|
|
|
29
29
|
team: decodedJwt.team,
|
|
30
30
|
username: decodedJwt.username,
|
|
31
31
|
};
|
|
32
|
-
const userProfile = Object.assign({ chain: wallet === null || wallet === void 0 ? void 0 : wallet.chain, ens: wallet === null || wallet === void 0 ? void 0 : wallet.nameService, environmentId: decodedJwt.environmentId, isAuthenticatedWithAWallet: (wallet === null || wallet === void 0 ? void 0 : wallet.format) === 'blockchain', lastVerifiedCredentialId: decodedJwt.lastVerifiedCredentialId, lists: decodedJwt.lists, metadata: decodedJwt.metadata, newUser: decodedJwt.newUser, scope: decodedJwt.scope, sessionId: decodedJwt.sid, userId: decodedJwt.sub, verifiedCredentials: decodedJwt.verifiedCredentials || [], wallet: wallet === null || wallet === void 0 ? void 0 : wallet.walletName }, kyc);
|
|
32
|
+
const userProfile = Object.assign({ chain: wallet === null || wallet === void 0 ? void 0 : wallet.chain, ens: wallet === null || wallet === void 0 ? void 0 : wallet.nameService, environmentId: decodedJwt.environmentId, isAuthenticatedWithAWallet: (wallet === null || wallet === void 0 ? void 0 : wallet.format) === 'blockchain', lastVerifiedCredentialId: decodedJwt.lastVerifiedCredentialId, lists: decodedJwt.lists, metadata: decodedJwt.metadata, missingFields: decodedJwt.missingFields, newUser: decodedJwt.newUser, scope: decodedJwt.scope, sessionId: decodedJwt.sid, userId: decodedJwt.sub, verifiedCredentials: decodedJwt.verifiedCredentials || [], wallet: wallet === null || wallet === void 0 ? void 0 : wallet.walletName }, kyc);
|
|
33
33
|
return userProfile;
|
|
34
34
|
};
|
|
35
35
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { DynamicJwt } from '@dynamic-labs/sdk-api-core';
|
|
1
|
+
import { DynamicJwt, SdkUser } from '@dynamic-labs/sdk-api-core';
|
|
2
2
|
import { UserProfile } from '@dynamic-labs/types';
|
|
3
3
|
export declare const createUserProfile: (decodedJwt: DynamicJwt) => UserProfile;
|
|
4
|
+
export declare const createUserProfileFromSdkUser: (user: SdkUser) => UserProfile;
|
|
@@ -25,7 +25,7 @@ const createUserProfile = (decodedJwt) => {
|
|
|
25
25
|
team: decodedJwt.team,
|
|
26
26
|
username: decodedJwt.username,
|
|
27
27
|
};
|
|
28
|
-
const userProfile = Object.assign({ chain: wallet === null || wallet === void 0 ? void 0 : wallet.chain, ens: wallet === null || wallet === void 0 ? void 0 : wallet.nameService, environmentId: decodedJwt.environmentId, isAuthenticatedWithAWallet: (wallet === null || wallet === void 0 ? void 0 : wallet.format) === 'blockchain', lastVerifiedCredentialId: decodedJwt.lastVerifiedCredentialId, lists: decodedJwt.lists, metadata: decodedJwt.metadata, newUser: decodedJwt.newUser, scope: decodedJwt.scope, sessionId: decodedJwt.sid, userId: decodedJwt.sub, verifiedCredentials: decodedJwt.verifiedCredentials || [], wallet: wallet === null || wallet === void 0 ? void 0 : wallet.walletName }, kyc);
|
|
28
|
+
const userProfile = Object.assign({ chain: wallet === null || wallet === void 0 ? void 0 : wallet.chain, ens: wallet === null || wallet === void 0 ? void 0 : wallet.nameService, environmentId: decodedJwt.environmentId, isAuthenticatedWithAWallet: (wallet === null || wallet === void 0 ? void 0 : wallet.format) === 'blockchain', lastVerifiedCredentialId: decodedJwt.lastVerifiedCredentialId, lists: decodedJwt.lists, metadata: decodedJwt.metadata, missingFields: decodedJwt.missingFields, newUser: decodedJwt.newUser, scope: decodedJwt.scope, sessionId: decodedJwt.sid, userId: decodedJwt.sub, verifiedCredentials: decodedJwt.verifiedCredentials || [], wallet: wallet === null || wallet === void 0 ? void 0 : wallet.walletName }, kyc);
|
|
29
29
|
return userProfile;
|
|
30
30
|
};
|
|
31
31
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var getProviderEnumForSocialSignInProvider = require('../getProviderEnumForSocialSignInProvider/getProviderEnumForSocialSignInProvider.cjs');
|
|
7
|
+
|
|
8
|
+
const getEnabledSocialSignInProvidersAsProviderEnum = (providers) => {
|
|
9
|
+
if (!providers)
|
|
10
|
+
return [];
|
|
11
|
+
const enabledProviders = [];
|
|
12
|
+
for (const provider of providers) {
|
|
13
|
+
const matchingProviderEnum = getProviderEnumForSocialSignInProvider.getProviderEnumForSocialSignInProvider(provider.provider);
|
|
14
|
+
if (matchingProviderEnum && provider.enabled) {
|
|
15
|
+
enabledProviders.push(matchingProviderEnum);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return enabledProviders;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.getEnabledSocialSignInProvidersAsProviderEnum = getEnabledSocialSignInProvidersAsProviderEnum;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { getProviderEnumForSocialSignInProvider } from '../getProviderEnumForSocialSignInProvider/getProviderEnumForSocialSignInProvider.js';
|
|
3
|
+
|
|
4
|
+
const getEnabledSocialSignInProvidersAsProviderEnum = (providers) => {
|
|
5
|
+
if (!providers)
|
|
6
|
+
return [];
|
|
7
|
+
const enabledProviders = [];
|
|
8
|
+
for (const provider of providers) {
|
|
9
|
+
const matchingProviderEnum = getProviderEnumForSocialSignInProvider(provider.provider);
|
|
10
|
+
if (matchingProviderEnum && provider.enabled) {
|
|
11
|
+
enabledProviders.push(matchingProviderEnum);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return enabledProviders;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { getEnabledSocialSignInProvidersAsProviderEnum };
|
|
@@ -37,7 +37,7 @@ const mapUserFieldsToKycSettings = (user, projectSettingsKyc) => {
|
|
|
37
37
|
* @param {ProjectSettingsKyc[]} projectSettings - The project settings KYC object array.
|
|
38
38
|
* @returns {ProjectSettingsKyc[]} - The list of editable user profile fields based on project settings.
|
|
39
39
|
*/
|
|
40
|
-
const getEditableUserProfileFields = (projectSettings) => index.getEnabledKYC(projectSettings).filter(({ name }) => !filterFields.includes(name));
|
|
40
|
+
const getEditableUserProfileFields = (projectSettings) => index.getEnabledKYC(projectSettings).filter(({ name, type }) => type === sdkApiCore.KycFieldType.Custom || !filterFields.includes(name));
|
|
41
41
|
/**
|
|
42
42
|
* Get non-editable user profile fields that exist in the user profile and are disabled in the project
|
|
43
43
|
* @param {Object} options - The function options object.
|
|
@@ -58,9 +58,12 @@ const getNonEditableUserProfileFields = ({ projectSettingsKyc = [], user, }) =>
|
|
|
58
58
|
* @param {UserProfile} options.user - The user profile object.
|
|
59
59
|
* @returns {ProjectSettingsKyc[]} - The list of all user profile fields based on project settings.
|
|
60
60
|
*/
|
|
61
|
-
const getUserProfileFields = ({ projectSettingsKyc = [], user, }) => {
|
|
61
|
+
const getUserProfileFields = ({ projectSettingsKyc = [], customFields = [], user, }) => {
|
|
62
62
|
var _a;
|
|
63
|
-
const editableUserProfileFields = getEditableUserProfileFields(
|
|
63
|
+
const editableUserProfileFields = getEditableUserProfileFields([
|
|
64
|
+
...projectSettingsKyc,
|
|
65
|
+
...customFields,
|
|
66
|
+
]);
|
|
64
67
|
const nonEditableUserProfileFields = getNonEditableUserProfileFields({
|
|
65
68
|
projectSettingsKyc,
|
|
66
69
|
user,
|
|
@@ -24,7 +24,8 @@ export declare const getNonEditableUserProfileFields: ({ projectSettingsKyc, use
|
|
|
24
24
|
* @param {UserProfile} options.user - The user profile object.
|
|
25
25
|
* @returns {ProjectSettingsKyc[]} - The list of all user profile fields based on project settings.
|
|
26
26
|
*/
|
|
27
|
-
export declare const getUserProfileFields: ({ projectSettingsKyc, user, }: {
|
|
27
|
+
export declare const getUserProfileFields: ({ projectSettingsKyc, customFields, user, }: {
|
|
28
28
|
projectSettingsKyc?: ProjectSettingsKyc[];
|
|
29
|
+
customFields?: ProjectSettingsKyc[];
|
|
29
30
|
user?: UserProfile;
|
|
30
31
|
}) => ProjectSettingsKyc[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
import { WalletProviderEnum, KycFieldType } from '@dynamic-labs/sdk-api-core';
|
|
3
3
|
import { getEnabledKYC } from '../getEnabledKYC/index.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -33,7 +33,7 @@ const mapUserFieldsToKycSettings = (user, projectSettingsKyc) => {
|
|
|
33
33
|
* @param {ProjectSettingsKyc[]} projectSettings - The project settings KYC object array.
|
|
34
34
|
* @returns {ProjectSettingsKyc[]} - The list of editable user profile fields based on project settings.
|
|
35
35
|
*/
|
|
36
|
-
const getEditableUserProfileFields = (projectSettings) => getEnabledKYC(projectSettings).filter(({ name }) => !filterFields.includes(name));
|
|
36
|
+
const getEditableUserProfileFields = (projectSettings) => getEnabledKYC(projectSettings).filter(({ name, type }) => type === KycFieldType.Custom || !filterFields.includes(name));
|
|
37
37
|
/**
|
|
38
38
|
* Get non-editable user profile fields that exist in the user profile and are disabled in the project
|
|
39
39
|
* @param {Object} options - The function options object.
|
|
@@ -54,9 +54,12 @@ const getNonEditableUserProfileFields = ({ projectSettingsKyc = [], user, }) =>
|
|
|
54
54
|
* @param {UserProfile} options.user - The user profile object.
|
|
55
55
|
* @returns {ProjectSettingsKyc[]} - The list of all user profile fields based on project settings.
|
|
56
56
|
*/
|
|
57
|
-
const getUserProfileFields = ({ projectSettingsKyc = [], user, }) => {
|
|
57
|
+
const getUserProfileFields = ({ projectSettingsKyc = [], customFields = [], user, }) => {
|
|
58
58
|
var _a;
|
|
59
|
-
const editableUserProfileFields = getEditableUserProfileFields(
|
|
59
|
+
const editableUserProfileFields = getEditableUserProfileFields([
|
|
60
|
+
...projectSettingsKyc,
|
|
61
|
+
...customFields,
|
|
62
|
+
]);
|
|
60
63
|
const nonEditableUserProfileFields = getNonEditableUserProfileFields({
|
|
61
64
|
projectSettingsKyc,
|
|
62
65
|
user,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { validateMfaRecoveryCode } from './validateMfaRecoveryCode';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
const validateMfaRecoveryCode = (text) => {
|
|
7
|
+
const regex = /^(\w+\s){23}\w+$/;
|
|
8
|
+
return regex.test(text);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
exports.validateMfaRecoveryCode = validateMfaRecoveryCode;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const validateMfaRecoveryCode: (text: string) => boolean;
|
|
@@ -117,7 +117,6 @@ const useAuthLayoutChecks = () => {
|
|
|
117
117
|
view.type !== 'passkey-intro' &&
|
|
118
118
|
view.type !== 'passkey-new-domain-detected' &&
|
|
119
119
|
view.type !== 'social-redirect-view' &&
|
|
120
|
-
view.type !== 'update-email' &&
|
|
121
120
|
view.type !== 'collect-user-data-login-no-wallet' &&
|
|
122
121
|
view.type !== 'passkey-recovery-bundle' &&
|
|
123
122
|
view.type !== 'passkey-recovery-start' &&
|
|
@@ -169,7 +168,8 @@ const useAuthLayoutChecks = () => {
|
|
|
169
168
|
view.type === 'merge-user-accounts' ||
|
|
170
169
|
view.type === 'merge-user-accounts-conflicts' ||
|
|
171
170
|
view.type === 'mfa-verification' ||
|
|
172
|
-
view.type === 'mfa-display-backup-codes'
|
|
171
|
+
view.type === 'mfa-display-backup-codes' ||
|
|
172
|
+
view.type === 'mfa-recovery');
|
|
173
173
|
const showCloseButton = view.type !== 'login-with-email-or-wallet-full-wallet-list' &&
|
|
174
174
|
view.type !== 'login-with-email-verification' &&
|
|
175
175
|
view.type !== 'login-with-sms-verification' &&
|
|
@@ -180,7 +180,8 @@ const useAuthLayoutChecks = () => {
|
|
|
180
180
|
view.type !== 'rename-passkey' &&
|
|
181
181
|
view.type !== 'qr-code' &&
|
|
182
182
|
view.type !== 'mfa-verification' &&
|
|
183
|
-
view.type !== 'mfa-display-backup-codes'
|
|
183
|
+
view.type !== 'mfa-display-backup-codes' &&
|
|
184
|
+
view.type !== 'mfa-recovery';
|
|
184
185
|
const showBackButton = view.type === 'pending-signature' ||
|
|
185
186
|
view.type === 'no-qr-not-installed' ||
|
|
186
187
|
view.type === 'wallet-connect-mobile-wallets-list' ||
|
|
@@ -197,6 +198,7 @@ const useAuthLayoutChecks = () => {
|
|
|
197
198
|
view.type === 'farcaster-connect-view' ||
|
|
198
199
|
view.type === 'mfa-verification' ||
|
|
199
200
|
view.type === 'merge-user-accounts-conflicts' ||
|
|
201
|
+
view.type === 'mfa-recovery' ||
|
|
200
202
|
(view.type === 'merge-user-accounts-with-same-email' && !user);
|
|
201
203
|
const showDefaultFooter = !showConnectedWalletProgress && !showDynamicFooter && !showToSFooter;
|
|
202
204
|
const shouldHideDynamicFooterSeparator = showDynamicFooter && showToSFooter;
|
|
@@ -113,7 +113,6 @@ const useAuthLayoutChecks = () => {
|
|
|
113
113
|
view.type !== 'passkey-intro' &&
|
|
114
114
|
view.type !== 'passkey-new-domain-detected' &&
|
|
115
115
|
view.type !== 'social-redirect-view' &&
|
|
116
|
-
view.type !== 'update-email' &&
|
|
117
116
|
view.type !== 'collect-user-data-login-no-wallet' &&
|
|
118
117
|
view.type !== 'passkey-recovery-bundle' &&
|
|
119
118
|
view.type !== 'passkey-recovery-start' &&
|
|
@@ -165,7 +164,8 @@ const useAuthLayoutChecks = () => {
|
|
|
165
164
|
view.type === 'merge-user-accounts' ||
|
|
166
165
|
view.type === 'merge-user-accounts-conflicts' ||
|
|
167
166
|
view.type === 'mfa-verification' ||
|
|
168
|
-
view.type === 'mfa-display-backup-codes'
|
|
167
|
+
view.type === 'mfa-display-backup-codes' ||
|
|
168
|
+
view.type === 'mfa-recovery');
|
|
169
169
|
const showCloseButton = view.type !== 'login-with-email-or-wallet-full-wallet-list' &&
|
|
170
170
|
view.type !== 'login-with-email-verification' &&
|
|
171
171
|
view.type !== 'login-with-sms-verification' &&
|
|
@@ -176,7 +176,8 @@ const useAuthLayoutChecks = () => {
|
|
|
176
176
|
view.type !== 'rename-passkey' &&
|
|
177
177
|
view.type !== 'qr-code' &&
|
|
178
178
|
view.type !== 'mfa-verification' &&
|
|
179
|
-
view.type !== 'mfa-display-backup-codes'
|
|
179
|
+
view.type !== 'mfa-display-backup-codes' &&
|
|
180
|
+
view.type !== 'mfa-recovery';
|
|
180
181
|
const showBackButton = view.type === 'pending-signature' ||
|
|
181
182
|
view.type === 'no-qr-not-installed' ||
|
|
182
183
|
view.type === 'wallet-connect-mobile-wallets-list' ||
|
|
@@ -193,6 +194,7 @@ const useAuthLayoutChecks = () => {
|
|
|
193
194
|
view.type === 'farcaster-connect-view' ||
|
|
194
195
|
view.type === 'mfa-verification' ||
|
|
195
196
|
view.type === 'merge-user-accounts-conflicts' ||
|
|
197
|
+
view.type === 'mfa-recovery' ||
|
|
196
198
|
(view.type === 'merge-user-accounts-with-same-email' && !user);
|
|
197
199
|
const showDefaultFooter = !showConnectedWalletProgress && !showDynamicFooter && !showToSFooter;
|
|
198
200
|
const shouldHideDynamicFooterSeparator = showDynamicFooter && showToSFooter;
|
|
@@ -31,6 +31,10 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
|
|
|
31
31
|
copykey: 'dyn_mfa.choose_device_view.title',
|
|
32
32
|
heading: t('dyn_mfa.choose_device_view.title'),
|
|
33
33
|
},
|
|
34
|
+
'mfa-recovery': {
|
|
35
|
+
copykey: 'dyn_mfa.recovery_view.helper.title',
|
|
36
|
+
heading: t('dyn_mfa.recovery_view.helper.title'),
|
|
37
|
+
},
|
|
34
38
|
'mfa-secure-device': {
|
|
35
39
|
copykey: 'dyn_mfa.secure_device_view.title',
|
|
36
40
|
heading: t('dyn_mfa.secure_device_view.title'),
|
|
@@ -117,6 +121,10 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
|
|
|
117
121
|
copykey: 'dyn_mfa.display_backup_codes_view.title',
|
|
118
122
|
heading: t('dyn_mfa.display_backup_codes_view.title'),
|
|
119
123
|
},
|
|
124
|
+
'mfa-recovery': {
|
|
125
|
+
copykey: 'dyn_mfa.recovery_view.title',
|
|
126
|
+
heading: t('dyn_mfa.recovery_view.title'),
|
|
127
|
+
},
|
|
120
128
|
'mfa-secure-device': {
|
|
121
129
|
copykey: 'dyn_mfa.secure_device_view.title',
|
|
122
130
|
heading: t('dyn_mfa.secure_device_view.title'),
|
|
@@ -27,6 +27,10 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
|
|
|
27
27
|
copykey: 'dyn_mfa.choose_device_view.title',
|
|
28
28
|
heading: t('dyn_mfa.choose_device_view.title'),
|
|
29
29
|
},
|
|
30
|
+
'mfa-recovery': {
|
|
31
|
+
copykey: 'dyn_mfa.recovery_view.helper.title',
|
|
32
|
+
heading: t('dyn_mfa.recovery_view.helper.title'),
|
|
33
|
+
},
|
|
30
34
|
'mfa-secure-device': {
|
|
31
35
|
copykey: 'dyn_mfa.secure_device_view.title',
|
|
32
36
|
heading: t('dyn_mfa.secure_device_view.title'),
|
|
@@ -113,6 +117,10 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
|
|
|
113
117
|
copykey: 'dyn_mfa.display_backup_codes_view.title',
|
|
114
118
|
heading: t('dyn_mfa.display_backup_codes_view.title'),
|
|
115
119
|
},
|
|
120
|
+
'mfa-recovery': {
|
|
121
|
+
copykey: 'dyn_mfa.recovery_view.title',
|
|
122
|
+
heading: t('dyn_mfa.recovery_view.title'),
|
|
123
|
+
},
|
|
116
124
|
'mfa-secure-device': {
|
|
117
125
|
copykey: 'dyn_mfa.secure_device_view.title',
|
|
118
126
|
heading: t('dyn_mfa.secure_device_view.title'),
|
|
@@ -74,6 +74,7 @@ require('../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWi
|
|
|
74
74
|
require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
|
|
75
75
|
require('../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
|
|
76
76
|
require('../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
77
|
+
var useMfaModals = require('../useMfaModals/useMfaModals.cjs');
|
|
77
78
|
var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
78
79
|
|
|
79
80
|
/**
|
|
@@ -89,6 +90,7 @@ const useDynamicModals = () => {
|
|
|
89
90
|
const isLoggedIn = useIsLoggedIn.useIsLoggedIn();
|
|
90
91
|
const { setView } = ViewContext.useViewContext();
|
|
91
92
|
const canLink = isAllowedToLinkWallet.isAllowedToLinkWallet(projectSettings, user === null || user === void 0 ? void 0 : user.verifiedCredentials, multiWallet);
|
|
93
|
+
const { setShowMfaChooseType, setShowMfaEnterBackupCodes, setShowMfaQRCode, setShowMfaViewBackupCodes, setShowOTPVerification, } = useMfaModals.useMfaModals();
|
|
92
94
|
const setSetShowLinkNewWalletModalWithInit = React.useCallback((value) => {
|
|
93
95
|
if (value) {
|
|
94
96
|
// Do not change state if the user is already signed in and multi-wallet is not enabled
|
|
@@ -109,7 +111,14 @@ const useDynamicModals = () => {
|
|
|
109
111
|
performMultiWalletChecks: false,
|
|
110
112
|
});
|
|
111
113
|
}, [canLink, isLoggedIn, setShowAuthFlow, setView]);
|
|
112
|
-
return {
|
|
114
|
+
return {
|
|
115
|
+
setShowLinkNewWalletModal: setSetShowLinkNewWalletModalWithInit,
|
|
116
|
+
setShowMfaChooseType,
|
|
117
|
+
setShowMfaEnterBackupCodes,
|
|
118
|
+
setShowMfaQRCode,
|
|
119
|
+
setShowMfaViewBackupCodes,
|
|
120
|
+
setShowOTPVerification,
|
|
121
|
+
};
|
|
113
122
|
};
|
|
114
123
|
|
|
115
124
|
exports.useDynamicModals = useDynamicModals;
|
|
@@ -9,4 +9,9 @@ import { Dispatch, SetStateAction } from 'react';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const useDynamicModals: () => {
|
|
11
11
|
setShowLinkNewWalletModal: Dispatch<SetStateAction<boolean>>;
|
|
12
|
+
setShowMfaChooseType: Dispatch<SetStateAction<boolean>>;
|
|
13
|
+
setShowMfaEnterBackupCodes: Dispatch<SetStateAction<boolean>>;
|
|
14
|
+
setShowMfaQRCode: Dispatch<SetStateAction<boolean>>;
|
|
15
|
+
setShowMfaViewBackupCodes: Dispatch<SetStateAction<boolean>>;
|
|
16
|
+
setShowOTPVerification: Dispatch<SetStateAction<boolean>>;
|
|
12
17
|
};
|
|
@@ -70,6 +70,7 @@ import '../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWid
|
|
|
70
70
|
import '../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
|
|
71
71
|
import '../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.js';
|
|
72
72
|
import '../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
|
|
73
|
+
import { useMfaModals } from '../useMfaModals/useMfaModals.js';
|
|
73
74
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
|
|
74
75
|
|
|
75
76
|
/**
|
|
@@ -85,6 +86,7 @@ const useDynamicModals = () => {
|
|
|
85
86
|
const isLoggedIn = useIsLoggedIn();
|
|
86
87
|
const { setView } = useViewContext();
|
|
87
88
|
const canLink = isAllowedToLinkWallet(projectSettings, user === null || user === void 0 ? void 0 : user.verifiedCredentials, multiWallet);
|
|
89
|
+
const { setShowMfaChooseType, setShowMfaEnterBackupCodes, setShowMfaQRCode, setShowMfaViewBackupCodes, setShowOTPVerification, } = useMfaModals();
|
|
88
90
|
const setSetShowLinkNewWalletModalWithInit = useCallback((value) => {
|
|
89
91
|
if (value) {
|
|
90
92
|
// Do not change state if the user is already signed in and multi-wallet is not enabled
|
|
@@ -105,7 +107,14 @@ const useDynamicModals = () => {
|
|
|
105
107
|
performMultiWalletChecks: false,
|
|
106
108
|
});
|
|
107
109
|
}, [canLink, isLoggedIn, setShowAuthFlow, setView]);
|
|
108
|
-
return {
|
|
110
|
+
return {
|
|
111
|
+
setShowLinkNewWalletModal: setSetShowLinkNewWalletModalWithInit,
|
|
112
|
+
setShowMfaChooseType,
|
|
113
|
+
setShowMfaEnterBackupCodes,
|
|
114
|
+
setShowMfaQRCode,
|
|
115
|
+
setShowMfaViewBackupCodes,
|
|
116
|
+
setShowOTPVerification,
|
|
117
|
+
};
|
|
109
118
|
};
|
|
110
119
|
|
|
111
120
|
export { useDynamicModals };
|
|
@@ -24,8 +24,10 @@ require('../../../context/ErrorContext/ErrorContext.cjs');
|
|
|
24
24
|
require('@dynamic-labs/multi-wallet');
|
|
25
25
|
var getAuthToken = require('../../functions/getAuthToken/getAuthToken.cjs');
|
|
26
26
|
require('react-international-phone');
|
|
27
|
+
var isTurnkeyEnabled = require('../../functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs');
|
|
27
28
|
require('viem');
|
|
28
29
|
require('viem/chains');
|
|
30
|
+
var isCoinbaseWaasEnabled = require('../../functions/isCoinbaseWaasEnabled/isCoinbaseWaasEnabled.cjs');
|
|
29
31
|
require('../../../config/ApiEndpoint.cjs');
|
|
30
32
|
require('../../../locale/locale.cjs');
|
|
31
33
|
var hasEmbeddedWallet = require('../../functions/hasEmbeddedWallet/hasEmbeddedWallet.cjs');
|
|
@@ -95,7 +97,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
|
|
|
95
97
|
* }
|
|
96
98
|
*/
|
|
97
99
|
const useEmbeddedWallet = () => {
|
|
98
|
-
const { onboardingOnlyJwt, user } = useInternalDynamicContext.useInternalDynamicContext();
|
|
100
|
+
const { onboardingOnlyJwt, user, projectSettings, primaryWalletId } = useInternalDynamicContext.useInternalDynamicContext();
|
|
99
101
|
const { isTurnkeyWallet } = useIsTurnkeyWallet.useIsTurnkeyWallet();
|
|
100
102
|
const { createEmbeddedWallet: createCoinbaseMPCWallet, canCreateMPCWallet, createPassword, revealEmbeddedWalletKey: reveaCoinbaseMPCEmbeddedWalletKey, } = useMPCEmbeddedWallet.useMPCEmbeddedWallet();
|
|
101
103
|
const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, revealEmbeddedWalletKey: revealTurnkeyEmbeddedWalletKey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet.useSecureEnclaveEmbeddedWallet();
|
|
@@ -136,6 +138,23 @@ const useEmbeddedWallet = () => {
|
|
|
136
138
|
}
|
|
137
139
|
return reveaCoinbaseMPCEmbeddedWalletKey();
|
|
138
140
|
});
|
|
141
|
+
const shouldAutoCreateEmbeddedWallet = React.useCallback(() => {
|
|
142
|
+
var _a, _b;
|
|
143
|
+
const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled.isTurnkeyEnabled(projectSettings) ||
|
|
144
|
+
isCoinbaseWaasEnabled.isCoinbaseWaasEnabled(projectSettings);
|
|
145
|
+
if (!hasEmbeddedWalletProviderEnabled || primaryWalletId) {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
// Turnkey specific rules
|
|
149
|
+
if (
|
|
150
|
+
// if coinbase is enabled it should still call createWallet, despite the turnkey rules
|
|
151
|
+
!isCoinbaseWaasEnabled.isCoinbaseWaasEnabled(projectSettings) &&
|
|
152
|
+
isTurnkeyEnabled.isTurnkeyEnabled(projectSettings) &&
|
|
153
|
+
!((_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.embeddedWallets) === null || _b === void 0 ? void 0 : _b.automaticEmbeddedWalletCreation)) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
return true;
|
|
157
|
+
}, [primaryWalletId, projectSettings]);
|
|
139
158
|
return {
|
|
140
159
|
createEmbeddedWallet,
|
|
141
160
|
createOrRestoreSession,
|
|
@@ -146,6 +165,7 @@ const useEmbeddedWallet = () => {
|
|
|
146
165
|
isSessionActive,
|
|
147
166
|
revealWalletKey,
|
|
148
167
|
sendOneTimeCode,
|
|
168
|
+
shouldAutoCreateEmbeddedWallet,
|
|
149
169
|
userHasEmbeddedWallet,
|
|
150
170
|
};
|
|
151
171
|
};
|
|
@@ -33,5 +33,6 @@ export declare const useEmbeddedWallet: () => {
|
|
|
33
33
|
htmlContainerId?: string | undefined;
|
|
34
34
|
} | undefined) => Promise<boolean>;
|
|
35
35
|
readonly sendOneTimeCode: () => Promise<string>;
|
|
36
|
+
readonly shouldAutoCreateEmbeddedWallet: () => boolean;
|
|
36
37
|
readonly userHasEmbeddedWallet: () => boolean;
|
|
37
38
|
};
|
|
@@ -20,8 +20,10 @@ import '../../../context/ErrorContext/ErrorContext.js';
|
|
|
20
20
|
import '@dynamic-labs/multi-wallet';
|
|
21
21
|
import { getAuthToken } from '../../functions/getAuthToken/getAuthToken.js';
|
|
22
22
|
import 'react-international-phone';
|
|
23
|
+
import { isTurnkeyEnabled } from '../../functions/isTurnkeyEnabled/isTurnkeyEnabled.js';
|
|
23
24
|
import 'viem';
|
|
24
25
|
import 'viem/chains';
|
|
26
|
+
import { isCoinbaseWaasEnabled } from '../../functions/isCoinbaseWaasEnabled/isCoinbaseWaasEnabled.js';
|
|
25
27
|
import '../../../config/ApiEndpoint.js';
|
|
26
28
|
import '../../../locale/locale.js';
|
|
27
29
|
import { hasEmbeddedWallet } from '../../functions/hasEmbeddedWallet/hasEmbeddedWallet.js';
|
|
@@ -91,7 +93,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
|
|
|
91
93
|
* }
|
|
92
94
|
*/
|
|
93
95
|
const useEmbeddedWallet = () => {
|
|
94
|
-
const { onboardingOnlyJwt, user } = useInternalDynamicContext();
|
|
96
|
+
const { onboardingOnlyJwt, user, projectSettings, primaryWalletId } = useInternalDynamicContext();
|
|
95
97
|
const { isTurnkeyWallet } = useIsTurnkeyWallet();
|
|
96
98
|
const { createEmbeddedWallet: createCoinbaseMPCWallet, canCreateMPCWallet, createPassword, revealEmbeddedWalletKey: reveaCoinbaseMPCEmbeddedWalletKey, } = useMPCEmbeddedWallet();
|
|
97
99
|
const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, revealEmbeddedWalletKey: revealTurnkeyEmbeddedWalletKey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet();
|
|
@@ -132,6 +134,23 @@ const useEmbeddedWallet = () => {
|
|
|
132
134
|
}
|
|
133
135
|
return reveaCoinbaseMPCEmbeddedWalletKey();
|
|
134
136
|
});
|
|
137
|
+
const shouldAutoCreateEmbeddedWallet = useCallback(() => {
|
|
138
|
+
var _a, _b;
|
|
139
|
+
const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled(projectSettings) ||
|
|
140
|
+
isCoinbaseWaasEnabled(projectSettings);
|
|
141
|
+
if (!hasEmbeddedWalletProviderEnabled || primaryWalletId) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
// Turnkey specific rules
|
|
145
|
+
if (
|
|
146
|
+
// if coinbase is enabled it should still call createWallet, despite the turnkey rules
|
|
147
|
+
!isCoinbaseWaasEnabled(projectSettings) &&
|
|
148
|
+
isTurnkeyEnabled(projectSettings) &&
|
|
149
|
+
!((_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.embeddedWallets) === null || _b === void 0 ? void 0 : _b.automaticEmbeddedWalletCreation)) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
return true;
|
|
153
|
+
}, [primaryWalletId, projectSettings]);
|
|
135
154
|
return {
|
|
136
155
|
createEmbeddedWallet,
|
|
137
156
|
createOrRestoreSession,
|
|
@@ -142,6 +161,7 @@ const useEmbeddedWallet = () => {
|
|
|
142
161
|
isSessionActive,
|
|
143
162
|
revealWalletKey,
|
|
144
163
|
sendOneTimeCode,
|
|
164
|
+
shouldAutoCreateEmbeddedWallet,
|
|
145
165
|
userHasEmbeddedWallet,
|
|
146
166
|
};
|
|
147
167
|
};
|
|
@@ -89,6 +89,7 @@ const useKYCFlag = () => {
|
|
|
89
89
|
if (isOnlyConnectedMode)
|
|
90
90
|
return false;
|
|
91
91
|
const hasAnyKYCFields = getUserProfileFields.getUserProfileFields({
|
|
92
|
+
customFields: projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.customFields,
|
|
92
93
|
projectSettingsKyc: projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.kyc,
|
|
93
94
|
user,
|
|
94
95
|
});
|
|
@@ -85,6 +85,7 @@ const useKYCFlag = () => {
|
|
|
85
85
|
if (isOnlyConnectedMode)
|
|
86
86
|
return false;
|
|
87
87
|
const hasAnyKYCFields = getUserProfileFields({
|
|
88
|
+
customFields: projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.customFields,
|
|
88
89
|
projectSettingsKyc: projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.kyc,
|
|
89
90
|
user,
|
|
90
91
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useMfaModals } from './useMfaModals';
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var ViewContext = require('../../../context/ViewContext/ViewContext.cjs');
|
|
8
|
+
require('../../../context/DynamicContext/DynamicContext.cjs');
|
|
9
|
+
require('@dynamic-labs/sdk-api-core');
|
|
10
|
+
require('../../../shared/logger.cjs');
|
|
11
|
+
require('@dynamic-labs/iconic');
|
|
12
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
13
|
+
require('react/jsx-runtime');
|
|
14
|
+
require('@dynamic-labs/wallet-book');
|
|
15
|
+
require('../../constants/colors.cjs');
|
|
16
|
+
require('../../constants/values.cjs');
|
|
17
|
+
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
18
|
+
require('@dynamic-labs/utils');
|
|
19
|
+
require('../../../shared/consts/index.cjs');
|
|
20
|
+
require('../../../events/dynamicEvents.cjs');
|
|
21
|
+
require('../../../../../_virtual/_tslib.cjs');
|
|
22
|
+
require('../../../context/CaptchaContext/CaptchaContext.cjs');
|
|
23
|
+
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
|
+
require('../../../context/ThemeContext/ThemeContext.cjs');
|
|
37
|
+
require('@dynamic-labs/types');
|
|
38
|
+
require('../../../context/LoadingContext/LoadingContext.cjs');
|
|
39
|
+
require('yup');
|
|
40
|
+
require('../../../context/MockContext/MockContext.cjs');
|
|
41
|
+
require('react-i18next');
|
|
42
|
+
require('../../../context/FieldsStateContext/FieldsStateContext.cjs');
|
|
43
|
+
require('../useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
|
|
44
|
+
require('../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
|
|
45
|
+
require('@dynamic-labs/rpc-providers');
|
|
46
|
+
require('../../../components/Alert/Alert.cjs');
|
|
47
|
+
require('../../../components/ShadowDOM/ShadowDOM.cjs');
|
|
48
|
+
require('../../../components/IconButton/IconButton.cjs');
|
|
49
|
+
require('../../../components/InlineWidget/InlineWidget.cjs');
|
|
50
|
+
require('../../../components/Input/Input.cjs');
|
|
51
|
+
require('../../../components/IsBrowser/IsBrowser.cjs');
|
|
52
|
+
require('../../../components/MenuList/Dropdown/Dropdown.cjs');
|
|
53
|
+
require('../../../components/Transition/ZoomTransition/ZoomTransition.cjs');
|
|
54
|
+
require('../../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
|
|
55
|
+
require('../../../components/Transition/OpacityTransition/OpacityTransition.cjs');
|
|
56
|
+
require('../../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.cjs');
|
|
57
|
+
require('../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
|
|
58
|
+
require('../../../components/Popper/Popper/Popper.cjs');
|
|
59
|
+
require('../../../components/Popper/PopperContext/PopperContext.cjs');
|
|
60
|
+
require('react-focus-lock');
|
|
61
|
+
require('qrcode');
|
|
62
|
+
require('formik');
|
|
63
|
+
require('../../../views/WalletList/WalletList.cjs');
|
|
64
|
+
require('../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
|
|
65
|
+
require('../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
|
|
66
|
+
require('@hcaptcha/react-hcaptcha');
|
|
67
|
+
require('../../../context/FooterAnimationContext/index.cjs');
|
|
68
|
+
require('../../../views/LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection.cjs');
|
|
69
|
+
require('../../../context/WalletGroupContext/WalletGroupContext.cjs');
|
|
70
|
+
require('../../../context/PasskeyContext/PasskeyContext.cjs');
|
|
71
|
+
require('../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
|
|
72
|
+
require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
|
|
73
|
+
require('../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
|
|
74
|
+
require('../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
75
|
+
var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
76
|
+
|
|
77
|
+
const useMfaModals = () => {
|
|
78
|
+
var _a;
|
|
79
|
+
const { setShowAuthFlow, projectSettings } = useInternalDynamicContext.useInternalDynamicContext();
|
|
80
|
+
const { setView } = ViewContext.useViewContext();
|
|
81
|
+
const isMfaEnabled = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.security.mfa) === null || _a === void 0 ? void 0 : _a.enabled;
|
|
82
|
+
const setShowMfaChooseType = React.useCallback((value) => {
|
|
83
|
+
if (value) {
|
|
84
|
+
if (!isMfaEnabled)
|
|
85
|
+
return;
|
|
86
|
+
setView('mfa-choose-device');
|
|
87
|
+
}
|
|
88
|
+
setShowAuthFlow(value, { emitCancelAuth: true });
|
|
89
|
+
}, [isMfaEnabled, setShowAuthFlow, setView]);
|
|
90
|
+
const setShowMfaQRCode = React.useCallback((value) => {
|
|
91
|
+
if (value) {
|
|
92
|
+
if (!isMfaEnabled)
|
|
93
|
+
return;
|
|
94
|
+
setView('mfa-secure-device');
|
|
95
|
+
}
|
|
96
|
+
setShowAuthFlow(value, { emitCancelAuth: true });
|
|
97
|
+
}, [isMfaEnabled, setShowAuthFlow, setView]);
|
|
98
|
+
const setShowOTPVerification = React.useCallback((value) => {
|
|
99
|
+
if (value) {
|
|
100
|
+
if (!isMfaEnabled)
|
|
101
|
+
return;
|
|
102
|
+
setView('mfa-verification');
|
|
103
|
+
}
|
|
104
|
+
setShowAuthFlow(value, { emitCancelAuth: true });
|
|
105
|
+
}, [isMfaEnabled, setShowAuthFlow, setView]);
|
|
106
|
+
const setShowMfaViewBackupCodes = React.useCallback((value) => {
|
|
107
|
+
if (value) {
|
|
108
|
+
if (!isMfaEnabled)
|
|
109
|
+
return;
|
|
110
|
+
setView('mfa-display-backup-codes');
|
|
111
|
+
}
|
|
112
|
+
setShowAuthFlow(value, { emitCancelAuth: true });
|
|
113
|
+
}, [isMfaEnabled, setShowAuthFlow, setView]);
|
|
114
|
+
const setShowMfaEnterBackupCodes = React.useCallback((value) => {
|
|
115
|
+
if (value) {
|
|
116
|
+
if (!isMfaEnabled)
|
|
117
|
+
return;
|
|
118
|
+
setView('mfa-recovery');
|
|
119
|
+
}
|
|
120
|
+
setShowAuthFlow(value, { emitCancelAuth: true });
|
|
121
|
+
}, [isMfaEnabled, setShowAuthFlow, setView]);
|
|
122
|
+
return {
|
|
123
|
+
setShowMfaChooseType,
|
|
124
|
+
setShowMfaEnterBackupCodes,
|
|
125
|
+
setShowMfaQRCode,
|
|
126
|
+
setShowMfaViewBackupCodes,
|
|
127
|
+
setShowOTPVerification,
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
exports.useMfaModals = useMfaModals;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Dispatch, SetStateAction } from 'react';
|
|
2
|
+
export declare const useMfaModals: () => {
|
|
3
|
+
setShowMfaChooseType: Dispatch<SetStateAction<boolean>>;
|
|
4
|
+
setShowMfaEnterBackupCodes: Dispatch<SetStateAction<boolean>>;
|
|
5
|
+
setShowMfaQRCode: Dispatch<SetStateAction<boolean>>;
|
|
6
|
+
setShowMfaViewBackupCodes: Dispatch<SetStateAction<boolean>>;
|
|
7
|
+
setShowOTPVerification: Dispatch<SetStateAction<boolean>>;
|
|
8
|
+
};
|