"use client" import React, { useState } from "react" import { useHistory } from "react-router-dom" import manImage from "../assets/man.svg" // Reverted to original import import { connect } from '../confconnect'; import axios from 'axios'; export default function LoginPage() { const history = useHistory() // Стейты для формы входа const [email, setEmail] = useState("") const [password, setPassword] = useState("") const [showPassword, setShowPassword] = useState(false) const [rememberMe, setRememberMe] = useState(false) const [activeTab, setActiveTab] = useState<"login" | "register">("login") // Состояние и обработчики регистрационной формы / локальное состояние const [registerFormData, setRegisterFormData] = useState({ email: "", // Removed firstName, lastName password: "", confirmPassword: "", name: "", }) const [showRegisterPassword, setShowRegisterPassword] = useState(false) const [showConfirmRegisterPassword, setShowConfirmRegisterPassword] = useState(false) // Обработчик входа const handleLogin = async (e: React.FormEvent) => { e.preventDefault(); console.log('Перед отправкой:', { email, password }); try { const response = await connect.post('/auth/api/login', { email, password, rememberMe, }); if (response.status === 200 || response.status === 204 || response.status === 201) { // Предположим, что сервер возвращает данные с токеном const data = response.data; // Сохраняем данные в localStorage localStorage.setItem('authToken', data.token); localStorage.setItem('userEmail', data.user_email); localStorage.setItem('userId', String(data.user_id)); // Можно сохранить флаг входа localStorage.setItem('isLoggedIn', 'true'); // Перенаправляем пользователя history.push("/home"); } else { console.log('Ответ:', response); } } catch (error) { if (axios.isAxiosError(error)) { console.error('Ошибка при входе:', error.message); if (error.response) { console.error('Статус:', error.response.status); console.error('Данные ответа:', error.response.data); if (error.response.status === 400) { alert('Неверные данные для входа'); } } } else { console.error('Неожиданная ошибка:', error); } alert('Ошибка при входе'); } }; // Обработчик регистрации const handleRegisterSubmit = async (e: React.FormEvent) => { e.preventDefault() if (registerFormData.password !== registerFormData.confirmPassword) { alert("Пароли не совпадают") return } try { const response = await connect.post('/auth/api/register', { email: registerFormData.email, name: registerFormData.email, password: registerFormData.password, }) // Предположим, что ответ содержит объект с токеном и другой информацией const data = response.data // Сохраняем нужные данные в localStorage localStorage.setItem('authToken', data.token) localStorage.setItem('userEmail', data.user_email) localStorage.setItem('userId', String(data.user_id)) localStorage.setItem('userName', data.user_name) console.log('Данные сохранены в localStorage') alert('Вы успешно зерегистрировались!') console.log('Отправляемые данные:', { email, password }); // После этого можно перейти или показать сообщение history.push("/home") } catch (error) { console.error('Ошибка при регистрации:', error) alert('Ошибка при регистрации') } } const handleRegisterInputChange = (e: React.ChangeEvent) => { setRegisterFormData({ ...registerFormData, [e.target.name]: e.target.value, }) } return (
{/* Header Section */}
man

Реабилитация

Восстановление после травмы

{/* Login/Register Form Container */}
{/* Tab Buttons Container */}
{activeTab === "login" && (

Введите логин и пароль

{/* Email Input */}
setEmail(e.target.value)} className="w-full bg-white rounded-xl px-4 py-3 text-gray-800 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-[#2BACBE] focus:border-transparent transition-all shadow-sm" placeholder="Электронная почта" required />
{/* Password Input */}
setPassword(e.target.value)} className="w-full bg-white rounded-xl px-4 py-3 text-gray-800 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-[#2BACBE] focus:border-transparent transition-all shadow-sm" placeholder="Пароль" required />
{/* Remember Me & Forgot Password */}
{/* Login Button */}
)} {/* Регистрация */} {activeTab === "register" && (

Создайте новый аккаунт

{/* Email */}
{/* Password */}
{/* Confirm Password */}
{/* Register Button */}
)} {/* Login/Register Link (always visible) */}

{activeTab === "login" ? "Нет аккаунта?" : "Уже есть аккаунт?"}{" "}

) }