diff --git a/frontend/src/API/API.ts b/frontend/src/API/API.ts index 32c5eb2..ac0f531 100644 --- a/frontend/src/API/API.ts +++ b/frontend/src/API/API.ts @@ -61,13 +61,19 @@ export const api: API = { }); if (!response.ok) { - return { success: false, message: "Failed to register user" }; + return { + success: false, + message: "Failed to register user: " + response.status, + }; } else { - const data = (await response.json()) as User; - return { success: true, data }; + // const data = (await response.json()) as User; // The API does not currently return the user + return { success: true }; } } catch (e) { - return { success: false, message: "Failed to register user" }; + return { + success: false, + message: "Unknown error while registering user", + }; } }, diff --git a/frontend/src/Components/Register.tsx b/frontend/src/Components/Register.tsx index f3d773e..af77d36 100644 --- a/frontend/src/Components/Register.tsx +++ b/frontend/src/Components/Register.tsx @@ -3,6 +3,7 @@ import { NewUser } from "../Types/goTypes"; import { api } from "../API/API"; import Logo from "../assets/Logo.svg"; import Button from "./Button"; +import { useNavigate } from "react-router-dom"; function InputField(props: { label: string; @@ -31,12 +32,23 @@ function InputField(props: { } export default function Register(): JSX.Element { - const [username, setUsername] = useState(""); - const [password, setPassword] = useState(""); + const [username, setUsername] = useState(); + const [password, setPassword] = useState(); + const [errMessage, setErrMessage] = useState(); + + const nav = useNavigate(); const handleRegister = async (): Promise => { - const newUser: NewUser = { username: username, password }; - await api.registerUser(newUser); // TODO: Handle errors + const newUser: NewUser = { + username: username ?? "", + password: password ?? "", + }; + const response = await api.registerUser(newUser); + if (response.success) { + nav("/"); // Instantly navigate to the login page + } else { + setErrMessage(response.message ?? "Unknown error"); + } }; return ( @@ -73,6 +85,43 @@ export default function Register(): JSX.Element { setPassword(e.target.value); }} /> +
+ + { + setUsername(e.target.value); + }} + /> +
+
+ + { + setPassword(e.target.value); + }} + /> +
+ {errMessage &&

{errMessage}

}