From 004980a2cfe54d4f81ecd80f610454b18e0f0173 Mon Sep 17 00:00:00 2001 From: degradin Date: Wed, 7 May 2025 13:36:31 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86?= =?UTF-8?q?=D0=B0=20=D0=B0=D0=B2=D1=82=D0=BE=D1=80=D0=B8=D0=B7=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Создана страница-модуль авторизации --- src/pages/LoginPage.jsx | 61 ++++++++++++----------------------------- 1 file changed, 18 insertions(+), 43 deletions(-) diff --git a/src/pages/LoginPage.jsx b/src/pages/LoginPage.jsx index 44d350e..9042031 100644 --- a/src/pages/LoginPage.jsx +++ b/src/pages/LoginPage.jsx @@ -1,50 +1,25 @@ -import { useState } from "react"; -import { Link, useNavigate } from "react-router-dom"; -import { useAuth } from "../contexts/AuthContext"; +import React, { useState } from 'react'; +import { useNavigate, Link } from 'react-router-dom'; +import { useAuth } from '../contexts/AuthContext'; -function LoginPage() { - const [formData, setFormData] = useState({ - email: "", - password: "", - }); - const [error, setError] = useState(""); +const LoginPage = () => { + const [email, setEmail] = useState(''); + const [password, setPassword] = useState(''); const [loading, setLoading] = useState(false); - - const { login } = useAuth(); + const [error, setError] = useState(null); const navigate = useNavigate(); - - const handleChange = (e) => { - const { name, value } = e.target; - setFormData((prev) => ({ - ...prev, - [name]: value, - })); - }; + const { signIn } = useAuth(); const handleSubmit = async (e) => { e.preventDefault(); - - if (!formData.email || !formData.password) { - setError("Заполните все поля"); - return; - } - try { - setError(""); setLoading(true); - - const { error } = await login(formData.email, formData.password); - - if (error) throw error; - - navigate("/", { replace: true }); + setError(null); + await signIn(email, password); + navigate('/'); } catch (err) { - console.error("Login error:", err); - setError( - err.message === "Invalid login credentials" - ? "Неверный email или пароль" - : "Ошибка при входе. Попробуйте позже" - ); + console.error('Login error:', err); + setError(err.message || 'Ошибка входа'); } finally { setLoading(false); } @@ -81,8 +56,8 @@ function LoginPage() { type="email" id="email" name="email" - value={formData.email} - onChange={handleChange} + value={email} + onChange={(e) => setEmail(e.target.value)} className="input w-full" placeholder="your@email.com" required @@ -109,8 +84,8 @@ function LoginPage() { type="password" id="password" name="password" - value={formData.password} - onChange={handleChange} + value={password} + onChange={(e) => setPassword(e.target.value)} className="input w-full" placeholder="••••••••" required @@ -166,6 +141,6 @@ function LoginPage() { ); -} +}; export default LoginPage;