'use client'; import { useState } from 'react'; import { motion } from 'framer-motion'; import { useRouter } from 'next/navigation'; import Link from 'next/link'; import { User, Mail, Phone, Lock, Eye, EyeOff, CheckCircle, XCircle, ArrowLeft, Home, Loader2 } from 'lucide-react'; import toast, { Toaster } from 'react-hot-toast'; export default function TenantRegisterPage() { const router = useRouter(); const [showPassword, setShowPassword] = useState(false); const [showConfirmPassword, setShowConfirmPassword] = useState(false); const [isLoading, setIsLoading] = useState(false); const [formData, setFormData] = useState({ name: '', email: '', phone: '', password: '', confirmPassword: '', agreeTerms: false }); const [errors, setErrors] = useState({}); const validateEmail = (email) => { const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return re.test(email); }; const validatePhone = (phone) => { const re = /^(09|05)[0-9]{8}$/; return re.test(phone); }; const validateForm = () => { const newErrors = {}; if (!formData.name) { newErrors.name = 'الاسم الكامل مطلوب'; } else if (formData.name.length < 3) { newErrors.name = 'الاسم يجب أن يكون 3 أحرف على الأقل'; } if (!formData.email) { newErrors.email = 'البريد الإلكتروني مطلوب'; } else if (!validateEmail(formData.email)) { newErrors.email = 'البريد الإلكتروني غير صالح'; } if (!formData.phone) { newErrors.phone = 'رقم الهاتف مطلوب'; } else if (!validatePhone(formData.phone)) { newErrors.phone = 'رقم الهاتف غير صالح (يجب أن يبدأ 09 أو 05)'; } if (!formData.password) { newErrors.password = 'كلمة المرور مطلوبة'; } else if (formData.password.length < 6) { newErrors.password = 'كلمة المرور يجب أن تكون 6 أحرف على الأقل'; } if (formData.password !== formData.confirmPassword) { newErrors.confirmPassword = 'كلمات المرور غير متطابقة'; } setErrors(newErrors); return Object.keys(newErrors).length === 0; }; const handleSubmit = async (e) => { e.preventDefault(); if (!validateForm()) { toast.error('يرجى تصحيح الأخطاء في النموذج'); return; } if (!formData.agreeTerms) { toast.error('يجب الموافقة على الشروط والأحكام'); return; } setIsLoading(true); setTimeout(() => { setIsLoading(false); toast.success('تم إنشاء الحساب بنجاح!', { style: { background: '#dcfce7', color: '#166534' }, duration: 3000 }); localStorage.setItem('user', JSON.stringify({ name: formData.name, email: formData.email, role: 'tenant', avatar: formData.name.charAt(0).toUpperCase() })); setTimeout(() => { router.push('/'); }, 1500); }, 2000); }; const fadeInUp = { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.5 } }; const staggerContainer = { animate: { transition: { staggerChildren: 0.1 } } }; return (
{[...Array(20)].map((_, i) => ( ))}
العودة

إنشاء حساب مستأجر

انضم إلينا وابحث عن منزل أحلامك

{ setFormData({...formData, name: e.target.value}); setErrors({...errors, name: null}); }} className={`w-full pr-12 pl-4 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent text-white placeholder-gray-500 transition-all ${ errors.name ? 'border-red-500' : 'border-gray-700' }`} placeholder="أدخل اسمك الكامل" />
{errors.name && (

{errors.name}

)}
{ setFormData({...formData, email: e.target.value}); setErrors({...errors, email: null}); }} className={`w-full pr-12 pl-4 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent text-white placeholder-gray-500 transition-all ${ errors.email ? 'border-red-500' : 'border-gray-700' }`} placeholder="أدخل بريدك الإلكتروني" />
{errors.email && (

{errors.email}

)}
{ setFormData({...formData, phone: e.target.value}); setErrors({...errors, phone: null}); }} className={`w-full pr-12 pl-4 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent text-white placeholder-gray-500 transition-all ${ errors.phone ? 'border-red-500' : 'border-gray-700' }`} placeholder="أدخل رقم هاتفك" />
{errors.phone && (

{errors.phone}

)}
{ setFormData({...formData, password: e.target.value}); setErrors({...errors, password: null}); }} className={`w-full pr-12 pl-12 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent text-white placeholder-gray-500 transition-all ${ errors.password ? 'border-red-500' : 'border-gray-700' }`} placeholder="أدخل كلمة المرور" />
{errors.password && (

{errors.password}

)}
{ setFormData({...formData, confirmPassword: e.target.value}); setErrors({...errors, confirmPassword: null}); }} className={`w-full pr-12 pl-12 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent text-white placeholder-gray-500 transition-all ${ errors.confirmPassword ? 'border-red-500' : 'border-gray-700' }`} placeholder="أعد إدخال كلمة المرور" /> {formData.confirmPassword && (
{formData.password === formData.confirmPassword ? ( ) : ( )}
)}
{errors.confirmPassword && (

{errors.confirmPassword}

)}
setFormData({...formData, agreeTerms: e.target.checked})} className="w-4 h-4 rounded border-gray-600 bg-white/5 text-blue-500 focus:ring-blue-500 focus:ring-offset-0" required /> {isLoading ? (
جاري إنشاء الحساب...
) : ( 'إنشاء حساب' )}
لديك حساب بالفعل؟{' '} تسجيل الدخول
); }