diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index eef6e31..43aa54b 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -1,6 +1,41 @@ +"use client"; + import Link from "next/link"; +import { FormEvent, useEffect, useState } from "react"; +import { useRouter } from "next/navigation"; +import { isAuthenticated, loginUser, seedDemoUser } from "../../lib/auth"; export default function Login() { + const router = useRouter(); + const [login, setLogin] = useState(""); + const [password, setPassword] = useState(""); + const [error, setError] = useState(""); + + useEffect(() => { + seedDemoUser(); + if (isAuthenticated()) { + router.replace("/"); + } + }, [router]); + + const handleSubmit = (event: FormEvent) => { + event.preventDefault(); + setError(""); + + if (!login.trim() || !password.trim()) { + setError("Заполните логин и пароль"); + return; + } + + const result = loginUser(login, password); + if (!result.ok) { + setError(result.message); + return; + } + + router.push("/"); + }; + return (
@@ -12,7 +47,7 @@ export default function Login() { Используйте телефон или почту, чтобы продолжить.

-
+
+ {error ?

{error}

: null}