diff --git a/apps/web/app/auth/page.tsx b/apps/web/app/auth/page.tsx index 6aeb4b41..124fdcac 100644 --- a/apps/web/app/auth/page.tsx +++ b/apps/web/app/auth/page.tsx @@ -4,12 +4,7 @@ import { useState, FormEvent } from "react"; import Image from "next/image"; import { useRouter } from "next/navigation"; import { Button } from "@/components/ui/button"; - -function validateEmail(email: string): boolean { - const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; - return emailRegex.test(email); -} - +import { authSchema } from "@/lib/validation"; export default function AuthPage() { const [email, setEmail] = useState(""); const [error, setError] = useState(""); @@ -19,13 +14,9 @@ export default function AuthPage() { const handleSubmit = async (e: FormEvent) => { e.preventDefault(); - if (!email) { - setError("Email is required"); - return; - } - - if (!validateEmail(email)) { - setError("Enter a valid email"); + const result = authSchema.safeParse({ email }); + if (!result.success) { + setError(result.error.issues[0].message); return; } @@ -105,10 +96,10 @@ export default function AuthPage() { type="email" value={email} onChange={(e) => setEmail(e.target.value)} - className="w-full bg-white border-2 border-black rounded-full px-4 py-2 mb-4 outline-none" +className="w-full bg-white border-2 border-black rounded-full px-4 py-2 mb-4 outline-none" /> - {error &&
{error}
} + {error &&{error}
}