diff --git a/PROF-XXI FW Tool/client/src/components/pages/validation/registration/RegistrationForm.js b/PROF-XXI FW Tool/client/src/components/pages/validation/registration/RegistrationForm.js new file mode 100644 index 0000000000000000000000000000000000000000..16d2217e050c60080867c1ae06e486c17cae0f4b --- /dev/null +++ b/PROF-XXI FW Tool/client/src/components/pages/validation/registration/RegistrationForm.js @@ -0,0 +1,41 @@ +import { useState, useEffect } from "react"; + +const RegistrationForm = (Submit, validateRegistration) => { + const [user, setUser] = useState({ + organizationName: "", + universityWebsite: "", + firstName: "", + lastName: "", + position: "Teacher", + profile: "", + email: "", + password: "", + }); + + const [errors, setErrors] = useState({}); + const [isSubmitting, setIsSubmitting] = useState(false); + + const handleChange = (e) => { + const fieldName = e.target.name; + const fieldValue = e.target.value; + setUser({ ...user, [fieldName]: fieldValue }); + }; + + const handleSubmit = (e) => { + e.preventDefault(); + setErrors(validateRegistration(user)); + setIsSubmitting(true); + }; + + useEffect(() => { + // console.log(errors); + // console.log(isSubmitting); + if (Object.keys(errors).length === 0 && isSubmitting) { + Submit(); + } + }, [errors]); + + return { handleChange, handleSubmit, user, errors }; +}; + +export default RegistrationForm;