From a4b19e32eb39b5d4d26324bf897eaa1bd1ce985a Mon Sep 17 00:00:00 2001 From: Hollgy Date: Wed, 13 Mar 2024 17:56:04 +0100 Subject: [PATCH] Boilerplate added for register, non functional --- frontend/src/Components/Register.tsx | 82 ++++++++++++++++++++++++++++ frontend/src/Pages/LoginPage.tsx | 9 +++ frontend/src/Types/Users.ts | 4 +- frontend/src/main.tsx | 5 ++ 4 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 frontend/src/Components/Register.tsx diff --git a/frontend/src/Components/Register.tsx b/frontend/src/Components/Register.tsx new file mode 100644 index 0000000..e0caf46 --- /dev/null +++ b/frontend/src/Components/Register.tsx @@ -0,0 +1,82 @@ +import { useState } from "react"; +import { NewUser, User } from "../Types/Users"; + +export default function Register() { +const [username, setUsername] = useState('') +const [password, setPassword] = useState('') +const [error, setError] = useState('') + + + + const handleRegister = async () => { + try { + const newUser: NewUser = { username, password }; + const registeredUser: User = await api.registerUser(newUser); + console.log("User registered:", registeredUser); + // Optionally, you can navigate to another page or show a success message here + } catch (error) { + setError("Registration failed. Please try again."); // Handle error appropriately + } + }; + + return ( +
+
+
{ + e.preventDefault(); + handleRegister(); + }} + > +

Register new user

+
+ + setUsername(e.target.value)} + /> +
+
+ + setPassword(e.target.value)} + /> +

+ Please choose a password. +

+
+
+ +
+ {error &&

{error}

} +
+

+
+
+ ); +} diff --git a/frontend/src/Pages/LoginPage.tsx b/frontend/src/Pages/LoginPage.tsx index d8ea651..11a7da2 100644 --- a/frontend/src/Pages/LoginPage.tsx +++ b/frontend/src/Pages/LoginPage.tsx @@ -3,6 +3,7 @@ import Logo from "/src/assets/TTIMElogo.png"; import "./LoginPage.css"; import { useEffect } from "react"; import { Link } from "react-router-dom"; +import Register from "../Components/Register"; const PreloadBackgroundAnimation = (): JSX.Element => { useEffect(() => { @@ -69,6 +70,14 @@ function LoginPage(): JSX.Element { }} /> + +