import { useEffect, useState } from 'react' import styles from './Reviews.module.css' interface Review { id: number customer_name: string rating: number comment: string verified: boolean } function Reviews() { const [reviews, setReviews] = useState([]) const [loading, setLoading] = useState(true) const [currentIndex, setCurrentIndex] = useState(0) useEffect(() => { fetch('http://localhost:8000/api/reviews/latest/') .then(res => res.json()) .then(data => { setReviews(data) setLoading(false) }) .catch(err => { console.error('Error fetching reviews:', err) setLoading(false) }) }, []) const nextReview = () => { setCurrentIndex((prev) => prev + 3 >= reviews.length ? 0 : prev + 1 ) } const prevReview = () => { setCurrentIndex((prev) => prev - 1 < 0 ? Math.max(0, reviews.length - 3) : prev - 1 ) } const renderStars = (rating: number) => { return Array.from({ length: 5 }, (_, i) => ( ★ )) } if (loading) return
Loading reviews...
if (reviews.length === 0) return
No reviews yet
return (

OUR HAPPY CUSTOMERS

{reviews.slice(currentIndex, currentIndex + 3).map((review) => (
{renderStars(review.rating)}

{review.customer_name}

{review.verified && ✓}

"{review.comment}"

))}
) } export default Reviews