import { TextField, Box, Button, Typography, Alert, CircularProgress, FormControlLabel, Checkbox, Paper, } from "@mui/material"; import { authStore, userStore } from "@shared"; import { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { toast } from "react-toastify"; export const LoginPage = () => { const navigate = useNavigate(); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [rememberMe, setRememberMe] = useState(false); const [error, setError] = useState(null); const [isLoading, setIsLoading] = useState(false); const { login } = authStore; const { getUsers } = userStore; useEffect(() => { const savedEmail = localStorage.getItem("rememberedEmail"); const savedPassword = localStorage.getItem("rememberedPassword"); if (savedEmail && savedPassword) { setEmail(savedEmail); setPassword(savedPassword); setRememberMe(true); } }, []); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); setIsLoading(true); try { await login(email, password); if (rememberMe) { localStorage.setItem("rememberedEmail", email); localStorage.setItem("rememberedPassword", password); } else { localStorage.removeItem("rememberedEmail"); localStorage.removeItem("rememberedPassword"); } navigate("/map"); try { await getUsers(); } catch (err) { console.error(err); } toast.success("Вход в систему выполнен успешно"); } catch (err) { setError( err instanceof Error ? err.message : "Ошибка при входе в систему" ); toast.error( err instanceof Error ? err.message : "Ошибка при входе в систему" ); } finally { setIsLoading(false); } }; return ( Вход в систему {error && ( {error} )} setEmail(e.target.value)} disabled={isLoading} error={!!error} /> setPassword(e.target.value)} disabled={isLoading} error={!!error} /> setRememberMe(e.target.checked)} disabled={isLoading} /> } label="Запомнить пароль" /> ); };