Error checking in register component, redirect to login if success
This commit is contained in:
parent
40caa2d158
commit
e012b6ff12
2 changed files with 27 additions and 8 deletions
|
@ -37,13 +37,19 @@ export const api: API = {
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
return { success: false, message: "Failed to register user" };
|
return {
|
||||||
|
success: false,
|
||||||
|
message: "Failed to register user: " + response.status,
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
const data = (await response.json()) as User;
|
// const data = (await response.json()) as User; // The API does not currently return the user
|
||||||
return { success: true, data };
|
return { success: true };
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return { success: false, message: "Failed to register user" };
|
return {
|
||||||
|
success: false,
|
||||||
|
message: "Unknown error while registering user",
|
||||||
|
};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -3,14 +3,26 @@ import { NewUser } from "../Types/Users";
|
||||||
import { api } from "../API/API";
|
import { api } from "../API/API";
|
||||||
import Logo from "../assets/Logo.svg";
|
import Logo from "../assets/Logo.svg";
|
||||||
import Button from "./Button";
|
import Button from "./Button";
|
||||||
|
import { useNavigate } from "react-router-dom";
|
||||||
|
|
||||||
export default function Register(): JSX.Element {
|
export default function Register(): JSX.Element {
|
||||||
const [username, setUsername] = useState("");
|
const [username, setUsername] = useState<string>();
|
||||||
const [password, setPassword] = useState("");
|
const [password, setPassword] = useState<string>();
|
||||||
|
const [errMessage, setErrMessage] = useState<string>();
|
||||||
|
|
||||||
|
const nav = useNavigate();
|
||||||
|
|
||||||
const handleRegister = async (): Promise<void> => {
|
const handleRegister = async (): Promise<void> => {
|
||||||
const newUser: NewUser = { userName: username, password };
|
const newUser: NewUser = {
|
||||||
await api.registerUser(newUser); // TODO: Handle errors
|
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 (
|
return (
|
||||||
|
@ -67,6 +79,7 @@ export default function Register(): JSX.Element {
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
{errMessage && <p className="text-red-500 text-xs">{errMessage}</p>}
|
||||||
<div className="flex items-center justify-between">
|
<div className="flex items-center justify-between">
|
||||||
<Button
|
<Button
|
||||||
text="Register"
|
text="Register"
|
||||||
|
|
Loading…
Add table
Reference in a new issue