From c74d559499d096c11efaee39402d6da8bcf317b0 Mon Sep 17 00:00:00 2001 From: Toni Date: Fri, 24 May 2024 10:27:28 +0800 Subject: [PATCH] Handle an error response for incorrect credentials. --- src/components/Login.js | 57 +++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/src/components/Login.js b/src/components/Login.js index e69df13..1059ca5 100644 --- a/src/components/Login.js +++ b/src/components/Login.js @@ -4,38 +4,37 @@ import { Paper, Text, TextInput, PasswordInput, Button, rem} from "@mantine/core import {useState} from 'react'; import {http} from "../middleware/axiosConfig"; import { useNavigate } from 'react-router-dom'; +import {useForm} from 'react-hook-form' const Login = () => { const navigate = useNavigate(); - const [userField, setUserField] = useState({ - email:"", - password:"" - }); + const {register, handleSubmit, } = useForm({ + defaultValue: { + email: '', + password: '' + } + }) - const changeFieldHandler = (e) => { - setUserField({ - ...userField, - [e.target.email]: e.target.value - }); - } + const {formState: { errors }} = useForm(); + + const [loginError, setloginError] = useState(false); const onLogin = async (e) => { try { + setloginError(false); await http.get("/sanctum/csrf-cookie"); - const res = await http.post("/api/login", { - email: e.email, - password: e.password, - }); + const res = await http.post("/api/login", e); if (res.status === 200){ navigate("/lists"); } } - catch (err) { - console.error(err) - console.log("Something's Wrong!"); + catch (error) { + if (error.response.status === 401) { + setloginError(true); + } } }; @@ -44,7 +43,7 @@ const Login = () => { return (
- + WELCOME ADMIN! Please login to access the Admin Account Management Site @@ -52,26 +51,34 @@ const Login = () => { changeFieldHandler(e)} + {...register('email')} placeholder="Enter your work email address" + error={errors.email ? "Please enter a valid email" : null} />
changeFieldHandler(e)} + {...register('password')} visible={visible} onVisibilityChange={toggle} + error={ + errors.password + ? "Please enter a valid password" + : null + } />
- -
+ +
+ {loginError && ( + + Login failed! Please verify your credentials and try again. + )}
);