import React, { FC, useState } from 'react' import { Form, Input, Button } from 'antd' import { SafetyOutlined, LockOutlined, UserOutlined } from '@ant-design/icons' import { getRequiredRules } from '../../../../utils' import { useGuardContext } from '../../../../context/global/context' import { ResetPasswordStep2Props } from '../../types' import { SendPhoneCode } from '../SendPhoneCode' import { useTranslation } from 'react-i18next' export const ResetPasswordStep2: FC = ({ phone, onSuccess, onFail, }) => { const [rawForm] = Form.useForm() const { t } = useTranslation() const [loading, setLoading] = useState(false) const { state: { authClient, guardEvents }, } = useGuardContext() const onStep2Finish = async (values: any) => { const code = values.code const password = values.password try { await authClient.resetPasswordByPhoneCode(phone, code, password) onSuccess() } catch (e) { onFail?.(e) } finally { setLoading(false) } } return (
setLoading(false)} onSubmitCapture={() => setLoading(true)} onFinish={onStep2Finish} > } /> } suffix={ guardEvents.onPwdPhoneSendError?.(error, authClient) } onSend={() => guardEvents.onPwdPhoneSend?.(authClient)} phone={phone} /> } /> } /> { if (rawForm.getFieldValue('password') !== value) { throw new Error(t('login.twoPwdNeedSame')) } }, })} > } />
) }