import React from 'react'; import { FormComponentProps } from 'antd/lib/form/Form'; import { Button, Icon, Input, Form, } from 'antd'; export interface LoginData { username: string; password: string; } type LoginFormProps = { fetching: boolean; onSubmit(loginData: LoginData): void; } & FormComponentProps; class LoginFormComponent extends React.PureComponent { private handleSubmit = (e: React.FormEvent): void => { e.preventDefault(); const { form, onSubmit, } = this.props; form.validateFields((error, values): void => { if (!error) { onSubmit(values); } }); }; private renderUsernameField(): JSX.Element { const { form } = this.props; const { getFieldDecorator } = form; return ( {getFieldDecorator('username', { rules: [{ required: true, message: 'Please specify a username', }], })( } placeholder='Username' />, )} ); } private renderPasswordField(): JSX.Element { const { form } = this.props; const { getFieldDecorator } = form; return ( {getFieldDecorator('password', { rules: [{ required: true, message: 'Please specify a password', }], })( } placeholder='Password' type='password' />, )} ); } public render(): JSX.Element { const { fetching } = this.props; return (
{this.renderUsernameField()} {this.renderPasswordField()}
); } } export default Form.create()(LoginFormComponent);