import React, { useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { supabase, isSupabaseConfigured } from '../../lib/supabaseClient'; import { Button } from '../../components/Button'; import { useAuth } from '../../context/AuthContext'; import { LogIn, AlertCircle, ArrowLeft, RefreshCw, Mail, ShieldCheck } from 'lucide-react'; export const Login: React.FC = () => { const navigate = useNavigate(); const { refreshDemoUser } = useAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [needsConfirmation, setNeedsConfirmation] = useState(false); const [resendLoading, setResendLoading] = useState(false); const [resendSuccess, setResendSuccess] = useState(false); const handleLogin = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(null); setNeedsConfirmation(false); try { if (!isSupabaseConfigured) { await new Promise(resolve => setTimeout(resolve, 1000)); const demoUser = { user: { id: 'demo-user-123', email: email, user_metadata: { date_of_birth: '1990-01-01' } }, access_token: 'demo-token', }; localStorage.setItem('demo_user_session', JSON.stringify(demoUser)); refreshDemoUser(); navigate('/dashboard'); return; } const { error } = await supabase.auth.signInWithPassword({ email, password, }); if (error) { console.error('Login error:', error); if (error.message.includes('Invalid login credentials')) { setError('Helytelen e-mail cím vagy jelszó. Kérjük, győződjön meg róla, hogy megerősítette az e-mail címét!'); setNeedsConfirmation(true); } else if (error.message.includes('Email not confirmed')) { setError('Az e-mail cím még nincs megerősítve.'); setNeedsConfirmation(true); } else { setError('Hiba történt a bejelentkezés során: ' + error.message); } } else { navigate('/dashboard'); } } catch (err: any) { setError('Váratlan hiba történt.'); } finally { setLoading(false); } }; const handleResendConfirmation = async () => { if (!email) { setError('Kérjük, először adja meg az e-mail címét!'); return; } setResendLoading(true); setResendSuccess(false); setError(null); try { const redirectUrl = `${window.location.origin}/#/auth/login`; const { error } = await supabase.auth.resend({ type: 'signup', email: email, options: { emailRedirectTo: redirectUrl } }); if (error) { setError('Hiba az újraküldéskor: ' + error.message); } else { setResendSuccess(true); } } catch (err: any) { setError('Hiba történt.'); } finally { setResendLoading(false); } }; return (

Bejelentkezés

Jelentkezzen be fiókjába a folytatáshoz.

{error && (

{error}

{needsConfirmation && (
)}
)} {resendSuccess && (

A megerősítő e-mailt újraküldtük!

)}
setEmail(e.target.value)} className="appearance-none block w-full px-4 py-3 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-primary focus:border-primary sm:text-sm bg-white text-gray-900" />
Elfelejtette?
setPassword(e.target.value)} className="appearance-none block w-full px-4 py-3 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-primary focus:border-primary sm:text-sm bg-white text-gray-900" />
Nincs még fiókod?
Regisztrálj ingyenesen
Vissza a főoldalra
); }