import React from 'react'; import { validateEmail } from '../../../common/utilities.js'; export default class Signup extends React.Component { constructor(props) { super(props); this.state = { email: '', username: '', password: '', retype: '', warning: '' }; } render() { let warningStyle = { display: this.state.warning.length > 0 ? 'flex' : 'none' }; return (

Sign Up

{this.state.warning}

this.validateInput(e)}>
); } validateInput(e) { if (!validateEmail(this.state.email)) { e.preventDefault(); this.setWarning('Invalid Email'); } else if (this.state.username.length < 4) { e.preventDefault(); this.setWarning('Minimum username length is 4 characters'); } else if (this.state.username.length > 100) { e.preventDefault(); this.setWarning('Maximum username length is 100 characters'); } else if (this.state.password.length < 8) { e.preventDefault(); this.setWarning('Minimum password length is 8 characters'); } else if (this.state.password !== this.state.retype) { e.preventDefault(); this.setWarning('Passwords do not match'); } } setWarning(s) { this.setState({ warning: s }); } clearInput() { this.setState({ email: '', password: '', retype: '', warning: '' }); } updateEmail(evt) { this.setState({ email: evt.target.value }); } updateUsername(evt) { this.setState({ username: evt.target.value }); } updatePassword(evt) { this.setState({ password: evt.target.value }); } updateRetype(evt) { this.setState({ retype: evt.target.value }); } }