// © XlXi 2021 // Graphictoria 5 import React, { useState } from 'react'; import { Link } from 'react-router-dom'; import ReCAPTCHA from 'react-google-recaptcha'; import Loader from '../../Components/Loader.js'; import { CreateAccount } from '../../Helpers/Auth.js'; const RegisterForm = (props) => { const RegistrationAreas = [ { text: 'Username', type: 'username', id: 'username' }, { text: 'Email', type: 'email', id: 'email' }, { text: 'Password', type: 'password', id: 'password' }, { text: 'Confirm password', type: 'password', id: 'confirmation' } ]; const [waitingForSubmission, setWaitingForSubmission] = useState(false); const [validity, setValidity] = useState({error: false, message: ``, inputs: []}); async function SubmitRegistration(form) { const formData = new FormData(form); setWaitingForSubmission(true); await CreateAccount(formData).then(res=>{ if (res != `good`) { setValidity({error: true, message:res.message, inputs: res.inputs}); setTimeout(()=>{setValidity({...validity, error: false, inputs: res.inputs});}, 4000); } }).catch(error=>console.log(error)); setWaitingForSubmission(false); } return ( waitingForSubmission ? : ( <>

Make sure your password is unique!

{validity.error?

{validity.message}

: null}
{e.preventDefault();SubmitRegistration(e.target);}}> { RegistrationAreas.map(({ text, type, id }, index) => {}} type={ type } className={ `form-control mb-2 ${(validity.inputs.find(input=>input == id)? `is-invalid` : ``)}` } placeholder={ text } id={ id } name={id}/> ) }
Already have an account?

By creating an account, you agree to our Terms of Service and our Privacy Policy.

) ); }; export default RegisterForm; /* const [values, setValues] = useState({ username: '', email: '', password: '', confirmation: '' }); const [validity, setValidity] = useState({ username: false, email: false, password: false, confirmation: false }); const [validityMessages, setValidityMessages] = useState({ username: 'test', email: '', password: '', confirmation: '' }); const handleChange = (e) => { const {id, value} = e.target; setValues(prevState => ({ ...prevState, [id] : value })); } */