From a0f4f5f7bd0d2055cc2d203db4121de1c8393177 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 22 Jan 2026 12:29:15 +0000
Subject: [PATCH 1/3] Initial plan
From 365062d98ed0434125afb97ba7439de3b46e0c98 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 22 Jan 2026 12:34:14 +0000
Subject: [PATCH 2/3] Add shopping cart feature with context, UI components,
and integration
Co-authored-by: webmaxru <1560278+webmaxru@users.noreply.github.com>
---
frontend/src/App.tsx | 7 +-
frontend/src/components/Navigation.tsx | 26 ++
frontend/src/components/entity/cart/Cart.tsx | 262 ++++++++++++++++++
.../components/entity/product/Products.tsx | 25 +-
frontend/src/context/CartContext.tsx | 86 ++++++
frontend/src/types/cart.ts | 14 +
6 files changed, 413 insertions(+), 7 deletions(-)
create mode 100644 frontend/src/components/entity/cart/Cart.tsx
create mode 100644 frontend/src/context/CartContext.tsx
create mode 100644 frontend/src/types/cart.ts
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index 29b9f53..f634d34 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -4,9 +4,11 @@ import Welcome from './components/Welcome';
import About from './components/About';
import Footer from './components/Footer';
import Products from './components/entity/product/Products';
+import Cart from './components/entity/cart/Cart';
import Login from './components/Login';
import { AuthProvider } from './context/AuthContext';
import { ThemeProvider } from './context/ThemeContext';
+import { CartProvider } from './context/CartContext';
import AdminProducts from './components/admin/AdminProducts';
import { useTheme } from './context/ThemeContext';
@@ -25,6 +27,7 @@ function ThemedApp() {
} />
} />
} />
+ } />
} />
} />
@@ -39,7 +42,9 @@ function App() {
return (
-
+
+
+
);
diff --git a/frontend/src/components/Navigation.tsx b/frontend/src/components/Navigation.tsx
index 5f35e12..57bd2c9 100644
--- a/frontend/src/components/Navigation.tsx
+++ b/frontend/src/components/Navigation.tsx
@@ -1,11 +1,13 @@
import { Link } from 'react-router-dom';
import { useAuth } from '../context/AuthContext';
import { useTheme } from '../context/ThemeContext';
+import { useCart } from '../context/CartContext';
import { useState } from 'react';
export default function Navigation() {
const { isLoggedIn, isAdmin, logout } = useAuth();
const { darkMode, toggleTheme } = useTheme();
+ const { cart } = useCart();
const [adminMenuOpen, setAdminMenuOpen] = useState(false);
return (
@@ -85,6 +87,30 @@ export default function Navigation() {
+
+
+ {cart.totalItems > 0 && (
+
+ {cart.totalItems}
+
+ )}
+