import { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { authService } from '@/services/authService'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { toast } from '@/components/ui/use-toast'; import { Eye, EyeOff, Mail, LogIn, Settings } from "lucide-react"; import { useLanguage } from '@/contexts/LanguageContext'; import { useTheme } from '@/contexts/ThemeContext'; import { API_ENDPOINTS, getCurrentEndpoint, setApiEndpoint } from '@/lib/pocketbase'; import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; import { Label } from '@/components/ui/label'; const Login = () => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [loading, setLoading] = useState(false); const [showPassword, setShowPassword] = useState(false); const [currentEndpoint, setCurrentEndpoint] = useState(getCurrentEndpoint()); const navigate = useNavigate(); const { t } = useLanguage(); const { theme } = useTheme(); // Add responsiveness check const [isMobile, setIsMobile] = useState(false); useEffect(() => { const checkScreenSize = () => { setIsMobile(window.innerWidth < 640); }; checkScreenSize(); window.addEventListener('resize', checkScreenSize); return () => { window.removeEventListener('resize', checkScreenSize); }; }, []); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { await authService.login({ email, password }); toast({ title: t("loginSuccessful"), description: t("loginSuccessMessage"), }); navigate('/dashboard'); } catch (error) { console.error("Login error details:", error); toast({ variant: "destructive", title: t("loginFailed"), description: error instanceof Error ? error.message : `${t("authenticationFailed")}. Server: ${currentEndpoint}`, }); } finally { setLoading(false); } }; const handleEndpointChange = (value: string) => { setCurrentEndpoint(value); setApiEndpoint(value); }; const togglePasswordVisibility = () => { setShowPassword(!showPassword); }; return (