From 5d89f540f39348fd5aa994efb09c9a11d9af784c Mon Sep 17 00:00:00 2001 From: Maaz Date: Sun, 15 Jun 2025 14:21:35 -0500 Subject: [PATCH] feat: enhance ReviewsSection with rating functionality and update reviews API --- src/ReviewsSection.tsx | 65 +++++++++++++++++++++++++++++++++++------- src/reviewsApi.ts | 1 + 2 files changed, 55 insertions(+), 11 deletions(-) diff --git a/src/ReviewsSection.tsx b/src/ReviewsSection.tsx index 3a96aed..a01dd02 100644 --- a/src/ReviewsSection.tsx +++ b/src/ReviewsSection.tsx @@ -1,6 +1,7 @@ import { useEffect, useState } from "react"; import { fetchReviews, addReview } from "./reviewsApi"; import type { Review } from "./reviewsApi"; +import { Star } from "lucide-react"; const ReviewsSection = ({ cardClasses, @@ -14,6 +15,8 @@ const ReviewsSection = ({ const [reviews, setReviews] = useState([]); const [name, setName] = useState(""); const [message, setMessage] = useState(""); + const [rating, setRating] = useState(5); + const [hoverRating, setHoverRating] = useState(0); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); const [success, setSuccess] = useState(""); @@ -28,10 +31,11 @@ const ReviewsSection = ({ setError(""); setSuccess(""); try { - await addReview({ name, message }); + await addReview({ name, message, rating }); setSuccess("Review submitted!"); setName(""); setMessage(""); + setRating(5); setReviews(await fetchReviews()); // Close modal immediately after successful submission setIsModalOpen(false); @@ -89,11 +93,9 @@ const ReviewsSection = ({ -

Share Your Review -

- + {" "}
setName(e.target.value)} required /> +
+ +
+ {[1, 2, 3, 4, 5].map((star) => ( + + ))} +
+