import React from 'react'; import { connect } from 'react-redux'; import { Form, Input, Button, Checkbox, Alert } from 'antd'; import { FormComponentProps } from 'antd/lib/form'; import { authActions } from 'modules/auth'; import { AppState } from 'store/reducers'; import PasswordFormItems from 'components/PasswordFormItems'; import './SignUp.less'; import { Link } from 'react-router-dom'; interface StateProps { isCreatingUser: AppState['auth']['isCreatingUser']; createUserError: AppState['auth']['createUserError']; } interface DispatchProps { createUser: typeof authActions['createUser']; } type Props = StateProps & DispatchProps & FormComponentProps; class SignUp extends React.Component { render() { const { isCreatingUser, createUserError } = this.props; const { getFieldDecorator } = this.props.form; return (
{getFieldDecorator('name', { rules: [{ required: true, message: 'Please add a display name' }], })( , )} {getFieldDecorator('title', { rules: [{ required: true, message: 'Please add your title' }], })( , )} {getFieldDecorator('email', { rules: [ { type: 'email', message: 'Invalid email' }, { required: true, message: 'Please enter your email' }, ], })( , )} {getFieldDecorator('hasAgreed', { rules: [ { required: true, message: 'You must agree to create an account' }, ], })( I agree to the{' '} code of conduct ,{' '} terms of service , and{' '} privacy policy . , )}
{createUserError && ( )}
); } private handleSubmit = (ev: React.FormEvent) => { ev.preventDefault(); const { createUser } = this.props; this.props.form.validateFieldsAndScroll((err: any, values: any) => { if (!err) { delete values.passwordConfirm; createUser(values); } }); }; } const FormWrappedSignUp = Form.create()(SignUp); export default connect( state => ({ isCreatingUser: state.auth.isCreatingUser, createUserError: state.auth.createUserError, }), { createUser: authActions.createUser, }, )(FormWrappedSignUp);