import React, { FC, useState } from 'react' import { Form, Button, Input, message } from 'antd' import { SafetyOutlined, LockOutlined } from '@ant-design/icons' import { EmailScene } from 'approw-js-sdk' import { getRequiredRules } from '../../../../utils' import { useGuardContext } from '../../../../context/global/context' import { ResetPasswordStep3Props } from '../../types' import { useTranslation } from 'react-i18next' export const ResetPasswordStep3: FC = ({ email, onSuccess = () => {}, onFail, }) => { const { state: { authClient, guardEvents }, } = useGuardContext() const [rawForm] = Form.useForm() const { t } = useTranslation() const [reseting, setReseting] = useState(false) const [sending, setSending] = useState(false) const onSendResetMail = async () => { setSending(true) try { await authClient.sendEmail(email, EmailScene.ResetPassword) message.success(t('login.emailSent')) guardEvents.onPwdEmailSend?.(authClient) } catch (e) { guardEvents.onPwdEmailSendError?.(e, authClient) } finally { setSending(false) } } const onStep3Finish = async (values: any) => { const code = values.code const password = values.password try { await authClient.resetPasswordByEmailCode(email, code, password) onSuccess() } catch (error) { onFail?.(error) } finally { setReseting(false) } } return ( <>

{t('login.resetEmailSent', { email: email, })}

setReseting(false)} onSubmitCapture={() => setReseting(true)} onFinish={onStep3Finish} > } /> } /> { if (rawForm.getFieldValue('password') !== value) { throw new Error(t('login.twoPwdNeedSame')) } }, })} > } />
) }