diff options
Diffstat (limited to 'frontend/src/pages/Register.tsx')
| -rw-r--r-- | frontend/src/pages/Register.tsx | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/frontend/src/pages/Register.tsx b/frontend/src/pages/Register.tsx index 7030842..786d252 100644 --- a/frontend/src/pages/Register.tsx +++ b/frontend/src/pages/Register.tsx @@ -1,10 +1,41 @@ +import { FormEvent } from "react"; +import { useNavigate } from 'react-router-dom'; export default function Register () { + const navigate = useNavigate(); + +const handleSubmit = async (e: FormEvent<HTMLFormElement>) => { + e.preventDefault(); //stops submit from happening + + const target = e.target as typeof e.target & { + username: { value: string }; + email: { value: string }; + password: { value: string }; + }; + + const formData = new FormData(); + formData.append('user[username]', target.username.value); + formData.append('user[email]', target.email.value); + formData.append('user[password]', target.password.value); + + const response = await fetch(`${import.meta.env.VITE_API_TITLE}/api/v1/register`, { + credentials: 'include', + method: 'post', + body: formData, + }); + if(response.ok) { + navigate("/login"); + } + else { + alert("error"); + } + }; + return( <> <div className="flex flex-col items-center justify-center bg-white p-12"> <div className="text-xl w-full text-center mb-8 p-4 bg-black text-red-500">Username or Email already exists</div> - <form role="form" method="post" className="w-full max-w-lg"> + <form onSubmit={handleSubmit} method="post" className="w-full max-w-lg"> <div className="flex flex-wrap -mx-3 mb-6"> <div className="w-full md:w-1/2 px-3 mb-6 md:mb-0"> <label className="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2" |
