From e862c1e68f156048b6ad20f51c1f49f6fc5e7274 Mon Sep 17 00:00:00 2001 From: LiebeAnnette Date: Fri, 6 Jun 2025 15:30:26 -0500 Subject: [PATCH] Login screen alert if User not found,pleaselogin. and logging in status shows --- client/src/components/AuthForm.tsx | 80 ++++++++++++++++++------------ 1 file changed, 47 insertions(+), 33 deletions(-) diff --git a/client/src/components/AuthForm.tsx b/client/src/components/AuthForm.tsx index feeec0f..b34448e 100644 --- a/client/src/components/AuthForm.tsx +++ b/client/src/components/AuthForm.tsx @@ -31,21 +31,34 @@ const AuthForm: React.FC = () => { const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [isLogin, setIsLogin] = useState(true); - - //added const [showPassword, setShowPassword] = useState(false); + const [loading, setLoading] = useState(false); + const [errorMessage, setErrorMessage] = useState(""); + const [login] = useMutation(LOGIN); const [register] = useMutation(REGISTER); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); + if (!username || !password) { + setErrorMessage("Please enter both username and password."); + return; + } + + setLoading(true); + setErrorMessage(""); + try { const mutation = isLogin ? login : register; const result = await mutation({ variables: { username, password } }); const data = isLogin ? result.data.login : result.data.register; + if (!data?.token) { + throw new Error("No token returned."); + } + localStorage.setItem("username", data.user.username); localStorage.setItem("token", data.token); setToken(data.token); @@ -54,7 +67,16 @@ const AuthForm: React.FC = () => { setPassword(""); } catch (error: any) { console.error("Auth error:", error.message); - alert("Authentication failed."); + + if (error.message.toLowerCase().includes("user")) { + setErrorMessage("User not found. Please register first."); + } else if (error.message.toLowerCase().includes("already exists")) { + setErrorMessage("User already exists. Try logging in instead."); + } else { + setErrorMessage("Something went wrong. Please try again."); + } + } finally { + setLoading(false); } }; @@ -62,7 +84,6 @@ const AuthForm: React.FC = () => {
- {/* Smaller Logo */} MileTracker full logo { style={{ borderRadius: "0.5rem" }} /> - {/* Login/Register Heading */}

{isLogin ? "Login" : "Register"}

- {/* Form */}
{ placeholder="Username" onChange={(e) => setUsername(e.target.value)} /> -
+ +
{ viewBox="0 0 24 24" stroke="currentColor" > - - + + ) : ( { viewBox="0 0 24 24" stroke="currentColor" > - - + + )}
+ + {loading && ( +

+ Logging in... please wait ⏳ +

+ )} + {errorMessage && ( +

+ {errorMessage} +

+ )} + - {/* Toggle Login/Register */}