import { useState, useEffect } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Alert, AlertDescription } from "@/components/ui/alert"; import { Lock } from "lucide-react"; import { supabase } from '@/integrations/supabase/client'; import { toast } from "sonner"; const AuthReset = () => { const navigate = useNavigate(); const [searchParams] = useSearchParams(); const [novaSenha, setNovaSenha] = useState(''); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(''); const [tokenValido, setTokenValido] = useState(true); useEffect(() => { const accessToken = searchParams.get('access_token'); if (!accessToken) { setTokenValido(false); setError('Token de redefinição inválido ou ausente.'); } }, [searchParams]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); setError(''); if (!novaSenha) { setError('Por favor, digite uma nova senha.'); setIsLoading(false); return; } if (novaSenha.length < 6) { setError('A senha deve ter pelo menos 6 caracteres.'); setIsLoading(false); return; } try { const { error } = await supabase.auth.updateUser({ password: novaSenha }); if (error) { setError('Erro ao redefinir a senha: ' + error.message); } else { toast.success('Senha redefinida com sucesso!'); navigate('/auth'); } } catch (error) { setError('Erro inesperado. Tente novamente.'); } finally { setIsLoading(false); } }; if (!tokenValido) { return (