'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 (
انضم إلينا وابحث عن منزل أحلامك
{errors.name}
)}{errors.email}
)}{errors.phone}
)}{errors.password}
)}{errors.confirmPassword}
)}