import React, { useState } from "react"; import { motion } from "framer-motion"; import axios from "axios"; import { useNavigate } from "react-router-dom"; import Cookies from "js-cookie"; interface LoginMenuProps { toggleLoginMenu: () => void; } export default function LoginMenu({ toggleLoginMenu }: LoginMenuProps): JSX.Element { const [isLoginMode, setIsLoginMode] = useState(true); const [login, setLogin] = useState(''); const [password, setPassword] = useState(''); const navigate = useNavigate(); const toggleMode = () => { setIsLoginMode(!isLoginMode); } const handleAuth = async (isRegistering: boolean) => { try { let response; if (isRegistering) { // Регистрация пользователя response = await axios.get(`http://127.0.0.1:8000/api/post/user?login=${encodeURIComponent(login)}&password=${encodeURIComponent(password)}`); } else { // Вход в систему response = await axios.get(`http://127.0.0.1:8000/api/get/user?login=${encodeURIComponent(login)}&password=${encodeURIComponent(password)}`); } if (response.status === 200) { // Создание cookie файла Cookies.set('user', login, { expires: 1 }); // Cookie на 1 день // Перенаправление на страницу профиля navigate('/profile'); toggleLoginMenu(); // Закрытие меню входа } } catch (error) { console.error('Ошибка при авторизации:', error); } } const handleSubmit = async (event: React.FormEvent) => { event.preventDefault(); await handleAuth(!isLoginMode); } return( <>
SusMarket ID

{isLoginMode ? 'Войдите с SusMarket ID' : 'Зарегистрируйтесь с SusMarket ID'}

setLogin(e.target.value)}/> setPassword(e.target.value)}/>

{isLoginMode ? 'У вас нет аккаунта? ' : 'У вас есть аккаунт? '} {isLoginMode ? 'Зарегистрироваться' : 'Войти'}

{isLoginMode ? 'Войти' : 'Зарегистрироваться'}
) }