import React, { useState } from 'react'; import { useNavigate, Link } from 'react-router-dom'; import { useAuthStore } from '../store/authStore'; import { Eye, EyeOff, ArrowRight } from 'lucide-react'; export default function Login() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [emailError, setEmailError] = useState(''); const [showPassword, setShowPassword] = useState(false); const { signIn, isLoading } = useAuthStore(); const navigate = useNavigate(); const validateEmail = (email) => { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return emailRegex.test(email); }; const handleLogin = async (e) => { e.preventDefault(); if (!email || !password) { alert('Proszę wprowadzić email i hasło.'); return; } if (!validateEmail(email)) { setEmailError('Nieprawidłowy format adresu email'); return; } try { await signIn(email, password); navigate('/'); } catch (e) { alert("Błąd logowania: " + (e.response?.data?.message || e.message)); } }; if (isLoading) { return (
); } return (

Logowanie

Nie masz jeszcze konta? Załóż je tutaj!
{emailError &&

{emailError}

} { setEmail(e.target.value); if (e.target.value && !validateEmail(e.target.value)) { setEmailError('Nieprawidłowy format adresu email'); } else { setEmailError(''); } }} className={`w-full px-4 py-3 rounded-lg border ${emailError ? 'border-red-500' : 'border-gray-300'} focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary transition-all`} required />
setPassword(e.target.value)} className="w-full px-4 py-3 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary transition-all" required />
lub
); }