import React, { PureComponent } from 'react'; import { connect } from 'react-redux'; import { loginAsync } from '../../actions/auth.actions'; import { Button, Icon, Input, Form, Col, Row } from 'antd'; import Title from 'antd/lib/typography/Title'; import './login-page.scss'; class LoginForm extends PureComponent { componentWillMount() { if (localStorage.getItem('session')) { this.props.history.push('/dashboard'); } } render() { const { getFieldDecorator } = this.props.form; return (
Login {getFieldDecorator('username', { rules: [{ required: true, message: 'Please enter your username!' }], })( } type="text" name="username" placeholder="Username" />, )} {getFieldDecorator('password', { rules: [{ required: true, message: 'Please enter your password!' }], })( } type="password" name="password" placeholder="Password" />, )} Have not registered yet? Register here.
); } private onSubmit = (event: React.FormEvent) => { event.preventDefault(); this.props.form.validateFields((error: any, values: any) => { if (!error) { this.props.dispatch(loginAsync(values.username, values.password, this.props.history)); } }); } } const mapStateToProps = (state: any) => { return state.authContext; }; export default Form.create()(connect(mapStateToProps)(LoginForm));