diff --git a/client/src/components/Item/Description/Description.css b/client/src/components/Item/Description/Description.css index d7143adf..f048ac8a 100644 --- a/client/src/components/Item/Description/Description.css +++ b/client/src/components/Item/Description/Description.css @@ -701,4 +701,49 @@ .MuiAccordionDetails-root::-webkit-scrollbar-thumb:hover { background: #a8a8a8; +} +.review-form { + background: var(--bg-secondary); + padding: 20px; + border-radius: 8px; + margin-bottom: 20px; + border: 1px solid var(--border-color); +} + +.review-form h5 { + margin-bottom: 15px; + color: var(--text-primary); +} + +.rating-input { + margin-bottom: 15px; +} + +.rating-input label { + display: block; + margin-bottom: 5px; + color: var(--text-primary); + font-weight: 500; +} + +.comment-input textarea { + width: 100%; + padding: 12px; + border: 1px solid var(--border-color); + border-radius: 4px; + background: var(--bg-primary); + color: var(--text-primary); + font-family: inherit; + resize: vertical; + margin-bottom: 15px; +} + +.comment-input textarea:focus { + outline: none; + border-color: var(--primary-color); +} + +.submit-review-btn { + background: #ff8008 !important; + color: white !important; } \ No newline at end of file diff --git a/client/src/components/Item/Description/Description.js b/client/src/components/Item/Description/Description.js index 2d94acb9..5b704144 100644 --- a/client/src/components/Item/Description/Description.js +++ b/client/src/components/Item/Description/Description.js @@ -7,6 +7,67 @@ import CheckCircleIcon from "@mui/icons-material/CheckCircle"; import { CartItemsContext } from "../../../Context/CartItemsContext"; import { WishItemsContext } from "../../../Context/WishItemsContext"; +/* 🔹 Review Form Component */ +const ReviewForm = ({ item, onReviewAdded }) => { + const [rating, setRating] = useState(0); + const [comment, setComment] = useState(""); + const [isSubmitting, setIsSubmitting] = useState(false); + + const handleSubmit = async (e) => { + e.preventDefault(); + if (!rating || !comment.trim()) return; + + setIsSubmitting(true); + const newReview = { + user: localStorage.getItem('userName') || 'Anonymous', + rating, + comment: comment.trim(), + date: new Date().toISOString() + }; + + // Add to local state immediately + onReviewAdded(newReview); + + // Reset form + setRating(0); + setComment(""); + setIsSubmitting(false); + }; + + return ( +
No reviews yet.
+No reviews yet. Be the first to review!
)} )} diff --git a/server/server.js b/server/server.js index 22116336..1de7c554 100644 --- a/server/server.js +++ b/server/server.js @@ -2,7 +2,7 @@ const express = require("express"); const app = express(); const path = require("path"); const cors = require("cors"); -require('dotenv').config({ path: path.resolve(__dirname, '.env.local') }); +require('dotenv').config(); const connectDB = require("./config/db"); const PORT = process.env.PORT || 3000;