'use client'; import { useState } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; import { useRouter } from 'next/navigation'; import Link from 'next/link'; import toast, { Toaster } from 'react-hot-toast'; import { Mail, Key, Lock, CheckCircle, ArrowLeft, RefreshCw } from 'lucide-react'; import { requestForgetPasswordOtp, verifyForgetPasswordOtp } from '../utils/api'; export default function ForgotPasswordPage() { const router = useRouter(); const [step, setStep] = useState(1); const [email, setEmail] = useState(''); const [code, setCode] = useState(''); const [newPassword, setNewPassword] = useState(''); const [isLoading, setIsLoading] = useState(false); const handleRequestOtp = async (e) => { e.preventDefault(); if (!email.trim()) { toast.error('يرجى إدخال البريد الإلكتروني'); return; } setIsLoading(true); try { await requestForgetPasswordOtp(email); toast.success('تم إرسال رمز التحقق إلى بريدك الإلكتروني'); setStep(2); } catch (err) { toast.error(err?.message || 'فشل إرسال رمز التحقق'); } finally { setIsLoading(false); } }; const handleVerifyOtp = async (e) => { e.preventDefault(); if (!code.trim()) { toast.error('يرجى إدخال رمز التحقق'); return; } if (newPassword.length < 6) { toast.error('كلمة المرور الجديدة يجب أن تكون 6 أحرف على الأقل'); return; } setIsLoading(true); try { await verifyForgetPasswordOtp(email, code, newPassword); toast.success('تم إعادة تعيين كلمة المرور بنجاح'); setTimeout(() => router.push('/login'), 1200); } catch (err) { toast.error(err?.message || 'فشل التحقق من الرمز'); } finally { setIsLoading(false); } }; const inputClass = "w-full pr-12 pl-4 py-3 bg-white/10 border border-gray-300 rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent text-gray-900 placeholder-gray-400 transition-all"; return (