@dynamic-labs/sdk-react-core 4.30.4 → 4.31.0
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 +11 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +12 -12
- package/src/lib/client/extension/hooks/useSyncVerifyResponseWithStorage/useSyncVerifyResponseWithStorage.cjs +39 -2
- package/src/lib/client/extension/hooks/useSyncVerifyResponseWithStorage/useSyncVerifyResponseWithStorage.js +39 -2
- package/src/lib/client/extension/setVerifyResponseToStorage/setVerifyResponseToStorage.d.ts +1 -1
- package/src/lib/components/OptionsSwitcher/OptionsSwitcher.cjs +97 -1
- package/src/lib/components/OptionsSwitcher/OptionsSwitcher.js +98 -2
- package/src/lib/components/Select/Select.cjs +86 -1
- package/src/lib/components/Select/Select.js +87 -2
- package/src/lib/components/ShadowDOM/ShadowDOM.cjs +2 -1
- package/src/lib/components/ShadowDOM/ShadowDOM.js +3 -2
- package/src/lib/utils/hooks/useIsomorphicLayoutEffect/index.d.ts +1 -0
- package/src/lib/utils/hooks/useMfa/useMfa.cjs +30 -5
- package/src/lib/utils/hooks/useMfa/useMfa.d.ts +12 -1
- package/src/lib/utils/hooks/useMfa/useMfa.js +31 -6
- package/src/lib/utils/hooks/useResizeObserver/useResizeObserver.cjs +2 -1
- package/src/lib/utils/hooks/useResizeObserver/useResizeObserver.js +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
|
|
2
|
+
## [4.31.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.30.4...v4.31.0) (2025-09-09)
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* adds evmNetworks prop for the react native client ([#9429](https://github.com/dynamic-labs/dynamic-auth/pull/9429))
|
|
7
|
+
* allow creating a mfaToken on authenticateRecoveryCode ([#9459](https://github.com/dynamic-labs/dynamic-auth/pull/9459))
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* fixed the yParity conversion in unFormatTransaction ([#9457](https://github.com/dynamic-labs/dynamic-auth/pull/9457))
|
|
12
|
+
|
|
2
13
|
### [4.30.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.30.3...v4.30.4) (2025-09-09)
|
|
3
14
|
|
|
4
15
|
|
package/package.cjs
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
var version = "4.
|
|
6
|
+
var version = "4.31.0";
|
|
7
7
|
var dependencies = {
|
|
8
8
|
"@dynamic-labs/sdk-api-core": "0.0.762",
|
|
9
|
-
"@dynamic-labs-sdk/client": "0.0
|
|
9
|
+
"@dynamic-labs-sdk/client": "0.1.0-alpha.3",
|
|
10
10
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
11
11
|
"@thumbmarkjs/thumbmarkjs": "0.16.0",
|
|
12
12
|
"country-list": "2.3.0",
|
package/package.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
var version = "4.
|
|
2
|
+
var version = "4.31.0";
|
|
3
3
|
var dependencies = {
|
|
4
4
|
"@dynamic-labs/sdk-api-core": "0.0.762",
|
|
5
|
-
"@dynamic-labs-sdk/client": "0.0
|
|
5
|
+
"@dynamic-labs-sdk/client": "0.1.0-alpha.3",
|
|
6
6
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
7
7
|
"@thumbmarkjs/thumbmarkjs": "0.16.0",
|
|
8
8
|
"country-list": "2.3.0",
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.31.0",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@dynamic-labs/sdk-api-core": "0.0.762",
|
|
6
|
-
"@dynamic-labs-sdk/client": "0.0
|
|
6
|
+
"@dynamic-labs-sdk/client": "0.1.0-alpha.3",
|
|
7
7
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
8
8
|
"@thumbmarkjs/thumbmarkjs": "0.16.0",
|
|
9
9
|
"country-list": "2.3.0",
|
|
@@ -15,16 +15,16 @@
|
|
|
15
15
|
"yup": "0.32.11",
|
|
16
16
|
"react-international-phone": "4.5.0",
|
|
17
17
|
"bs58": "5.0.0",
|
|
18
|
-
"@dynamic-labs/assert-package-version": "4.
|
|
19
|
-
"@dynamic-labs/iconic": "4.
|
|
20
|
-
"@dynamic-labs/logger": "4.
|
|
21
|
-
"@dynamic-labs/multi-wallet": "4.
|
|
22
|
-
"@dynamic-labs/rpc-providers": "4.
|
|
23
|
-
"@dynamic-labs/store": "4.
|
|
24
|
-
"@dynamic-labs/types": "4.
|
|
25
|
-
"@dynamic-labs/utils": "4.
|
|
26
|
-
"@dynamic-labs/wallet-book": "4.
|
|
27
|
-
"@dynamic-labs/wallet-connector-core": "4.
|
|
18
|
+
"@dynamic-labs/assert-package-version": "4.31.0",
|
|
19
|
+
"@dynamic-labs/iconic": "4.31.0",
|
|
20
|
+
"@dynamic-labs/logger": "4.31.0",
|
|
21
|
+
"@dynamic-labs/multi-wallet": "4.31.0",
|
|
22
|
+
"@dynamic-labs/rpc-providers": "4.31.0",
|
|
23
|
+
"@dynamic-labs/store": "4.31.0",
|
|
24
|
+
"@dynamic-labs/types": "4.31.0",
|
|
25
|
+
"@dynamic-labs/utils": "4.31.0",
|
|
26
|
+
"@dynamic-labs/wallet-book": "4.31.0",
|
|
27
|
+
"@dynamic-labs/wallet-connector-core": "4.31.0",
|
|
28
28
|
"eventemitter3": "5.0.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
@@ -5,12 +5,49 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var client = require('@dynamic-labs-sdk/client');
|
|
8
|
+
var core = require('@dynamic-labs-sdk/client/core');
|
|
8
9
|
var setVerifyResponseToStorage = require('../../setVerifyResponseToStorage/setVerifyResponseToStorage.cjs');
|
|
10
|
+
var client$1 = require('../../../client.cjs');
|
|
11
|
+
require('@dynamic-labs/sdk-api-core');
|
|
12
|
+
var logger = require('../../../../shared/logger.cjs');
|
|
13
|
+
require('@dynamic-labs/iconic');
|
|
14
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
15
|
+
require('react/jsx-runtime');
|
|
16
|
+
require('../../../../context/ViewContext/ViewContext.cjs');
|
|
17
|
+
require('@dynamic-labs/wallet-book');
|
|
18
|
+
require('@dynamic-labs/utils');
|
|
19
|
+
require('../../../../utils/constants/colors.cjs');
|
|
20
|
+
require('../../../../utils/constants/values.cjs');
|
|
21
|
+
require('../../../../shared/consts/index.cjs');
|
|
9
22
|
|
|
10
23
|
const useSyncVerifyResponseWithStorage = () => {
|
|
11
24
|
React.useEffect(() => client.onEvent({
|
|
12
|
-
event: '
|
|
13
|
-
listener: ({
|
|
25
|
+
event: 'tokenChanged',
|
|
26
|
+
listener: ({ token }) => {
|
|
27
|
+
var _a;
|
|
28
|
+
if (!token) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const clientState = core.getCore(client$1.getDynamicClient()).state.get();
|
|
32
|
+
const minifiedJwt = token;
|
|
33
|
+
const jwt = (_a = clientState.legacyToken) !== null && _a !== void 0 ? _a : undefined;
|
|
34
|
+
const { sessionExpiresAt } = clientState;
|
|
35
|
+
// default to 0 because a number is required
|
|
36
|
+
const expiresAt = sessionExpiresAt
|
|
37
|
+
? Math.floor(sessionExpiresAt.getTime() / 1000)
|
|
38
|
+
: 0;
|
|
39
|
+
logger.logger.logVerboseTroubleshootingMessage('[useSyncVerifyResponseWithStorage]', {
|
|
40
|
+
expiresAt,
|
|
41
|
+
jwt,
|
|
42
|
+
minifiedJwt,
|
|
43
|
+
sessionExpiresAt,
|
|
44
|
+
});
|
|
45
|
+
setVerifyResponseToStorage.setVerifyResponseToStorage({
|
|
46
|
+
expiresAt,
|
|
47
|
+
jwt,
|
|
48
|
+
minifiedJwt,
|
|
49
|
+
});
|
|
50
|
+
},
|
|
14
51
|
}), []);
|
|
15
52
|
};
|
|
16
53
|
|
|
@@ -1,12 +1,49 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
3
|
import { onEvent } from '@dynamic-labs-sdk/client';
|
|
4
|
+
import { getCore } from '@dynamic-labs-sdk/client/core';
|
|
4
5
|
import { setVerifyResponseToStorage } from '../../setVerifyResponseToStorage/setVerifyResponseToStorage.js';
|
|
6
|
+
import { getDynamicClient } from '../../../client.js';
|
|
7
|
+
import '@dynamic-labs/sdk-api-core';
|
|
8
|
+
import { logger } from '../../../../shared/logger.js';
|
|
9
|
+
import '@dynamic-labs/iconic';
|
|
10
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
11
|
+
import 'react/jsx-runtime';
|
|
12
|
+
import '../../../../context/ViewContext/ViewContext.js';
|
|
13
|
+
import '@dynamic-labs/wallet-book';
|
|
14
|
+
import '@dynamic-labs/utils';
|
|
15
|
+
import '../../../../utils/constants/colors.js';
|
|
16
|
+
import '../../../../utils/constants/values.js';
|
|
17
|
+
import '../../../../shared/consts/index.js';
|
|
5
18
|
|
|
6
19
|
const useSyncVerifyResponseWithStorage = () => {
|
|
7
20
|
useEffect(() => onEvent({
|
|
8
|
-
event: '
|
|
9
|
-
listener: ({
|
|
21
|
+
event: 'tokenChanged',
|
|
22
|
+
listener: ({ token }) => {
|
|
23
|
+
var _a;
|
|
24
|
+
if (!token) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const clientState = getCore(getDynamicClient()).state.get();
|
|
28
|
+
const minifiedJwt = token;
|
|
29
|
+
const jwt = (_a = clientState.legacyToken) !== null && _a !== void 0 ? _a : undefined;
|
|
30
|
+
const { sessionExpiresAt } = clientState;
|
|
31
|
+
// default to 0 because a number is required
|
|
32
|
+
const expiresAt = sessionExpiresAt
|
|
33
|
+
? Math.floor(sessionExpiresAt.getTime() / 1000)
|
|
34
|
+
: 0;
|
|
35
|
+
logger.logVerboseTroubleshootingMessage('[useSyncVerifyResponseWithStorage]', {
|
|
36
|
+
expiresAt,
|
|
37
|
+
jwt,
|
|
38
|
+
minifiedJwt,
|
|
39
|
+
sessionExpiresAt,
|
|
40
|
+
});
|
|
41
|
+
setVerifyResponseToStorage({
|
|
42
|
+
expiresAt,
|
|
43
|
+
jwt,
|
|
44
|
+
minifiedJwt,
|
|
45
|
+
});
|
|
46
|
+
},
|
|
10
47
|
}), []);
|
|
11
48
|
};
|
|
12
49
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { VerifyResponse } from '@dynamic-labs/sdk-api-core';
|
|
2
|
-
export declare const setVerifyResponseToStorage: ({ expiresAt, jwt, minifiedJwt, }: VerifyResponse) => void;
|
|
2
|
+
export declare const setVerifyResponseToStorage: ({ expiresAt, jwt, minifiedJwt, }: Pick<VerifyResponse, 'expiresAt' | 'jwt' | 'minifiedJwt'>) => void;
|
|
@@ -6,6 +6,102 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var classNames = require('../../utils/functions/classNames/classNames.cjs');
|
|
9
|
+
require('../../events/dynamicEvents.cjs');
|
|
10
|
+
require('../../../../_virtual/_tslib.cjs');
|
|
11
|
+
require('@dynamic-labs/utils');
|
|
12
|
+
require('../../context/DynamicContext/DynamicContext.cjs');
|
|
13
|
+
require('../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
|
|
14
|
+
require('@dynamic-labs/sdk-api-core');
|
|
15
|
+
require('../../shared/logger.cjs');
|
|
16
|
+
require('@dynamic-labs/iconic');
|
|
17
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
18
|
+
require('../../context/ViewContext/ViewContext.cjs');
|
|
19
|
+
require('@dynamic-labs/wallet-book');
|
|
20
|
+
require('../../utils/constants/colors.cjs');
|
|
21
|
+
require('../../utils/constants/values.cjs');
|
|
22
|
+
require('../../shared/consts/index.cjs');
|
|
23
|
+
require('../../store/state/authMode/authMode.cjs');
|
|
24
|
+
require('../../context/CaptchaContext/CaptchaContext.cjs');
|
|
25
|
+
require('../../context/ErrorContext/ErrorContext.cjs');
|
|
26
|
+
require('@dynamic-labs/multi-wallet');
|
|
27
|
+
require('react-international-phone');
|
|
28
|
+
require('../../store/state/nonce/nonce.cjs');
|
|
29
|
+
require('@dynamic-labs-sdk/client/core');
|
|
30
|
+
require('../../client/client.cjs');
|
|
31
|
+
require('@dynamic-labs-sdk/client');
|
|
32
|
+
require('../../config/ApiEndpoint.cjs');
|
|
33
|
+
require('../../store/state/projectSettings/projectSettings.cjs');
|
|
34
|
+
require('../../locale/locale.cjs');
|
|
35
|
+
require('../../store/state/dynamicContextProps/dynamicContextProps.cjs');
|
|
36
|
+
require('../../store/state/primaryWalletId/primaryWalletId.cjs');
|
|
37
|
+
require('../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
|
|
38
|
+
require('../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
39
|
+
require('../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
40
|
+
require('../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
41
|
+
require('../../context/VerificationContext/VerificationContext.cjs');
|
|
42
|
+
require('react-dom');
|
|
43
|
+
require('../../utils/functions/compareChains/compareChains.cjs');
|
|
44
|
+
require('../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
|
|
45
|
+
require('../../context/ThemeContext/ThemeContext.cjs');
|
|
46
|
+
var useIsomorphicLayoutEffect = require('../../utils/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs');
|
|
47
|
+
require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
|
|
48
|
+
require('bs58');
|
|
49
|
+
require('@dynamic-labs/types');
|
|
50
|
+
require('../../context/SocialRedirectContext/SocialRedirectContext.cjs');
|
|
51
|
+
require('../../context/LoadingContext/LoadingContext.cjs');
|
|
52
|
+
require('../../context/WalletContext/WalletContext.cjs');
|
|
53
|
+
require('../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
|
|
54
|
+
require('yup');
|
|
55
|
+
require('../../context/MockContext/MockContext.cjs');
|
|
56
|
+
require('../../views/CollectUserDataView/useFields.cjs');
|
|
57
|
+
require('../../context/FieldsStateContext/FieldsStateContext.cjs');
|
|
58
|
+
require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
|
|
59
|
+
require('@dynamic-labs/rpc-providers');
|
|
60
|
+
require('../../store/state/walletOptions/walletOptions.cjs');
|
|
61
|
+
require('react-i18next');
|
|
62
|
+
require('../Accordion/components/AccordionItem/AccordionItem.cjs');
|
|
63
|
+
require('../Alert/Alert.cjs');
|
|
64
|
+
require('../ShadowDOM/ShadowDOM.cjs');
|
|
65
|
+
require('../IconButton/IconButton.cjs');
|
|
66
|
+
require('../InlineWidget/InlineWidget.cjs');
|
|
67
|
+
require('../Input/Input.cjs');
|
|
68
|
+
require('../IsBrowser/IsBrowser.cjs');
|
|
69
|
+
require('../MenuList/Dropdown/Dropdown.cjs');
|
|
70
|
+
require('../OverlayCard/OverlayCard.cjs');
|
|
71
|
+
require('../Transition/ZoomTransition/ZoomTransition.cjs');
|
|
72
|
+
require('../Transition/SlideInUpTransition/SlideInUpTransition.cjs');
|
|
73
|
+
require('../Transition/OpacityTransition/OpacityTransition.cjs');
|
|
74
|
+
require('../PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
|
|
75
|
+
require('../Popper/Popper/Popper.cjs');
|
|
76
|
+
require('../Popper/PopperContext/PopperContext.cjs');
|
|
77
|
+
require('react-focus-lock');
|
|
78
|
+
require('qrcode');
|
|
79
|
+
require('formik');
|
|
80
|
+
require('../../utils/hooks/useSubdomainCheck/useSubdomainCheck.cjs');
|
|
81
|
+
require('../../context/WalletGroupContext/WalletGroupContext.cjs');
|
|
82
|
+
require('../../context/IpConfigurationContext/IpConfigurationContext.cjs');
|
|
83
|
+
require('../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
|
|
84
|
+
require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
|
|
85
|
+
require('@hcaptcha/react-hcaptcha');
|
|
86
|
+
require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
|
|
87
|
+
require('../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs');
|
|
88
|
+
require('../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.cjs');
|
|
89
|
+
require('../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
|
|
90
|
+
require('../../context/FooterAnimationContext/index.cjs');
|
|
91
|
+
require('../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.cjs');
|
|
92
|
+
require('../../context/PasskeyContext/PasskeyContext.cjs');
|
|
93
|
+
require('../../context/OnrampContext/OnrampContext.cjs');
|
|
94
|
+
require('../../store/state/sendBalances.cjs');
|
|
95
|
+
require('../../store/state/connectorsInitializing/connectorsInitializing.cjs');
|
|
96
|
+
require('../OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs');
|
|
97
|
+
require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
|
|
98
|
+
require('../../views/TransactionConfirmationView/TransactionConfirmationView.cjs');
|
|
99
|
+
require('../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs');
|
|
100
|
+
require('../../../index.cjs');
|
|
101
|
+
require('../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
|
|
102
|
+
require('../../store/state/tokenBalances.cjs');
|
|
103
|
+
require('../../store/state/multichainBalances.cjs');
|
|
104
|
+
require('../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
|
|
9
105
|
|
|
10
106
|
const OptionsSwitcher = ({ onChange, value, options, rootClassName, activeButtonClassName, buttonClassName, }) => {
|
|
11
107
|
const isActive = (_value) => _value !== undefined && _value === value;
|
|
@@ -13,7 +109,7 @@ const OptionsSwitcher = ({ onChange, value, options, rootClassName, activeButton
|
|
|
13
109
|
const [railCSSLeft, setRailCSSLeft] = React.useState(0);
|
|
14
110
|
const getOptionDisplayValue = (option) => option.label || option.key;
|
|
15
111
|
// Updates .options-switcher__active-rail position
|
|
16
|
-
|
|
112
|
+
useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
|
|
17
113
|
if (!rootRef.current)
|
|
18
114
|
return;
|
|
19
115
|
const activeOption = options === null || options === void 0 ? void 0 : options.find(({ key }) => key === value);
|
|
@@ -1,7 +1,103 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { useRef, useState
|
|
3
|
+
import { useRef, useState } from 'react';
|
|
4
4
|
import { classNames } from '../../utils/functions/classNames/classNames.js';
|
|
5
|
+
import '../../events/dynamicEvents.js';
|
|
6
|
+
import '../../../../_virtual/_tslib.js';
|
|
7
|
+
import '@dynamic-labs/utils';
|
|
8
|
+
import '../../context/DynamicContext/DynamicContext.js';
|
|
9
|
+
import '../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
|
|
10
|
+
import '@dynamic-labs/sdk-api-core';
|
|
11
|
+
import '../../shared/logger.js';
|
|
12
|
+
import '@dynamic-labs/iconic';
|
|
13
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
14
|
+
import '../../context/ViewContext/ViewContext.js';
|
|
15
|
+
import '@dynamic-labs/wallet-book';
|
|
16
|
+
import '../../utils/constants/colors.js';
|
|
17
|
+
import '../../utils/constants/values.js';
|
|
18
|
+
import '../../shared/consts/index.js';
|
|
19
|
+
import '../../store/state/authMode/authMode.js';
|
|
20
|
+
import '../../context/CaptchaContext/CaptchaContext.js';
|
|
21
|
+
import '../../context/ErrorContext/ErrorContext.js';
|
|
22
|
+
import '@dynamic-labs/multi-wallet';
|
|
23
|
+
import 'react-international-phone';
|
|
24
|
+
import '../../store/state/nonce/nonce.js';
|
|
25
|
+
import '@dynamic-labs-sdk/client/core';
|
|
26
|
+
import '../../client/client.js';
|
|
27
|
+
import '@dynamic-labs-sdk/client';
|
|
28
|
+
import '../../config/ApiEndpoint.js';
|
|
29
|
+
import '../../store/state/projectSettings/projectSettings.js';
|
|
30
|
+
import '../../locale/locale.js';
|
|
31
|
+
import '../../store/state/dynamicContextProps/dynamicContextProps.js';
|
|
32
|
+
import '../../store/state/primaryWalletId/primaryWalletId.js';
|
|
33
|
+
import '../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
|
|
34
|
+
import '../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
35
|
+
import '../../context/AccountExistsContext/AccountExistsContext.js';
|
|
36
|
+
import '../../context/UserWalletsContext/UserWalletsContext.js';
|
|
37
|
+
import '../../context/VerificationContext/VerificationContext.js';
|
|
38
|
+
import 'react-dom';
|
|
39
|
+
import '../../utils/functions/compareChains/compareChains.js';
|
|
40
|
+
import '../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js';
|
|
41
|
+
import '../../context/ThemeContext/ThemeContext.js';
|
|
42
|
+
import { useIsomorphicLayoutEffect } from '../../utils/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js';
|
|
43
|
+
import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
|
|
44
|
+
import 'bs58';
|
|
45
|
+
import '@dynamic-labs/types';
|
|
46
|
+
import '../../context/SocialRedirectContext/SocialRedirectContext.js';
|
|
47
|
+
import '../../context/LoadingContext/LoadingContext.js';
|
|
48
|
+
import '../../context/WalletContext/WalletContext.js';
|
|
49
|
+
import '../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
|
|
50
|
+
import 'yup';
|
|
51
|
+
import '../../context/MockContext/MockContext.js';
|
|
52
|
+
import '../../views/CollectUserDataView/useFields.js';
|
|
53
|
+
import '../../context/FieldsStateContext/FieldsStateContext.js';
|
|
54
|
+
import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
|
|
55
|
+
import '@dynamic-labs/rpc-providers';
|
|
56
|
+
import '../../store/state/walletOptions/walletOptions.js';
|
|
57
|
+
import 'react-i18next';
|
|
58
|
+
import '../Accordion/components/AccordionItem/AccordionItem.js';
|
|
59
|
+
import '../Alert/Alert.js';
|
|
60
|
+
import '../ShadowDOM/ShadowDOM.js';
|
|
61
|
+
import '../IconButton/IconButton.js';
|
|
62
|
+
import '../InlineWidget/InlineWidget.js';
|
|
63
|
+
import '../Input/Input.js';
|
|
64
|
+
import '../IsBrowser/IsBrowser.js';
|
|
65
|
+
import '../MenuList/Dropdown/Dropdown.js';
|
|
66
|
+
import '../OverlayCard/OverlayCard.js';
|
|
67
|
+
import '../Transition/ZoomTransition/ZoomTransition.js';
|
|
68
|
+
import '../Transition/SlideInUpTransition/SlideInUpTransition.js';
|
|
69
|
+
import '../Transition/OpacityTransition/OpacityTransition.js';
|
|
70
|
+
import '../PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
|
|
71
|
+
import '../Popper/Popper/Popper.js';
|
|
72
|
+
import '../Popper/PopperContext/PopperContext.js';
|
|
73
|
+
import 'react-focus-lock';
|
|
74
|
+
import 'qrcode';
|
|
75
|
+
import 'formik';
|
|
76
|
+
import '../../utils/hooks/useSubdomainCheck/useSubdomainCheck.js';
|
|
77
|
+
import '../../context/WalletGroupContext/WalletGroupContext.js';
|
|
78
|
+
import '../../context/IpConfigurationContext/IpConfigurationContext.js';
|
|
79
|
+
import '../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
|
|
80
|
+
import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
|
|
81
|
+
import '@hcaptcha/react-hcaptcha';
|
|
82
|
+
import '../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
|
|
83
|
+
import '../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.js';
|
|
84
|
+
import '../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.js';
|
|
85
|
+
import '../../context/ErrorContext/hooks/useErrorText/useErrorText.js';
|
|
86
|
+
import '../../context/FooterAnimationContext/index.js';
|
|
87
|
+
import '../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.js';
|
|
88
|
+
import '../../context/PasskeyContext/PasskeyContext.js';
|
|
89
|
+
import '../../context/OnrampContext/OnrampContext.js';
|
|
90
|
+
import '../../store/state/sendBalances.js';
|
|
91
|
+
import '../../store/state/connectorsInitializing/connectorsInitializing.js';
|
|
92
|
+
import '../OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js';
|
|
93
|
+
import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
|
|
94
|
+
import '../../views/TransactionConfirmationView/TransactionConfirmationView.js';
|
|
95
|
+
import '../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.js';
|
|
96
|
+
import '../../../index.js';
|
|
97
|
+
import '../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.js';
|
|
98
|
+
import '../../store/state/tokenBalances.js';
|
|
99
|
+
import '../../store/state/multichainBalances.js';
|
|
100
|
+
import '../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
|
|
5
101
|
|
|
6
102
|
const OptionsSwitcher = ({ onChange, value, options, rootClassName, activeButtonClassName, buttonClassName, }) => {
|
|
7
103
|
const isActive = (_value) => _value !== undefined && _value === value;
|
|
@@ -9,7 +105,7 @@ const OptionsSwitcher = ({ onChange, value, options, rootClassName, activeButton
|
|
|
9
105
|
const [railCSSLeft, setRailCSSLeft] = useState(0);
|
|
10
106
|
const getOptionDisplayValue = (option) => option.label || option.key;
|
|
11
107
|
// Updates .options-switcher__active-rail position
|
|
12
|
-
|
|
108
|
+
useIsomorphicLayoutEffect(() => {
|
|
13
109
|
if (!rootRef.current)
|
|
14
110
|
return;
|
|
15
111
|
const activeOption = options === null || options === void 0 ? void 0 : options.find(({ key }) => key === value);
|
|
@@ -20,13 +20,98 @@ require('../../shared/consts/index.cjs');
|
|
|
20
20
|
var classNames = require('../../utils/functions/classNames/classNames.cjs');
|
|
21
21
|
var Icon = require('../Icon/Icon.cjs');
|
|
22
22
|
var Typography = require('../Typography/Typography.cjs');
|
|
23
|
+
require('../../events/dynamicEvents.cjs');
|
|
24
|
+
require('../../context/DynamicContext/DynamicContext.cjs');
|
|
25
|
+
require('../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
|
|
26
|
+
require('../../store/state/authMode/authMode.cjs');
|
|
27
|
+
require('../../context/CaptchaContext/CaptchaContext.cjs');
|
|
28
|
+
require('../../context/ErrorContext/ErrorContext.cjs');
|
|
29
|
+
require('@dynamic-labs/multi-wallet');
|
|
30
|
+
require('react-international-phone');
|
|
31
|
+
require('../../store/state/nonce/nonce.cjs');
|
|
32
|
+
require('@dynamic-labs-sdk/client/core');
|
|
33
|
+
require('../../client/client.cjs');
|
|
34
|
+
require('@dynamic-labs-sdk/client');
|
|
35
|
+
require('../../config/ApiEndpoint.cjs');
|
|
36
|
+
require('../../store/state/projectSettings/projectSettings.cjs');
|
|
37
|
+
require('../../locale/locale.cjs');
|
|
38
|
+
require('../../store/state/dynamicContextProps/dynamicContextProps.cjs');
|
|
39
|
+
require('../../store/state/primaryWalletId/primaryWalletId.cjs');
|
|
40
|
+
require('../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
|
|
41
|
+
require('../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
42
|
+
require('../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
43
|
+
require('../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
44
|
+
require('../../context/VerificationContext/VerificationContext.cjs');
|
|
45
|
+
require('react-dom');
|
|
46
|
+
require('../../utils/functions/compareChains/compareChains.cjs');
|
|
47
|
+
require('../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
|
|
48
|
+
require('../../context/ThemeContext/ThemeContext.cjs');
|
|
49
|
+
var useIsomorphicLayoutEffect = require('../../utils/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs');
|
|
50
|
+
require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
|
|
51
|
+
require('bs58');
|
|
52
|
+
require('@dynamic-labs/types');
|
|
53
|
+
require('../../context/SocialRedirectContext/SocialRedirectContext.cjs');
|
|
54
|
+
require('../../context/LoadingContext/LoadingContext.cjs');
|
|
55
|
+
require('../../context/WalletContext/WalletContext.cjs');
|
|
56
|
+
require('../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
|
|
57
|
+
require('yup');
|
|
58
|
+
require('../../context/MockContext/MockContext.cjs');
|
|
59
|
+
require('../../views/CollectUserDataView/useFields.cjs');
|
|
60
|
+
require('../../context/FieldsStateContext/FieldsStateContext.cjs');
|
|
61
|
+
require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
|
|
62
|
+
require('@dynamic-labs/rpc-providers');
|
|
63
|
+
require('../../store/state/walletOptions/walletOptions.cjs');
|
|
64
|
+
require('react-i18next');
|
|
65
|
+
require('../Accordion/components/AccordionItem/AccordionItem.cjs');
|
|
66
|
+
require('../Alert/Alert.cjs');
|
|
67
|
+
require('../ShadowDOM/ShadowDOM.cjs');
|
|
68
|
+
require('../IconButton/IconButton.cjs');
|
|
69
|
+
require('../InlineWidget/InlineWidget.cjs');
|
|
70
|
+
require('../Input/Input.cjs');
|
|
71
|
+
require('../IsBrowser/IsBrowser.cjs');
|
|
72
|
+
require('../MenuList/Dropdown/Dropdown.cjs');
|
|
73
|
+
require('../OverlayCard/OverlayCard.cjs');
|
|
74
|
+
require('../Transition/ZoomTransition/ZoomTransition.cjs');
|
|
75
|
+
require('../Transition/SlideInUpTransition/SlideInUpTransition.cjs');
|
|
76
|
+
require('../Transition/OpacityTransition/OpacityTransition.cjs');
|
|
77
|
+
require('../PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
|
|
78
|
+
require('../Popper/Popper/Popper.cjs');
|
|
79
|
+
require('../Popper/PopperContext/PopperContext.cjs');
|
|
80
|
+
require('react-focus-lock');
|
|
81
|
+
require('qrcode');
|
|
82
|
+
require('formik');
|
|
83
|
+
require('../../utils/hooks/useSubdomainCheck/useSubdomainCheck.cjs');
|
|
84
|
+
require('../../context/WalletGroupContext/WalletGroupContext.cjs');
|
|
85
|
+
require('../../context/IpConfigurationContext/IpConfigurationContext.cjs');
|
|
86
|
+
require('../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
|
|
87
|
+
require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
|
|
88
|
+
require('@hcaptcha/react-hcaptcha');
|
|
89
|
+
require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
|
|
90
|
+
require('../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs');
|
|
91
|
+
require('../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.cjs');
|
|
92
|
+
require('../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
|
|
93
|
+
require('../../context/FooterAnimationContext/index.cjs');
|
|
94
|
+
require('../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.cjs');
|
|
95
|
+
require('../../context/PasskeyContext/PasskeyContext.cjs');
|
|
96
|
+
require('../../context/OnrampContext/OnrampContext.cjs');
|
|
23
97
|
var getDisplayValue = require('./utils/getDisplayValue/getDisplayValue.cjs');
|
|
98
|
+
require('../../store/state/sendBalances.cjs');
|
|
99
|
+
require('../../store/state/connectorsInitializing/connectorsInitializing.cjs');
|
|
100
|
+
require('../OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs');
|
|
101
|
+
require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
|
|
102
|
+
require('../../views/TransactionConfirmationView/TransactionConfirmationView.cjs');
|
|
103
|
+
require('../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs');
|
|
104
|
+
require('../../../index.cjs');
|
|
105
|
+
require('../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
|
|
106
|
+
require('../../store/state/tokenBalances.cjs');
|
|
107
|
+
require('../../store/state/multichainBalances.cjs');
|
|
108
|
+
require('../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
|
|
24
109
|
|
|
25
110
|
const Select = (_a) => {
|
|
26
111
|
var { children, className = '', id, label, value, error = false, selectDataTestId, message } = _a, selectProps = _tslib.__rest(_a, ["children", "className", "id", "label", "value", "error", "selectDataTestId", "message"]);
|
|
27
112
|
const selectRef = React.useRef(null);
|
|
28
113
|
const [displayValue, setDisplayValue] = React.useState();
|
|
29
|
-
|
|
114
|
+
useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
|
|
30
115
|
if (!value)
|
|
31
116
|
return;
|
|
32
117
|
const selectElement = selectRef.current;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __rest } from '../../../../_virtual/_tslib.js';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
-
import { useRef, useState
|
|
4
|
+
import { useRef, useState } from 'react';
|
|
5
5
|
import '@dynamic-labs/sdk-api-core';
|
|
6
6
|
import '../../shared/logger.js';
|
|
7
7
|
import '@dynamic-labs/iconic';
|
|
@@ -16,13 +16,98 @@ import '../../shared/consts/index.js';
|
|
|
16
16
|
import { classNames } from '../../utils/functions/classNames/classNames.js';
|
|
17
17
|
import { Icon } from '../Icon/Icon.js';
|
|
18
18
|
import { Typography } from '../Typography/Typography.js';
|
|
19
|
+
import '../../events/dynamicEvents.js';
|
|
20
|
+
import '../../context/DynamicContext/DynamicContext.js';
|
|
21
|
+
import '../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
|
|
22
|
+
import '../../store/state/authMode/authMode.js';
|
|
23
|
+
import '../../context/CaptchaContext/CaptchaContext.js';
|
|
24
|
+
import '../../context/ErrorContext/ErrorContext.js';
|
|
25
|
+
import '@dynamic-labs/multi-wallet';
|
|
26
|
+
import 'react-international-phone';
|
|
27
|
+
import '../../store/state/nonce/nonce.js';
|
|
28
|
+
import '@dynamic-labs-sdk/client/core';
|
|
29
|
+
import '../../client/client.js';
|
|
30
|
+
import '@dynamic-labs-sdk/client';
|
|
31
|
+
import '../../config/ApiEndpoint.js';
|
|
32
|
+
import '../../store/state/projectSettings/projectSettings.js';
|
|
33
|
+
import '../../locale/locale.js';
|
|
34
|
+
import '../../store/state/dynamicContextProps/dynamicContextProps.js';
|
|
35
|
+
import '../../store/state/primaryWalletId/primaryWalletId.js';
|
|
36
|
+
import '../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
|
|
37
|
+
import '../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
38
|
+
import '../../context/AccountExistsContext/AccountExistsContext.js';
|
|
39
|
+
import '../../context/UserWalletsContext/UserWalletsContext.js';
|
|
40
|
+
import '../../context/VerificationContext/VerificationContext.js';
|
|
41
|
+
import 'react-dom';
|
|
42
|
+
import '../../utils/functions/compareChains/compareChains.js';
|
|
43
|
+
import '../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js';
|
|
44
|
+
import '../../context/ThemeContext/ThemeContext.js';
|
|
45
|
+
import { useIsomorphicLayoutEffect } from '../../utils/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js';
|
|
46
|
+
import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
|
|
47
|
+
import 'bs58';
|
|
48
|
+
import '@dynamic-labs/types';
|
|
49
|
+
import '../../context/SocialRedirectContext/SocialRedirectContext.js';
|
|
50
|
+
import '../../context/LoadingContext/LoadingContext.js';
|
|
51
|
+
import '../../context/WalletContext/WalletContext.js';
|
|
52
|
+
import '../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
|
|
53
|
+
import 'yup';
|
|
54
|
+
import '../../context/MockContext/MockContext.js';
|
|
55
|
+
import '../../views/CollectUserDataView/useFields.js';
|
|
56
|
+
import '../../context/FieldsStateContext/FieldsStateContext.js';
|
|
57
|
+
import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
|
|
58
|
+
import '@dynamic-labs/rpc-providers';
|
|
59
|
+
import '../../store/state/walletOptions/walletOptions.js';
|
|
60
|
+
import 'react-i18next';
|
|
61
|
+
import '../Accordion/components/AccordionItem/AccordionItem.js';
|
|
62
|
+
import '../Alert/Alert.js';
|
|
63
|
+
import '../ShadowDOM/ShadowDOM.js';
|
|
64
|
+
import '../IconButton/IconButton.js';
|
|
65
|
+
import '../InlineWidget/InlineWidget.js';
|
|
66
|
+
import '../Input/Input.js';
|
|
67
|
+
import '../IsBrowser/IsBrowser.js';
|
|
68
|
+
import '../MenuList/Dropdown/Dropdown.js';
|
|
69
|
+
import '../OverlayCard/OverlayCard.js';
|
|
70
|
+
import '../Transition/ZoomTransition/ZoomTransition.js';
|
|
71
|
+
import '../Transition/SlideInUpTransition/SlideInUpTransition.js';
|
|
72
|
+
import '../Transition/OpacityTransition/OpacityTransition.js';
|
|
73
|
+
import '../PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
|
|
74
|
+
import '../Popper/Popper/Popper.js';
|
|
75
|
+
import '../Popper/PopperContext/PopperContext.js';
|
|
76
|
+
import 'react-focus-lock';
|
|
77
|
+
import 'qrcode';
|
|
78
|
+
import 'formik';
|
|
79
|
+
import '../../utils/hooks/useSubdomainCheck/useSubdomainCheck.js';
|
|
80
|
+
import '../../context/WalletGroupContext/WalletGroupContext.js';
|
|
81
|
+
import '../../context/IpConfigurationContext/IpConfigurationContext.js';
|
|
82
|
+
import '../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
|
|
83
|
+
import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
|
|
84
|
+
import '@hcaptcha/react-hcaptcha';
|
|
85
|
+
import '../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
|
|
86
|
+
import '../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.js';
|
|
87
|
+
import '../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.js';
|
|
88
|
+
import '../../context/ErrorContext/hooks/useErrorText/useErrorText.js';
|
|
89
|
+
import '../../context/FooterAnimationContext/index.js';
|
|
90
|
+
import '../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.js';
|
|
91
|
+
import '../../context/PasskeyContext/PasskeyContext.js';
|
|
92
|
+
import '../../context/OnrampContext/OnrampContext.js';
|
|
19
93
|
import { getDisplayValue } from './utils/getDisplayValue/getDisplayValue.js';
|
|
94
|
+
import '../../store/state/sendBalances.js';
|
|
95
|
+
import '../../store/state/connectorsInitializing/connectorsInitializing.js';
|
|
96
|
+
import '../OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js';
|
|
97
|
+
import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
|
|
98
|
+
import '../../views/TransactionConfirmationView/TransactionConfirmationView.js';
|
|
99
|
+
import '../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.js';
|
|
100
|
+
import '../../../index.js';
|
|
101
|
+
import '../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.js';
|
|
102
|
+
import '../../store/state/tokenBalances.js';
|
|
103
|
+
import '../../store/state/multichainBalances.js';
|
|
104
|
+
import '../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
|
|
20
105
|
|
|
21
106
|
const Select = (_a) => {
|
|
22
107
|
var { children, className = '', id, label, value, error = false, selectDataTestId, message } = _a, selectProps = __rest(_a, ["children", "className", "id", "label", "value", "error", "selectDataTestId", "message"]);
|
|
23
108
|
const selectRef = useRef(null);
|
|
24
109
|
const [displayValue, setDisplayValue] = useState();
|
|
25
|
-
|
|
110
|
+
useIsomorphicLayoutEffect(() => {
|
|
26
111
|
if (!value)
|
|
27
112
|
return;
|
|
28
113
|
const selectElement = selectRef.current;
|
|
@@ -42,6 +42,7 @@ require('../../context/VerificationContext/VerificationContext.cjs');
|
|
|
42
42
|
require('../../utils/functions/compareChains/compareChains.cjs');
|
|
43
43
|
require('../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
|
|
44
44
|
require('../../context/ThemeContext/ThemeContext.cjs');
|
|
45
|
+
var useIsomorphicLayoutEffect = require('../../utils/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs');
|
|
45
46
|
require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
|
|
46
47
|
require('bs58');
|
|
47
48
|
require('@dynamic-labs/types');
|
|
@@ -127,7 +128,7 @@ const ShadowDOM = ({ mode = 'open', id, className, children, dataTestId, zIndex,
|
|
|
127
128
|
}
|
|
128
129
|
return null;
|
|
129
130
|
}, [cssOverrides]);
|
|
130
|
-
|
|
131
|
+
useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
|
|
131
132
|
if (nodeRef && shadowDOMEnabled) {
|
|
132
133
|
try {
|
|
133
134
|
const root = nodeRef.attachShadow({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
-
import React__default, { useState, useMemo
|
|
3
|
+
import React__default, { useState, useMemo } from 'react';
|
|
4
4
|
import { createPortal } from 'react-dom';
|
|
5
5
|
import { isLegacySafari } from '@dynamic-labs/utils';
|
|
6
6
|
import '../../context/DynamicContext/DynamicContext.js';
|
|
@@ -38,6 +38,7 @@ import '../../context/VerificationContext/VerificationContext.js';
|
|
|
38
38
|
import '../../utils/functions/compareChains/compareChains.js';
|
|
39
39
|
import '../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js';
|
|
40
40
|
import '../../context/ThemeContext/ThemeContext.js';
|
|
41
|
+
import { useIsomorphicLayoutEffect } from '../../utils/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js';
|
|
41
42
|
import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
|
|
42
43
|
import 'bs58';
|
|
43
44
|
import '@dynamic-labs/types';
|
|
@@ -119,7 +120,7 @@ const ShadowDOM = ({ mode = 'open', id, className, children, dataTestId, zIndex,
|
|
|
119
120
|
}
|
|
120
121
|
return null;
|
|
121
122
|
}, [cssOverrides]);
|
|
122
|
-
|
|
123
|
+
useIsomorphicLayoutEffect(() => {
|
|
123
124
|
if (nodeRef && shadowDOMEnabled) {
|
|
124
125
|
try {
|
|
125
126
|
const root = nodeRef.attachShadow({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
|
|
@@ -38,14 +38,11 @@ const useMfa = () => {
|
|
|
38
38
|
const handleMfaAuth = React.useCallback((_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ code, type, deviceId, createMfaToken, resultHandler, }) {
|
|
39
39
|
let result;
|
|
40
40
|
yield completeAuth({
|
|
41
|
-
onValidUpdatedJwt: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
-
// This callback is used by authDevice
|
|
43
|
-
}),
|
|
44
41
|
updateJwtFunction: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
45
42
|
if (type !== sdkApiCore.MFADeviceType.Totp) {
|
|
46
43
|
throw new Error('Only Totp is supported');
|
|
47
44
|
}
|
|
48
|
-
const response = yield client.
|
|
45
|
+
const response = yield client.authenticateTotpMfaDevice({
|
|
49
46
|
code,
|
|
50
47
|
createMfaTokenOptions: createMfaToken,
|
|
51
48
|
deviceId,
|
|
@@ -122,7 +119,7 @@ const useMfa = () => {
|
|
|
122
119
|
isValid = true;
|
|
123
120
|
}),
|
|
124
121
|
updateJwtFunction: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
125
|
-
const response = yield client.
|
|
122
|
+
const response = yield client.authenticateMfaRecoveryCode({
|
|
126
123
|
code,
|
|
127
124
|
});
|
|
128
125
|
if (!response) {
|
|
@@ -142,6 +139,33 @@ const useMfa = () => {
|
|
|
142
139
|
});
|
|
143
140
|
return isValid;
|
|
144
141
|
}), [completeAuth]);
|
|
142
|
+
const authenticateRecoveryCode = React.useCallback((_c) => _tslib.__awaiter(void 0, [_c], void 0, function* ({ code, createMfaToken, }) {
|
|
143
|
+
let mfaToken = undefined;
|
|
144
|
+
yield completeAuth({
|
|
145
|
+
updateJwtFunction: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
146
|
+
const response = yield client.authenticateMfaRecoveryCode({
|
|
147
|
+
code,
|
|
148
|
+
createMfaTokenOptions: createMfaToken,
|
|
149
|
+
});
|
|
150
|
+
if (!response) {
|
|
151
|
+
throw new Error('Failed to authenticate recovery code');
|
|
152
|
+
}
|
|
153
|
+
// eslint-disable-next-line prefer-destructuring
|
|
154
|
+
mfaToken = response.mfaToken;
|
|
155
|
+
dynamicEvents.dynamicEvents.emit('mfaCompletionSuccess', {
|
|
156
|
+
mfaToken: response.mfaToken,
|
|
157
|
+
});
|
|
158
|
+
return {
|
|
159
|
+
isEmailVerificationRequired: false,
|
|
160
|
+
isSmsVerificationRequired: false,
|
|
161
|
+
missingFields: [],
|
|
162
|
+
// in the mfa flow, we only care about the user in the response
|
|
163
|
+
updateUserProfileResponse: response,
|
|
164
|
+
};
|
|
165
|
+
}),
|
|
166
|
+
});
|
|
167
|
+
return mfaToken;
|
|
168
|
+
}), [completeAuth]);
|
|
145
169
|
const verifyDevice = React.useCallback((code_2, ...args_3) => _tslib.__awaiter(void 0, [code_2, ...args_3], void 0, function* (code, type = sdkApiCore.MFADeviceType.Totp) {
|
|
146
170
|
if (type === sdkApiCore.MFADeviceType.Totp) {
|
|
147
171
|
const device = yield verifyTotpMfaDevice.verifyTotpMfaDevice({
|
|
@@ -172,6 +196,7 @@ const useMfa = () => {
|
|
|
172
196
|
authDevice,
|
|
173
197
|
authRecoveryCode,
|
|
174
198
|
authenticateDevice,
|
|
199
|
+
authenticateRecoveryCode,
|
|
175
200
|
completeAcknowledgement,
|
|
176
201
|
deleteUserDevice,
|
|
177
202
|
getRecoveryCodes,
|
|
@@ -14,10 +14,21 @@ type UseMfaHookResult = {
|
|
|
14
14
|
* indicating if the authentication was successful.
|
|
15
15
|
*/
|
|
16
16
|
authDevice: (code: string, type?: MFADeviceType, deviceId?: string) => Promise<boolean>;
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated use authenticateRecoveryCode instead
|
|
19
|
+
*/
|
|
17
20
|
authRecoveryCode: (code: string) => Promise<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* Authenticates a recovery code and returns a single use MFA token
|
|
23
|
+
* if the authentication is successful and createMfaToken param is provided.
|
|
24
|
+
*/
|
|
25
|
+
authenticateRecoveryCode: ({ code, createMfaToken, }: {
|
|
26
|
+
code: string;
|
|
27
|
+
createMfaToken?: CreateMfaToken;
|
|
28
|
+
}) => Promise<string | undefined>;
|
|
18
29
|
/**
|
|
19
30
|
* Authenticates a device and returns a single use MFA token
|
|
20
|
-
* if the authentication is successful.
|
|
31
|
+
* if the authentication is successful and createMfaToken param is provided.
|
|
21
32
|
*/
|
|
22
33
|
authenticateDevice: ({ code, type, deviceId, createMfaToken, }: {
|
|
23
34
|
code: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { authenticateTotpMfaDevice, getMfaDevices, setDefaultMfaDevice, deleteMfaDevice, registerTotpMfaDevice, authenticateMfaRecoveryCode, createNewMfaRecoveryCodes, getMfaRecoveryCodes, acknowledgeRecoveryCodes } from '@dynamic-labs-sdk/client';
|
|
5
5
|
import { MFADeviceType } from '@dynamic-labs/sdk-api-core';
|
|
6
6
|
import { verifyTotpMfaDevice } from '../../../client/extension/deprecated/mfa/verifyTotpMfaDevice/verifyTotpMfaDevice.js';
|
|
7
7
|
import '../../../client/client.js';
|
|
@@ -34,14 +34,11 @@ const useMfa = () => {
|
|
|
34
34
|
const handleMfaAuth = useCallback((_a) => __awaiter(void 0, [_a], void 0, function* ({ code, type, deviceId, createMfaToken, resultHandler, }) {
|
|
35
35
|
let result;
|
|
36
36
|
yield completeAuth({
|
|
37
|
-
onValidUpdatedJwt: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
38
|
-
// This callback is used by authDevice
|
|
39
|
-
}),
|
|
40
37
|
updateJwtFunction: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
38
|
if (type !== MFADeviceType.Totp) {
|
|
42
39
|
throw new Error('Only Totp is supported');
|
|
43
40
|
}
|
|
44
|
-
const response = yield
|
|
41
|
+
const response = yield authenticateTotpMfaDevice({
|
|
45
42
|
code,
|
|
46
43
|
createMfaTokenOptions: createMfaToken,
|
|
47
44
|
deviceId,
|
|
@@ -118,7 +115,7 @@ const useMfa = () => {
|
|
|
118
115
|
isValid = true;
|
|
119
116
|
}),
|
|
120
117
|
updateJwtFunction: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
121
|
-
const response = yield
|
|
118
|
+
const response = yield authenticateMfaRecoveryCode({
|
|
122
119
|
code,
|
|
123
120
|
});
|
|
124
121
|
if (!response) {
|
|
@@ -138,6 +135,33 @@ const useMfa = () => {
|
|
|
138
135
|
});
|
|
139
136
|
return isValid;
|
|
140
137
|
}), [completeAuth]);
|
|
138
|
+
const authenticateRecoveryCode = useCallback((_c) => __awaiter(void 0, [_c], void 0, function* ({ code, createMfaToken, }) {
|
|
139
|
+
let mfaToken = undefined;
|
|
140
|
+
yield completeAuth({
|
|
141
|
+
updateJwtFunction: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
142
|
+
const response = yield authenticateMfaRecoveryCode({
|
|
143
|
+
code,
|
|
144
|
+
createMfaTokenOptions: createMfaToken,
|
|
145
|
+
});
|
|
146
|
+
if (!response) {
|
|
147
|
+
throw new Error('Failed to authenticate recovery code');
|
|
148
|
+
}
|
|
149
|
+
// eslint-disable-next-line prefer-destructuring
|
|
150
|
+
mfaToken = response.mfaToken;
|
|
151
|
+
dynamicEvents.emit('mfaCompletionSuccess', {
|
|
152
|
+
mfaToken: response.mfaToken,
|
|
153
|
+
});
|
|
154
|
+
return {
|
|
155
|
+
isEmailVerificationRequired: false,
|
|
156
|
+
isSmsVerificationRequired: false,
|
|
157
|
+
missingFields: [],
|
|
158
|
+
// in the mfa flow, we only care about the user in the response
|
|
159
|
+
updateUserProfileResponse: response,
|
|
160
|
+
};
|
|
161
|
+
}),
|
|
162
|
+
});
|
|
163
|
+
return mfaToken;
|
|
164
|
+
}), [completeAuth]);
|
|
141
165
|
const verifyDevice = useCallback((code_2, ...args_3) => __awaiter(void 0, [code_2, ...args_3], void 0, function* (code, type = MFADeviceType.Totp) {
|
|
142
166
|
if (type === MFADeviceType.Totp) {
|
|
143
167
|
const device = yield verifyTotpMfaDevice({
|
|
@@ -168,6 +192,7 @@ const useMfa = () => {
|
|
|
168
192
|
authDevice,
|
|
169
193
|
authRecoveryCode,
|
|
170
194
|
authenticateDevice,
|
|
195
|
+
authenticateRecoveryCode,
|
|
171
196
|
completeAcknowledgement,
|
|
172
197
|
deleteUserDevice,
|
|
173
198
|
getRecoveryCodes,
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
6
|
var React = require('react');
|
|
7
|
+
var useIsomorphicLayoutEffect = require('../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs');
|
|
7
8
|
|
|
8
9
|
const useResizeObserver = (ref, callback) => {
|
|
9
10
|
const [rect, setRect] = React.useState();
|
|
@@ -17,7 +18,7 @@ const useResizeObserver = (ref, callback) => {
|
|
|
17
18
|
callback(entry.contentRect);
|
|
18
19
|
}
|
|
19
20
|
}, [callback, setRect]);
|
|
20
|
-
|
|
21
|
+
useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
|
|
21
22
|
if (!ref.current) {
|
|
22
23
|
return;
|
|
23
24
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import { useState, useCallback
|
|
2
|
+
import { useState, useCallback } from 'react';
|
|
3
|
+
import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js';
|
|
3
4
|
|
|
4
5
|
const useResizeObserver = (ref, callback) => {
|
|
5
6
|
const [rect, setRect] = useState();
|
|
@@ -13,7 +14,7 @@ const useResizeObserver = (ref, callback) => {
|
|
|
13
14
|
callback(entry.contentRect);
|
|
14
15
|
}
|
|
15
16
|
}, [callback, setRect]);
|
|
16
|
-
|
|
17
|
+
useIsomorphicLayoutEffect(() => {
|
|
17
18
|
if (!ref.current) {
|
|
18
19
|
return;
|
|
19
20
|
}
|