UNPKG

@dynamic-labs/sdk-react-core

Version:

A React SDK for implementing wallet web3 authentication and authorization to your website.

140 lines (135 loc) 8.94 kB
'use client' 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _tslib = require('../../../../_virtual/_tslib.cjs'); var jsxRuntime = require('react/jsx-runtime'); var React = require('react'); var reactI18next = require('react-i18next'); require('@dynamic-labs/utils'); require('../../components/Accordion/components/AccordionItem/AccordionItem.cjs'); require('@dynamic-labs/iconic'); require('../../context/ViewContext/ViewContext.cjs'); var Button = require('../../components/Button/Button.cjs'); require('../../components/Alert/Alert.cjs'); require('../../events/dynamicEvents.cjs'); require('../../context/DynamicContext/DynamicContext.cjs'); require('../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs'); require('@dynamic-labs/sdk-api-core'); require('../../shared/logger.cjs'); require('@dynamic-labs/wallet-connector-core'); require('@dynamic-labs/wallet-book'); require('../../utils/constants/colors.cjs'); require('../../utils/constants/values.cjs'); require('../../shared/consts/index.cjs'); require('../../store/state/authMode/authMode.cjs'); var useInternalDynamicContext = require('../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs'); require('../../context/CaptchaContext/CaptchaContext.cjs'); require('../../context/ErrorContext/ErrorContext.cjs'); require('@dynamic-labs/multi-wallet'); require('react-international-phone'); require('../../store/state/nonce/nonce.cjs'); require('../../store/state/projectSettings/projectSettings.cjs'); var isValidMfaRecoveryCode = require('../../utils/functions/isValidMfaRecoveryCode/isValidMfaRecoveryCode.cjs'); require('../../config/ApiEndpoint.cjs'); require('../../store/state/user/user.cjs'); require('../../locale/locale.cjs'); require('../../store/state/dynamicContextProps/dynamicContextProps.cjs'); require('../../store/state/primaryWalletId/primaryWalletId.cjs'); require('../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs'); require('../../context/AccessDeniedContext/AccessDeniedContext.cjs'); require('../../context/AccountExistsContext/AccountExistsContext.cjs'); require('../../context/UserWalletsContext/UserWalletsContext.cjs'); require('../../context/VerificationContext/VerificationContext.cjs'); require('react-dom'); require('../../utils/functions/compareChains/compareChains.cjs'); require('../Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs'); require('../../context/ThemeContext/ThemeContext.cjs'); require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs'); require('bs58'); require('@dynamic-labs/types'); require('../../context/SocialRedirectContext/SocialRedirectContext.cjs'); require('../../context/LoadingContext/LoadingContext.cjs'); require('../../context/WalletContext/WalletContext.cjs'); require('../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs'); require('yup'); require('../../context/MockContext/MockContext.cjs'); require('../CollectUserDataView/useFields.cjs'); require('../../context/FieldsStateContext/FieldsStateContext.cjs'); require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs'); require('@dynamic-labs/rpc-providers'); require('../../store/state/walletOptions/walletOptions.cjs'); var Typography = require('../../components/Typography/Typography.cjs'); require('../../context/FooterAnimationContext/index.cjs'); require('../../components/ShadowDOM/ShadowDOM.cjs'); require('../../components/Transition/ZoomTransition/ZoomTransition.cjs'); require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs'); require('../../components/Transition/OpacityTransition/OpacityTransition.cjs'); require('../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs'); require('../../context/WalletGroupContext/WalletGroupContext.cjs'); require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs'); require('react-focus-lock'); var IconWithSpinner = require('../../components/IconWithSpinner/IconWithSpinner.cjs'); require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs'); require('../../components/IconButton/IconButton.cjs'); require('../../components/MenuList/Dropdown/Dropdown.cjs'); var ErrorContainer = require('../../components/ErrorContainer/ErrorContainer.cjs'); require('formik'); require('../../utils/hooks/useSubdomainCheck/useSubdomainCheck.cjs'); require('../../store/state/sendBalances.cjs'); var Input = require('../../components/Input/Input.cjs'); require('../../components/OverlayCard/OverlayCard.cjs'); require('../TransactionConfirmationView/TransactionConfirmationView.cjs'); require('../../context/PasskeyContext/PasskeyContext.cjs'); require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs'); require('../../context/OnrampContext/OnrampContext.cjs'); require('qrcode'); require('../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs'); require('../../../index.cjs'); require('../../context/IpConfigurationContext/IpConfigurationContext.cjs'); require('../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs'); require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs'); require('@hcaptcha/react-hcaptcha'); require('../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs'); var useMfa = require('../../utils/hooks/useMfa/useMfa.cjs'); require('../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs'); require('../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs'); require('../../store/state/connectorsInitializing/connectorsInitializing.cjs'); require('../../store/state/tokenBalances.cjs'); require('../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs'); require('../../components/InlineWidget/InlineWidget.cjs'); require('../../components/IsBrowser/IsBrowser.cjs'); var MfaRecoveryIcon = require('../../components/MfaRecoveryIcon/MfaRecoveryIcon.cjs'); require('../../components/Popper/Popper/Popper.cjs'); require('../../components/Popper/PopperContext/PopperContext.cjs'); const MfaRecoveryView = () => { var _a; const { t } = reactI18next.useTranslation(); const { projectSettings } = useInternalDynamicContext.useInternalDynamicContext(); const { authRecoveryCode } = useMfa.useMfa(); const [code, setCode] = React.useState(''); const [isLoading, setIsLoading] = React.useState(false); const [error, setError] = React.useState(''); const supportEmail = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general) === null || _a === void 0 ? void 0 : _a.supportEmail; const handleRecovery = () => _tslib.__awaiter(void 0, void 0, void 0, function* () { if (!code) { return; } try { setIsLoading(true); yield authRecoveryCode(code); } catch (e) { setError(e.message || 'Something went wrong'); } finally { setIsLoading(false); } }); const handleCodeChanged = (event) => { const inputCode = event.target.value; setCode(inputCode); setError(''); }; return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [error && jsxRuntime.jsx(ErrorContainer.ErrorContainer, { children: error }), jsxRuntime.jsxs("div", { className: 'mfa-recovery-view', children: [jsxRuntime.jsx(IconWithSpinner.IconWithSpinner, { Icon: MfaRecoveryIcon.MfaRecoveryScreenIcon, isSpinning: isLoading, iconSize: 96 }), jsxRuntime.jsx("div", { className: 'mfa-recovery-view__body', children: jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: t('dyn_mfa.recovery_view.body') }) }), jsxRuntime.jsxs("div", { className: 'mfa-recovery-view__actions', children: [jsxRuntime.jsx(Input.Input, { id: 'mfa-recovery-input', "data-testid": 'mfa-recovery-input', label: t('dyn_mfa.recovery_view.input_label'), onChange: handleCodeChanged, value: code }), jsxRuntime.jsx(Button.Button, { expanded: true, buttonVariant: 'brand-primary', disabled: isLoading || !isValidMfaRecoveryCode.isValidMfaRecoveryCode(code), onClick: handleRecovery, dataTestId: 'mfa-recovery-submit', children: jsxRuntime.jsx(Typography.Typography, { children: t('dyn_mfa.recovery_view.button_label') }) })] }), supportEmail && (jsxRuntime.jsxs("div", { className: 'mfa-recovery-view__get-help', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', color: 'secondary', children: t('dyn_mfa.recovery_view.get_help.description') }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', color: 'link', children: jsxRuntime.jsx("a", { href: `mailto:${supportEmail}`, children: t('dyn_mfa.recovery_view.get_help.button_label') }) })] }))] })] })); }; exports.MfaRecoveryView = MfaRecoveryView;