import { User } from 'approw-js-sdk' import React, { FC, useState } from 'react' import { Button, Form } from 'antd' import { VerifyCodeInput } from '../../../../common/VerifyCodeInput' import { useGuardContext } from '../../../../context/global/context' import { MfaVerifyForm } from '../../types' import './style.less' import { useTranslation } from 'react-i18next' const CODE_LEN = 6 export const MFAVerifyForm: FC = ({ onSuccess, onFail, goReset, }) => { const { state: { authClient, mfaData: { mfaToken }, }, } = useGuardContext() const { t } = useTranslation() const [rawForm] = Form.useForm() const [MfaCode, setMFACode] = useState(new Array(CODE_LEN).fill('')) const [loading, setLoading] = useState(false) const onFinish = async (values: any) => { try { const user: User = await authClient.mfa.verifyTotpMfa({ mfaToken, totp: MfaCode.join(''), }) onSuccess && onSuccess(user) } catch (e) { onFail?.(e) } finally { setLoading(false) } } return ( <>

{t('login.accPwdLoginVerify')}

{t('login.inputSixCode')}

setLoading(true)} onFinish={onFinish} onFinishFailed={() => setLoading(false)} > !item)) { return Promise.reject(t('login.inputFullMfaCode')) } return Promise.resolve() }, }, ]} >
{t('common.hasLooseSaftyCode')}
) }