import React, { useState, useEffect } from 'react'; import { useNavigate, useLocation, Link } from 'react-router-dom'; import { Hexagon, Lock, ArrowRight, Loader2, CheckCircle2, AlertCircle } from 'lucide-react'; import { resetPassword } from '../services/dataService'; export const ResetPassword: React.FC = () => { const navigate = useNavigate(); const location = useLocation(); const query = new URLSearchParams(location.search); const token = query.get('token') || ''; const [password, setPassword] = useState(''); const [confirmPassword, setConfirmPassword] = useState(''); const [isLoading, setIsLoading] = useState(false); const [isSuccess, setIsSuccess] = useState(false); const [error, setError] = useState(''); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (password !== confirmPassword) { setError('As senhas não coincidem.'); return; } setIsLoading(true); setError(''); try { await resetPassword(token, password); setIsSuccess(true); setTimeout(() => navigate('/login'), 3000); } catch (err: any) { setError(err.message || 'Erro ao redefinir senha. O link pode estar expirado.'); } finally { setIsLoading(false); } }; return (
Fasto.

Crie uma nova senha

{isSuccess ? (

Senha alterada!

Sua senha foi redefinida com sucesso. Redirecionando para o login...

) : (
{error && (
{error}
)}
setPassword(e.target.value)} className="block w-full pl-10 pr-3 py-2 border border-zinc-300 dark:border-dark-border rounded-lg bg-white dark:bg-dark-input text-zinc-900 dark:text-zinc-100 placeholder-zinc-400 dark:placeholder-zinc-600 focus:ring-brand-yellow/20 focus:border-brand-yellow sm:text-sm transition-all" placeholder="••••••••" />
setConfirmPassword(e.target.value)} className="block w-full pl-10 pr-3 py-2 border border-zinc-300 dark:border-dark-border rounded-lg bg-white dark:bg-dark-input text-zinc-900 dark:text-zinc-100 placeholder-zinc-400 dark:placeholder-zinc-600 focus:ring-brand-yellow/20 focus:border-brand-yellow sm:text-sm transition-all" placeholder="••••••••" />
)}
); };