import React, { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { supabase, isSupabaseConfigured } from '../../lib/supabaseClient'; import { Button } from '../../components/Button'; import { Lock, AlertCircle, CheckCircle, RefreshCw, Save } from 'lucide-react'; export const ResetPassword: React.FC = () => { const navigate = useNavigate(); const [password, setPassword] = useState(''); const [confirmPassword, setConfirmPassword] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [success, setSuccess] = useState(false); useEffect(() => { // Supabase sets the session automatically when clicking the recovery link const checkSession = async () => { if (isSupabaseConfigured) { const { data } = await supabase.auth.getSession(); if (!data.session) { setError("A link lejárt vagy érvénytelen. Kérjük, igényeljen újat!"); } } }; checkSession(); }, []); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(null); if (password.length < 6) { setError('A jelszónak legalább 6 karakternek kell lennie.'); setLoading(false); return; } if (password !== confirmPassword) { setError('A jelszavak nem egyeznek.'); setLoading(false); return; } try { if (!isSupabaseConfigured) { await new Promise(resolve => setTimeout(resolve, 1000)); setSuccess(true); return; } const { error } = await supabase.auth.updateUser({ password: password }); if (error) { setError(error.message); } else { setSuccess(true); } } catch (err: any) { setError('Váratlan hiba történt.'); } finally { setLoading(false); } }; return (

Új jelszó megadása

Kérjük, adja meg az új biztonságos jelszavát.

{success ? (

Jelszó sikeresen módosítva!

Most már bejelentkezhet az új jelszavával.

) : (
{error && (

{error}

)}
setPassword(e.target.value)} className="appearance-none block w-full pl-10 pr-4 py-3 border border-gray-200 rounded-xl shadow-sm focus:outline-none focus:ring-4 focus:ring-primary/10 focus:border-primary sm:text-sm bg-white text-gray-900 font-medium" />
setConfirmPassword(e.target.value)} className="appearance-none block w-full pl-10 pr-4 py-3 border border-gray-200 rounded-xl shadow-sm focus:outline-none focus:ring-4 focus:ring-primary/10 focus:border-primary sm:text-sm bg-white text-gray-900 font-medium" />
)}
); };