From 0b49687b96f5c02a0e1c27158405f60cda8df667 Mon Sep 17 00:00:00 2001
From: Tiago Brito <69848652+britotiago03@users.noreply.github.com>
Date: Fri, 10 May 2024 05:13:20 +0200
Subject: [PATCH] Implemented CategoryProducts.css

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

diff --git a/frontend/src/components/CategoryProducts.js b/frontend/src/components/CategoryProducts.js
new file mode 100644
index 0000000..bf771a6
--- /dev/null
+++ b/frontend/src/components/CategoryProducts.js
@@ -0,0 +1,47 @@
+import React, { useState, useEffect } from 'react';
+import { useParams, Link } from 'react-router-dom';
+import { useCart } from '../contexts/CartContext';
+import '../css/CategoryProducts.css'; // Ensure CSS is correctly linked
+
+function CategoryProducts() {
+    const { categoryName } = useParams();
+    const { addToCart } = useCart();
+    const [products, setProducts] = useState([]);
+    const [loading, setLoading] = useState(true);
+
+    useEffect(() => {
+        fetch(`http://localhost:5000/products/category/${categoryName}`) // Ensure this endpoint exists and is configured to return products by category name
+            .then(response => response.json())
+            .then(data => {
+                setProducts(data);
+                setLoading(false);
+            })
+            .catch(err => {
+                console.error('Error fetching products by category:', err);
+                setLoading(false);
+            });
+    }, [categoryName]);
+
+    if (loading) return <div>Loading products...</div>;
+    if (!products.length) return <div>No products found in this category.</div>;
+
+    return (
+        <div className="category-products">
+            <h2>Products in {categoryName}</h2>
+            <div className="category-product-list">
+                {products.map(product => (
+                    <div key={product.ProductID} className="category-product">
+                        <img src={product.ImageURL} alt={product.Name} style={{ width: '200px', height: '200px', objectFit: 'contain' }} />
+                        <h3>{product.Name}</h3>
+                        <p>{product.Description}</p>
+                        <p>Price: {product.Price},-</p>
+                        <button onClick={() => addToCart({...product, id: product.ProductID})}>Add to Cart</button>
+                        <Link to={`/product/${product.ProductID}`}>View Details</Link>
+                    </div>
+                ))}
+            </div>
+        </div>
+    );
+}
+
+export default CategoryProducts;
-- 
GitLab