'use client'; import { useState, useEffect } from 'react'; import { motion } from 'framer-motion'; import { Star, User, Calendar, MessageSquare, ThumbsUp, Loader2 } from 'lucide-react'; import toast, { Toaster } from 'react-hot-toast'; import { getCustomerRatings } from '../utils/ratings'; import AuthService from '../services/AuthService'; import StarRating from '../components/ratings/StarRating'; const RATING_FIELDS = [ { key: 'cleanRating', label: 'النظافة' }, { key: 'servicesRating', label: 'الخدمات' }, { key: 'ownerBehaviorRating', label: 'سلوك المالك' }, { key: 'experienceRating', label: 'التجربة العامة' }, ]; function calcOverall(ratings) { if (!ratings || ratings.length === 0) return 0; const total = ratings.reduce((sum, r) => { const avg = RATING_FIELDS.reduce((s, f) => s + (Number(r[f.key]) || 0), 0) / RATING_FIELDS.length; return sum + avg; }, 0); return total / ratings.length; } function RatingCard({ rating }) { const dateStr = rating.createdAt ? new Date(rating.createdAt).toLocaleDateString('ar') : null; return (

{rating.ownerName || 'مالك العقار'}

{dateStr && (
{dateStr}
)}
{RATING_FIELDS.map(({ key, label }) => (
{label}
{Number(rating[key]) || 0}
))}
{rating.comment && (

{rating.comment}

)}
); } export default function MyRatesPage() { const [ratings, setRatings] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const user = AuthService.getUser(); if (!user || !user.id) { toast.error('يرجى تسجيل الدخول أولاً'); setLoading(false); return; } loadRatings(user.id); }, []); async function loadRatings(userId) { try { const data = await getCustomerRatings(userId); const list = Array.isArray(data) ? data : []; setRatings(list); } catch (err) { console.error(err); toast.error('فشل تحميل التقييمات'); setRatings([]); } finally { setLoading(false); } } if (loading) { return (
); } const overall = calcOverall(ratings); return (

تقييماتي

التقييمات التي تلقيتها من مالكي العقارات

{ratings.length > 0 && (
{overall.toFixed(1)}
المعدل العام
بناءً على {ratings.length} {ratings.length === 1 ? 'تقييم' : 'تقييمات'}
)} {ratings.length === 0 ? (

لا توجد تقييمات

لم تقم باستئجار أي عقار بعد لتتلقى تقييمات

) : (
{ratings.map((r, i) => ( ))}
)}
); }