import React from 'react'; import { Button, Alert, Input } from 'antd'; import { requestUserRecoveryEmail } from 'api/api'; import './AccountRecovery.less'; import Result from 'ant-design-pro/lib/Result'; const STATE = { email: '', isRecoveryPending: false, isRecoverySuccess: false, recoveryError: '', }; type State = typeof STATE; class AccountRecovery extends React.Component<{}, State> { state: State = { ...STATE }; render() { const { recoveryError, isRecoveryPending, isRecoverySuccess, email } = this.state; return (
{!isRecoverySuccess && (
this.setState({ email: e.currentTarget.value })} size="large" autoComplete="email" type="email" required={true} />
)} {isRecoverySuccess && ( )}
{recoveryError && ( )}
); } private handleRecover = (ev: React.FormEvent) => { ev.preventDefault(); const { email } = this.state; this.setState({ ...STATE, isRecoveryPending: true, email, }); requestUserRecoveryEmail(email) .then(() => { this.setState({ isRecoveryPending: false, isRecoverySuccess: true }); }) .catch(e => { this.setState({ isRecoveryPending: false, recoveryError: e.message }); }); }; } export default AccountRecovery;