summaryrefslogtreecommitdiffhomepage
path: root/frontend/src
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2024-07-25 10:57:06 -0400
committerrealtradam <[email protected]>2024-07-25 10:57:06 -0400
commitc01264b60b7ad8bb3eb3dcf4d3ec0b77bcd4c3d1 (patch)
tree4b2cc7a77927b51cef81309e92ab9584c1b9b96e /frontend/src
parent054e25bb66269d1d99ee0b0afa3b26abee2db80f (diff)
downloadspring-blog-c01264b60b7ad8bb3eb3dcf4d3ec0b77bcd4c3d1.tar.gz
spring-blog-c01264b60b7ad8bb3eb3dcf4d3ec0b77bcd4c3d1.zip
start work on registration
Diffstat (limited to 'frontend/src')
-rw-r--r--frontend/src/pages/Register.tsx33
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"