@dynamic-labs/sdk-react-core 4.29.0 → 4.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +11 -11
- package/src/lib/utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.cjs +3 -0
- package/src/lib/utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.js +3 -0
- package/src/lib/views/Passkey/ConfirmPasskeyView/ConfirmPasskeyView.cjs +1 -1
- package/src/lib/views/Passkey/ConfirmPasskeyView/ConfirmPasskeyView.js +1 -1
- package/src/lib/views/Passkey/SetupPasskeyView/SetupPasskeyView.cjs +1 -1
- package/src/lib/views/Passkey/SetupPasskeyView/SetupPasskeyView.js +1 -1
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysMfaWidgetView/ManagePasskeysMfaWidgetView.cjs +5 -2
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysMfaWidgetView/ManagePasskeysMfaWidgetView.js +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
|
|
2
|
+
### [4.29.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.29.0...v4.29.1) (2025-08-21)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* clear user op cache on send transaction ([#9382](https://github.com/dynamic-labs/dynamic-auth/issues/9382)) ([ddef1e1](https://github.com/dynamic-labs/dynamic-auth/commit/ddef1e16367e04d217e6d79a138988394605dda6))
|
|
8
|
+
* display error when trying to register a previously registered passkey ([#9381](https://github.com/dynamic-labs/dynamic-auth/issues/9381)) ([51ecdd8](https://github.com/dynamic-labs/dynamic-auth/commit/51ecdd84a3d1a36435cc79063caa2fd7187a25db))
|
|
9
|
+
* do not double disable confirmation ui ([#9385](https://github.com/dynamic-labs/dynamic-auth/issues/9385)) ([2deb3ae](https://github.com/dynamic-labs/dynamic-auth/commit/2deb3aeb3055ceb79ea2e8410cce94448b18f8c5))
|
|
10
|
+
* **react-native:** dont emit network change events for disabled chains ([#9375](https://github.com/dynamic-labs/dynamic-auth/issues/9375)) ([f03151e](https://github.com/dynamic-labs/dynamic-auth/commit/f03151ea6b065f6b297edb053fbf84f1060b35e4))
|
|
11
|
+
|
|
2
12
|
## [4.29.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.28.0...v4.29.0) (2025-08-19)
|
|
3
13
|
|
|
4
14
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "4.29.
|
|
3
|
+
"version": "4.29.1",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@dynamic-labs/sdk-api-core": "0.0.753",
|
|
6
6
|
"@dynamic-labs-sdk/client": "0.0.1-alpha.24",
|
|
@@ -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.29.
|
|
19
|
-
"@dynamic-labs/iconic": "4.29.
|
|
20
|
-
"@dynamic-labs/logger": "4.29.
|
|
21
|
-
"@dynamic-labs/multi-wallet": "4.29.
|
|
22
|
-
"@dynamic-labs/rpc-providers": "4.29.
|
|
23
|
-
"@dynamic-labs/store": "4.29.
|
|
24
|
-
"@dynamic-labs/types": "4.29.
|
|
25
|
-
"@dynamic-labs/utils": "4.29.
|
|
26
|
-
"@dynamic-labs/wallet-book": "4.29.
|
|
27
|
-
"@dynamic-labs/wallet-connector-core": "4.29.
|
|
18
|
+
"@dynamic-labs/assert-package-version": "4.29.1",
|
|
19
|
+
"@dynamic-labs/iconic": "4.29.1",
|
|
20
|
+
"@dynamic-labs/logger": "4.29.1",
|
|
21
|
+
"@dynamic-labs/multi-wallet": "4.29.1",
|
|
22
|
+
"@dynamic-labs/rpc-providers": "4.29.1",
|
|
23
|
+
"@dynamic-labs/store": "4.29.1",
|
|
24
|
+
"@dynamic-labs/types": "4.29.1",
|
|
25
|
+
"@dynamic-labs/utils": "4.29.1",
|
|
26
|
+
"@dynamic-labs/wallet-book": "4.29.1",
|
|
27
|
+
"@dynamic-labs/wallet-connector-core": "4.29.1",
|
|
28
28
|
"eventemitter3": "5.0.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
@@ -15,6 +15,9 @@ const useGetPasskeyErrorMessage = (error) => {
|
|
|
15
15
|
if (error.name === 'NotAllowedError') {
|
|
16
16
|
return t('dyn_mfa.confirm_passkey_view.error.not_allowed');
|
|
17
17
|
}
|
|
18
|
+
if (error.name === 'InvalidStateError') {
|
|
19
|
+
return error.message;
|
|
20
|
+
}
|
|
18
21
|
return error.message;
|
|
19
22
|
}, [error, t]);
|
|
20
23
|
};
|
|
@@ -11,6 +11,9 @@ const useGetPasskeyErrorMessage = (error) => {
|
|
|
11
11
|
if (error.name === 'NotAllowedError') {
|
|
12
12
|
return t('dyn_mfa.confirm_passkey_view.error.not_allowed');
|
|
13
13
|
}
|
|
14
|
+
if (error.name === 'InvalidStateError') {
|
|
15
|
+
return error.message;
|
|
16
|
+
}
|
|
14
17
|
return error.message;
|
|
15
18
|
}, [error, t]);
|
|
16
19
|
};
|
|
@@ -92,6 +92,7 @@ require('../../../../index.cjs');
|
|
|
92
92
|
require('../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs');
|
|
93
93
|
var TextButton = require('../../../components/TextButton/TextButton.cjs');
|
|
94
94
|
require('qrcode');
|
|
95
|
+
var useGetPasskeyErrorMessage = require('../../../utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.cjs');
|
|
95
96
|
require('../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
|
|
96
97
|
require('../../../context/IpConfigurationContext/IpConfigurationContext.cjs');
|
|
97
98
|
require('../../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
|
|
@@ -101,7 +102,6 @@ require('../../ExchangeWhitelistWarning/ExchangeWhitelistWarning.cjs');
|
|
|
101
102
|
require('../../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
|
|
102
103
|
require('../../MfaChooseDeviceView/getMfaOptions/getMfaOptions.cjs');
|
|
103
104
|
var ModalHeaderBanner = require('../../../components/ModalHeaderBanner/ModalHeaderBanner.cjs');
|
|
104
|
-
var useGetPasskeyErrorMessage = require('../../../utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.cjs');
|
|
105
105
|
require('../../../store/state/connectorsInitializing/connectorsInitializing.cjs');
|
|
106
106
|
require('../../../store/state/tokenBalances.cjs');
|
|
107
107
|
require('../../../store/state/multichainBalances.cjs');
|
|
@@ -88,6 +88,7 @@ import '../../../../index.js';
|
|
|
88
88
|
import '../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.js';
|
|
89
89
|
import { TextButton } from '../../../components/TextButton/TextButton.js';
|
|
90
90
|
import 'qrcode';
|
|
91
|
+
import { useGetPasskeyErrorMessage } from '../../../utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.js';
|
|
91
92
|
import '../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.js';
|
|
92
93
|
import '../../../context/IpConfigurationContext/IpConfigurationContext.js';
|
|
93
94
|
import '../../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
|
|
@@ -97,7 +98,6 @@ import '../../ExchangeWhitelistWarning/ExchangeWhitelistWarning.js';
|
|
|
97
98
|
import '../../../context/ErrorContext/hooks/useErrorText/useErrorText.js';
|
|
98
99
|
import '../../MfaChooseDeviceView/getMfaOptions/getMfaOptions.js';
|
|
99
100
|
import { ModalHeaderBanner } from '../../../components/ModalHeaderBanner/ModalHeaderBanner.js';
|
|
100
|
-
import { useGetPasskeyErrorMessage } from '../../../utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.js';
|
|
101
101
|
import '../../../store/state/connectorsInitializing/connectorsInitializing.js';
|
|
102
102
|
import '../../../store/state/tokenBalances.js';
|
|
103
103
|
import '../../../store/state/multichainBalances.js';
|
|
@@ -93,6 +93,7 @@ require('../../../../index.cjs');
|
|
|
93
93
|
require('../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs');
|
|
94
94
|
var TextButton = require('../../../components/TextButton/TextButton.cjs');
|
|
95
95
|
require('qrcode');
|
|
96
|
+
var useGetPasskeyErrorMessage = require('../../../utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.cjs');
|
|
96
97
|
require('../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
|
|
97
98
|
require('../../../context/IpConfigurationContext/IpConfigurationContext.cjs');
|
|
98
99
|
require('../../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
|
|
@@ -102,7 +103,6 @@ require('../../ExchangeWhitelistWarning/ExchangeWhitelistWarning.cjs');
|
|
|
102
103
|
require('../../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
|
|
103
104
|
require('../../MfaChooseDeviceView/getMfaOptions/getMfaOptions.cjs');
|
|
104
105
|
var ModalHeaderBanner = require('../../../components/ModalHeaderBanner/ModalHeaderBanner.cjs');
|
|
105
|
-
var useGetPasskeyErrorMessage = require('../../../utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.cjs');
|
|
106
106
|
require('../../../store/state/connectorsInitializing/connectorsInitializing.cjs');
|
|
107
107
|
require('../../../store/state/tokenBalances.cjs');
|
|
108
108
|
require('../../../store/state/multichainBalances.cjs');
|
|
@@ -89,6 +89,7 @@ import '../../../../index.js';
|
|
|
89
89
|
import '../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.js';
|
|
90
90
|
import { TextButton } from '../../../components/TextButton/TextButton.js';
|
|
91
91
|
import 'qrcode';
|
|
92
|
+
import { useGetPasskeyErrorMessage } from '../../../utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.js';
|
|
92
93
|
import '../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.js';
|
|
93
94
|
import '../../../context/IpConfigurationContext/IpConfigurationContext.js';
|
|
94
95
|
import '../../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
|
|
@@ -98,7 +99,6 @@ import '../../ExchangeWhitelistWarning/ExchangeWhitelistWarning.js';
|
|
|
98
99
|
import '../../../context/ErrorContext/hooks/useErrorText/useErrorText.js';
|
|
99
100
|
import '../../MfaChooseDeviceView/getMfaOptions/getMfaOptions.js';
|
|
100
101
|
import { ModalHeaderBanner } from '../../../components/ModalHeaderBanner/ModalHeaderBanner.js';
|
|
101
|
-
import { useGetPasskeyErrorMessage } from '../../../utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.js';
|
|
102
102
|
import '../../../store/state/connectorsInitializing/connectorsInitializing.js';
|
|
103
103
|
import '../../../store/state/tokenBalances.js';
|
|
104
104
|
import '../../../store/state/multichainBalances.js';
|
|
@@ -92,6 +92,7 @@ require('../../../../../index.cjs');
|
|
|
92
92
|
require('../../helpers/convertExchangeKeyAndProviderEnum.cjs');
|
|
93
93
|
require('qrcode');
|
|
94
94
|
var MfaDeviceTileSkeleton = require('../../../../components/MfaDeviceTileSkeleton/MfaDeviceTileSkeleton.cjs');
|
|
95
|
+
var useGetPasskeyErrorMessage = require('../../../../utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.cjs');
|
|
95
96
|
require('../ReceiveWalletFunds/ReceiveWalletFunds.cjs');
|
|
96
97
|
require('../../../../context/IpConfigurationContext/IpConfigurationContext.cjs');
|
|
97
98
|
require('../../../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
|
|
@@ -100,6 +101,7 @@ require('@hcaptcha/react-hcaptcha');
|
|
|
100
101
|
require('../../../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.cjs');
|
|
101
102
|
require('../../../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
|
|
102
103
|
require('../../../../views/MfaChooseDeviceView/getMfaOptions/getMfaOptions.cjs');
|
|
104
|
+
var ModalHeaderBanner = require('../../../../components/ModalHeaderBanner/ModalHeaderBanner.cjs');
|
|
103
105
|
require('../../../../store/state/connectorsInitializing/connectorsInitializing.cjs');
|
|
104
106
|
require('../../../../store/state/tokenBalances.cjs');
|
|
105
107
|
require('../../../../store/state/multichainBalances.cjs');
|
|
@@ -120,15 +122,16 @@ const ManagePasskeysMfaWidgetView = () => {
|
|
|
120
122
|
enabled: true,
|
|
121
123
|
initialData: [],
|
|
122
124
|
});
|
|
123
|
-
const { mutate: registerPasskey, isLoading: isRegisteringPasskey } = useMutation.useMutation(registerPasskeyFn, {
|
|
125
|
+
const { mutate: registerPasskey, isLoading: isRegisteringPasskey, error: registerPasskeyError, } = useMutation.useMutation(registerPasskeyFn, {
|
|
124
126
|
onSuccess: () => {
|
|
125
127
|
retrigger();
|
|
126
128
|
},
|
|
127
129
|
});
|
|
130
|
+
const errorMessage = useGetPasskeyErrorMessage.useGetPasskeyErrorMessage(registerPasskeyError);
|
|
128
131
|
const shouldDisableActions = isLoadingPasskeys || isRegisteringPasskey;
|
|
129
132
|
const { setDynamicWidgetView } = DynamicWidgetContext.useWidgetContext();
|
|
130
133
|
const backButton = (jsxRuntime.jsx(IconButton.IconButton, { type: 'button', onClick: () => setDynamicWidgetView('account-and-security-settings'), "data-testid": 'back-button', children: jsxRuntime.jsx(chevronLeft.ReactComponent, {}) }));
|
|
131
|
-
return (jsxRuntime.jsxs("div", { className: 'manage-totp-mfa-widget-view', children: [jsxRuntime.jsx(ModalHeader.ModalHeader, { leading: backButton, children: jsxRuntime.jsx("div", { className: 'send-balance-page-layout__header-content', children: jsxRuntime.jsx(Typography.Typography, { variant: 'title', color: 'primary', copykey: 'dyn_manage_passkeys_mfa.title', children: t('dyn_manage_passkeys_mfa.title') }) }) }), jsxRuntime.jsxs("div", { className: 'manage-totp-mfa-widget-view__scroll-container', children: [isLoadingPasskeys && jsxRuntime.jsx(MfaDeviceTileSkeleton.MfaDeviceTileSkeleton, {}), !isLoadingPasskeys && passkeys.length === 0 && (jsxRuntime.jsx(Typography.Typography, { className: 'manage-totp-mfa-widget-view__no-devices', variant: 'body_normal', color: 'secondary', copykey: 'dyn_manage_passkeys_mfa.no_passkeys', children: t('dyn_manage_passkeys_mfa.no_passkeys') })), passkeys.map((passkey) => (jsxRuntime.jsx(PasskeyCard.PasskeyCard, { passkey: passkey, onUpdate: retrigger }, passkey.id)))] }), jsxRuntime.jsx("div", { className: 'manage-totp-mfa-widget-view__add-mfa-button-container', children: jsxRuntime.jsx(TypographyButton.TypographyButton, { buttonClassName: 'manage-totp-mfa-widget-view__add-mfa-button-container__button', onClick: () => registerPasskey(), copykey: 'dyn_manage_passkeys_mfa.add_passkey_button', startSlot: jsxRuntime.jsx(add.ReactComponent, {}), disabled: shouldDisableActions, children: t('dyn_manage_passkeys_mfa.add_passkey_button') }) })] }));
|
|
134
|
+
return (jsxRuntime.jsxs("div", { className: 'manage-totp-mfa-widget-view', children: [jsxRuntime.jsx(ModalHeader.ModalHeader, { leading: backButton, children: jsxRuntime.jsx("div", { className: 'send-balance-page-layout__header-content', children: jsxRuntime.jsx(Typography.Typography, { variant: 'title', color: 'primary', copykey: 'dyn_manage_passkeys_mfa.title', children: t('dyn_manage_passkeys_mfa.title') }) }) }), jsxRuntime.jsx(ModalHeaderBanner.ModalHeaderBanner, { type: 'error', messageKey: registerPasskeyError ? errorMessage : undefined, className: 'manage-totp-mfa-widget-view__header-banner' }), jsxRuntime.jsxs("div", { className: 'manage-totp-mfa-widget-view__scroll-container', children: [isLoadingPasskeys && jsxRuntime.jsx(MfaDeviceTileSkeleton.MfaDeviceTileSkeleton, {}), !isLoadingPasskeys && passkeys.length === 0 && (jsxRuntime.jsx(Typography.Typography, { className: 'manage-totp-mfa-widget-view__no-devices', variant: 'body_normal', color: 'secondary', copykey: 'dyn_manage_passkeys_mfa.no_passkeys', children: t('dyn_manage_passkeys_mfa.no_passkeys') })), passkeys.map((passkey) => (jsxRuntime.jsx(PasskeyCard.PasskeyCard, { passkey: passkey, onUpdate: retrigger }, passkey.id)))] }), jsxRuntime.jsx("div", { className: 'manage-totp-mfa-widget-view__add-mfa-button-container', children: jsxRuntime.jsx(TypographyButton.TypographyButton, { buttonClassName: 'manage-totp-mfa-widget-view__add-mfa-button-container__button', onClick: () => registerPasskey(), copykey: 'dyn_manage_passkeys_mfa.add_passkey_button', startSlot: jsxRuntime.jsx(add.ReactComponent, {}), disabled: shouldDisableActions, children: t('dyn_manage_passkeys_mfa.add_passkey_button') }) })] }));
|
|
132
135
|
};
|
|
133
136
|
|
|
134
137
|
exports.ManagePasskeysMfaWidgetView = ManagePasskeysMfaWidgetView;
|
|
@@ -88,6 +88,7 @@ import '../../../../../index.js';
|
|
|
88
88
|
import '../../helpers/convertExchangeKeyAndProviderEnum.js';
|
|
89
89
|
import 'qrcode';
|
|
90
90
|
import { MfaDeviceTileSkeleton } from '../../../../components/MfaDeviceTileSkeleton/MfaDeviceTileSkeleton.js';
|
|
91
|
+
import { useGetPasskeyErrorMessage } from '../../../../utils/hooks/useGetPasskeyErrorMessage/useGetPasskeyErrorMessage.js';
|
|
91
92
|
import '../ReceiveWalletFunds/ReceiveWalletFunds.js';
|
|
92
93
|
import '../../../../context/IpConfigurationContext/IpConfigurationContext.js';
|
|
93
94
|
import '../../../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
|
|
@@ -96,6 +97,7 @@ import '@hcaptcha/react-hcaptcha';
|
|
|
96
97
|
import '../../../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.js';
|
|
97
98
|
import '../../../../context/ErrorContext/hooks/useErrorText/useErrorText.js';
|
|
98
99
|
import '../../../../views/MfaChooseDeviceView/getMfaOptions/getMfaOptions.js';
|
|
100
|
+
import { ModalHeaderBanner } from '../../../../components/ModalHeaderBanner/ModalHeaderBanner.js';
|
|
99
101
|
import '../../../../store/state/connectorsInitializing/connectorsInitializing.js';
|
|
100
102
|
import '../../../../store/state/tokenBalances.js';
|
|
101
103
|
import '../../../../store/state/multichainBalances.js';
|
|
@@ -116,15 +118,16 @@ const ManagePasskeysMfaWidgetView = () => {
|
|
|
116
118
|
enabled: true,
|
|
117
119
|
initialData: [],
|
|
118
120
|
});
|
|
119
|
-
const { mutate: registerPasskey, isLoading: isRegisteringPasskey } = useMutation(registerPasskeyFn, {
|
|
121
|
+
const { mutate: registerPasskey, isLoading: isRegisteringPasskey, error: registerPasskeyError, } = useMutation(registerPasskeyFn, {
|
|
120
122
|
onSuccess: () => {
|
|
121
123
|
retrigger();
|
|
122
124
|
},
|
|
123
125
|
});
|
|
126
|
+
const errorMessage = useGetPasskeyErrorMessage(registerPasskeyError);
|
|
124
127
|
const shouldDisableActions = isLoadingPasskeys || isRegisteringPasskey;
|
|
125
128
|
const { setDynamicWidgetView } = useWidgetContext();
|
|
126
129
|
const backButton = (jsx(IconButton, { type: 'button', onClick: () => setDynamicWidgetView('account-and-security-settings'), "data-testid": 'back-button', children: jsx(SvgChevronLeft, {}) }));
|
|
127
|
-
return (jsxs("div", { className: 'manage-totp-mfa-widget-view', children: [jsx(ModalHeader, { leading: backButton, children: jsx("div", { className: 'send-balance-page-layout__header-content', children: jsx(Typography, { variant: 'title', color: 'primary', copykey: 'dyn_manage_passkeys_mfa.title', children: t('dyn_manage_passkeys_mfa.title') }) }) }), jsxs("div", { className: 'manage-totp-mfa-widget-view__scroll-container', children: [isLoadingPasskeys && jsx(MfaDeviceTileSkeleton, {}), !isLoadingPasskeys && passkeys.length === 0 && (jsx(Typography, { className: 'manage-totp-mfa-widget-view__no-devices', variant: 'body_normal', color: 'secondary', copykey: 'dyn_manage_passkeys_mfa.no_passkeys', children: t('dyn_manage_passkeys_mfa.no_passkeys') })), passkeys.map((passkey) => (jsx(PasskeyCard, { passkey: passkey, onUpdate: retrigger }, passkey.id)))] }), jsx("div", { className: 'manage-totp-mfa-widget-view__add-mfa-button-container', children: jsx(TypographyButton, { buttonClassName: 'manage-totp-mfa-widget-view__add-mfa-button-container__button', onClick: () => registerPasskey(), copykey: 'dyn_manage_passkeys_mfa.add_passkey_button', startSlot: jsx(SvgAdd, {}), disabled: shouldDisableActions, children: t('dyn_manage_passkeys_mfa.add_passkey_button') }) })] }));
|
|
130
|
+
return (jsxs("div", { className: 'manage-totp-mfa-widget-view', children: [jsx(ModalHeader, { leading: backButton, children: jsx("div", { className: 'send-balance-page-layout__header-content', children: jsx(Typography, { variant: 'title', color: 'primary', copykey: 'dyn_manage_passkeys_mfa.title', children: t('dyn_manage_passkeys_mfa.title') }) }) }), jsx(ModalHeaderBanner, { type: 'error', messageKey: registerPasskeyError ? errorMessage : undefined, className: 'manage-totp-mfa-widget-view__header-banner' }), jsxs("div", { className: 'manage-totp-mfa-widget-view__scroll-container', children: [isLoadingPasskeys && jsx(MfaDeviceTileSkeleton, {}), !isLoadingPasskeys && passkeys.length === 0 && (jsx(Typography, { className: 'manage-totp-mfa-widget-view__no-devices', variant: 'body_normal', color: 'secondary', copykey: 'dyn_manage_passkeys_mfa.no_passkeys', children: t('dyn_manage_passkeys_mfa.no_passkeys') })), passkeys.map((passkey) => (jsx(PasskeyCard, { passkey: passkey, onUpdate: retrigger }, passkey.id)))] }), jsx("div", { className: 'manage-totp-mfa-widget-view__add-mfa-button-container', children: jsx(TypographyButton, { buttonClassName: 'manage-totp-mfa-widget-view__add-mfa-button-container__button', onClick: () => registerPasskey(), copykey: 'dyn_manage_passkeys_mfa.add_passkey_button', startSlot: jsx(SvgAdd, {}), disabled: shouldDisableActions, children: t('dyn_manage_passkeys_mfa.add_passkey_button') }) })] }));
|
|
128
131
|
};
|
|
129
132
|
|
|
130
133
|
export { ManagePasskeysMfaWidgetView };
|