diff --git a/frontend/src/Components/Register.tsx b/frontend/src/Components/Register.tsx index af5808c..281042f 100644 --- a/frontend/src/Components/Register.tsx +++ b/frontend/src/Components/Register.tsx @@ -3,7 +3,14 @@ import { NewUser } from "../Types/goTypes"; import { api } from "../API/API"; import Logo from "../assets/Logo.svg"; import Button from "./Button"; -import InputField from "./InputField"; +import UsernameInput from "./Inputs/UsernameInput"; +import PasswordInput from "./Inputs/PasswordInput"; +import { alphanumeric, lowercase } from "../Data/regex"; +import { + passwordLength, + usernameLowLimit, + usernameUpLimit, +} from "../Data/constants"; /** * Renders a registration form for the admin to add new users in. @@ -15,9 +22,25 @@ export default function Register(): JSX.Element { const [errMessage, setErrMessage] = useState(); const handleRegister = async (): Promise => { - if (username === "" || password === "") { - alert("Must provide username and password"); - return; + if (username !== undefined) { + if ( + username.length > usernameUpLimit || + username.length < usernameLowLimit || + !alphanumeric.test(username) + ) { + alert( + "Please provide valid username: \n-Between 5-10 characters \n-No special characters (.-!?/*)", + ); + return; + } + } + if (password !== undefined) { + if (password.length !== passwordLength || !lowercase.test(password)) { + alert( + "Please provide valid password: \n-Exactly 6 characters \n-No uppercase letters \n-No numbers \n-No special characters (.-!?/*)", + ); + return; + } } const newUser: NewUser = { username: username?.replace(/ /g, "") ?? "", @@ -39,7 +62,7 @@ export default function Register(): JSX.Element {
{ e.preventDefault(); void handleRegister(); @@ -47,33 +70,28 @@ export default function Register(): JSX.Element { > TTIME Logo

Register New User

-
- { - setUsername(e.target.value); - }} - placeholder={"Username"} - /> - { - setPassword(e.target.value); - }} - placeholder={"Password"} - /> -
-
+ + { + setUsername(e.target.value); + }} + /> +
+ { + setPassword(e.target.value); + }} + /> + +
+ )} + {showPwordInput && ( +
+ { + setNewPassword(e.target.value); + }} + /> +