diff --git a/frontend-next/src/app/globals.css b/frontend-next/src/app/globals.css index 1679e2d..308cb63 100644 --- a/frontend-next/src/app/globals.css +++ b/frontend-next/src/app/globals.css @@ -29,3 +29,9 @@ input { margin: 5px; } +input.err { + border: 2px solid red; + border-radius: 4px; + padding: 10px 10px; + margin: 5px; +} diff --git a/frontend-next/src/app/login/page.js b/frontend-next/src/app/login/page.js index c3026a3..662b559 100644 --- a/frontend-next/src/app/login/page.js +++ b/frontend-next/src/app/login/page.js @@ -1,39 +1,40 @@ "use client"; -import { useForm } from "react-hook-form"; +import { useForm, Form } from "react-hook-form"; import { useRouter } from "next/navigation"; import "../globals.css" function Login() { var router = useRouter(); - var { register, handleSubmit } = useForm(); - async function Login(data) { - const res = await fetch("/api/login", { - method: "POST", - body: JSON.stringify(data ? data : {}), - }); - - if (res.ok) { - router.push("/app"); - } - } - + //var { register, handleSubmit } = useForm(); + var { register, control, setError, formState: { errors } } = useForm() return (
- + Chat with friends! -
-

Login

-
-
-
-
- Don't have an account? Sign Up -
+
+

Login

+ {(errors.email && errors.password) &&
Invalid Email or Password.
} +
{ + router.push("/app"); + }} + onError={() => { + const formError = { type: "server", message: "Username or Password Incorrect" } + // set same error in both: + setError('password', formError) + setError('email', formError) + }} + control={control} + > +
+
+ +
Need an account? Sign Up
+
diff --git a/frontend-next/src/app/page.js b/frontend-next/src/app/page.js index 7acc6ba..5e1f126 100644 --- a/frontend-next/src/app/page.js +++ b/frontend-next/src/app/page.js @@ -2,9 +2,6 @@ function Home() { return (
-
- -
diff --git a/frontend-next/src/app/register/page.js b/frontend-next/src/app/register/page.js index a2aa40b..027eba0 100644 --- a/frontend-next/src/app/register/page.js +++ b/frontend-next/src/app/register/page.js @@ -1,39 +1,34 @@ "use client"; import { useRouter } from "next/navigation"; -import { useForm } from "react-hook-form"; +import { useForm, Form } from "react-hook-form"; import "../globals.css" function Register() { - var {register, handleSubmit } = useForm() + var { register, control, setError, formState: { errors } } = useForm() var router = useRouter(); - - async function RegisterWithEmail(data) { - const res = await fetch("/api/register", { - method: "POST", - body: JSON.stringify(data ? data : {}), - }); - if (res.ok) { - router.push("/login"); - } - } - + var emailRegex = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/ return (
- + Chat with friends! -
-

Register

-
-
-
+
+

Register

+ { + router.push("/app"); + }} + control={control} + > +
+

Have an account? Log In - +