From d99eb3b2f3c37401b031c22332dd9174bf454b0c Mon Sep 17 00:00:00 2001
From: Tiago Brito <69848652+britotiago03@users.noreply.github.com>
Date: Fri, 10 May 2024 05:12:34 +0200
Subject: [PATCH] Implemented ProductDetails.js

---
 frontend/src/components/ProductDetails.js | 43 +++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 frontend/src/components/ProductDetails.js

diff --git a/frontend/src/components/ProductDetails.js b/frontend/src/components/ProductDetails.js
new file mode 100644
index 0000000..8577871
--- /dev/null
+++ b/frontend/src/components/ProductDetails.js
@@ -0,0 +1,43 @@
+import React, { useState, useEffect } from 'react';
+import { useParams } from 'react-router-dom';
+import { useCart } from '../contexts/CartContext';
+import '../css/ProductDetails.css'; // Make sure to import the CSS file
+
+function ProductDetails() {
+    const { productId } = useParams();
+    const { addToCart } = useCart();
+    const [product, setProduct] = useState(null);
+    const [loading, setLoading] = useState(true);
+
+    useEffect(() => {
+        fetch(`http://localhost:5000/products/${productId}`)
+            .then(response => response.json())
+            .then(data => {
+                setProduct(data);
+                setLoading(false);
+            })
+            .catch(err => console.error('Error fetching product details:', err));
+    }, [productId]);
+
+    if (loading) return <p>Loading...</p>;
+    if (!product) return <p>Product not found!</p>;
+
+    return (
+        <div className="product-details">
+            <h1>{product.Name}</h1>
+            <img src={product.ImageURL} alt={product.Name} />
+            <div className="product-info">
+                <p className="product-price">Price: {product.Price},-</p>
+                <p>Description: {product.Description}</p>
+                <p>Category: {product.CategoryName}</p>
+                <p>Brand: {product.BrandName}</p>
+                <p>Stock: {product.StockQuantity} units available</p>
+                <p>Dimensions: {product.Dimensions}</p>
+                <p>Weight: {product.Weight}kg</p>
+                <button onClick={() => addToCart({...product, id: product.ProductID})}>Add to Cart</button>
+            </div>
+        </div>
+    );
+}
+
+export default ProductDetails;
-- 
GitLab