servatrice/webclient/src/forms/RegisterForm/RegisterForm.tsx
2021-11-16 16:55:30 -05:00

66 lines
2.2 KiB
TypeScript

// eslint-disable-next-line
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { Form, Field, reduxForm, change } from 'redux-form'
import Button from '@material-ui/core/Button';
import { InputField, KnownHosts } from 'components';
import { FormKey } from 'types';
import './RegisterForm.css';
const RegisterForm = (props) => {
const { dispatch, handleSubmit } = props;
const onHostChange = ({ host, port }) => {
dispatch(change(FormKey.REGISTER, 'host', host));
dispatch(change(FormKey.REGISTER, 'port', port));
}
return (
<Form className="registerForm row" onSubmit={handleSubmit} autoComplete="off">
<div className="leftRegisterForm column" >
<div className="registerForm-item">
<KnownHosts onChange={onHostChange} />
{ /* Padding is off */ }
</div>
<div className="registerForm-item">
<Field label="Country" name="country" component={InputField} />
</div>
<div className="registerForm-item">
<Field label="Real Name" name="realName" component={InputField} />
</div>
<div className="registerForm-item">
<Field label="Email" name="email" type="email" component={InputField} />
</div>
</div>
<div className="rightRegisterForm column">
<div className="registerForm-item">
<Field label="Player Name" name="user" component={InputField} />
</div>
<div className="registerForm-item">
<Field label="Password" name="pass" type="password" component={InputField} />
</div>
<div className="registerForm-item">
<Field label="Password (again)" name="passwordConfirm" type="password" component={InputField} />
</div>
<Button className="registerForm-submit tall" color="primary" variant="contained" type="submit">
Register
</Button>
</div>
</Form >
);
};
const propsMap = {
form: FormKey.REGISTER,
};
const mapStateToProps = () => ({
initialValues: {
}
});
export default connect(mapStateToProps)(reduxForm(propsMap)(RegisterForm));