'use client'; import { useState, useEffect } from 'react'; import { motion } from 'framer-motion'; import { Star } from 'lucide-react'; import { getPropertyRatings } from '../../utils/ratings.js'; import toast, { Toaster } from 'react-hot-toast'; const RatingList = ({ propertyId, userId }) => { const [reviews, setReviews] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { const fetchReviews = async () => { if (!propertyId) { setLoading(false); return; } try { setLoading(true); const data = await getPropertyReviews(propertyId); setReviews(data || []); setError(null); } catch (err) { console.error('[RatingList] Failed to fetch reviews:', err); setError('فشل تحميل التقييمات'); setReviews([]); } finally { setLoading(false); } }; fetchReviews(); }, [propertyId]); if (loading) { return ( جاري تحميل التقييمات... ); } if (error) { return ( {error} ); } if (reviews.length === 0) { return ( لا توجد تقييمات حتى الآن. كن أول من يقيم هذا العقار! ); } // Calculate average rating const averageRating = reviews.reduce((sum, review) => sum + review.rating, 0) / reviews.length; return ( {/* Header with average rating */} تقييمات المستأجرين {reviews.length} تقييمات {Array.from({ length: 5 }).map((_, index) => ( ))} {averageRating % 1 !== 0 && ( )} {averageRating.toFixed(1)} {/* Reviews list */} {reviews.map((review, index) => ( {review.userName || 'مستأجر'} {Array.from({ length: 5 }).map((_, starIndex) => ( ))} ({review.rating}/5) {review.createdAt ? new Date(review.createdAt).toLocaleDateString('ar-SA') : ''} {review.comment && ( {review.comment} )} ))} ); }; export default RatingList;
جاري تحميل التقييمات...
{error}
لا توجد تقييمات حتى الآن. كن أول من يقيم هذا العقار!
{reviews.length} تقييمات
{review.comment}