import React from 'react'; import { Button, Form, Alert } from 'antd'; import qs from 'query-string'; import { withRouter, RouteComponentProps, Link } from 'react-router-dom'; import Result from 'ant-design-pro/lib/Result'; import { resetPassword } from 'api/api'; import { FormComponentProps } from 'antd/lib/form'; import PasswordFormItems from 'components/PasswordFormItems'; import './index.less'; type Props = RouteComponentProps & FormComponentProps; interface State { passwordConfirmDirty: boolean; isResetting: boolean; resetSuccess: boolean; error: string; } class PasswordReset extends React.Component { state: State = { passwordConfirmDirty: false, isResetting: false, resetSuccess: false, error: '', }; render() { const { isResetting, resetSuccess, error } = this.state; const resetForm = (
); const success = ( } /> ); return (

Reset Password

{resetSuccess ? success : resetForm} {error && } {error && (
Having problems?{' '} Request a new password recovery code.
)}
); } private handleSubmit = (ev: React.FormEvent) => { ev.preventDefault(); this.props.form.validateFieldsAndScroll((err: any, values: any) => { if (!err) { const args = qs.parse(this.props.location.search); this.setState({ isResetting: true, error: '' }); resetPassword(args.code, values.password) .then(() => { this.setState({ isResetting: false, resetSuccess: true, }); }) .catch(e => { this.setState({ error: e.message || e.toString(), isResetting: false, }); }); } }); }; } export default Form.create()(withRouter(PasswordReset));