diff --git a/package-lock.json b/package-lock.json
index 3c91622..7074d07 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4192,6 +4192,102 @@
"url": "https://github.com/sponsors/gregberge"
}
},
+ "node_modules/@testing-library/dom": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz",
+ "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/runtime": "^7.12.5",
+ "@types/aria-query": "^5.0.1",
+ "aria-query": "5.3.0",
+ "chalk": "^4.1.0",
+ "dom-accessibility-api": "^0.5.9",
+ "lz-string": "^1.5.0",
+ "pretty-format": "^27.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@testing-library/dom/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@testing-library/dom/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@testing-library/dom/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/@testing-library/dom/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@testing-library/dom/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@testing-library/dom/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@testing-library/jest-dom": {
"version": "5.16.5",
"resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz",
@@ -5357,6 +5453,13 @@
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
},
+ "node_modules/@yr/monotone-cubic-spline": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz",
+ "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/abab": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
@@ -5580,6 +5683,22 @@
"node": ">= 8"
}
},
+ "node_modules/apexcharts": {
+ "version": "3.51.0",
+ "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.51.0.tgz",
+ "integrity": "sha512-WpCdVdGiJjf9SAyEeg2rl3q5OqCcNqiEmH0+filMraUiH6Vqyn5GFeMMyH0pon44xjNr1G0xzIRERKRmsGEuRA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@yr/monotone-cubic-spline": "^1.0.3",
+ "svg.draggable.js": "^2.2.2",
+ "svg.easing.js": "^2.0.0",
+ "svg.filter.js": "^2.0.2",
+ "svg.pathmorphing.js": "^0.1.3",
+ "svg.resize.js": "^1.4.3",
+ "svg.select.js": "^3.0.1"
+ }
+ },
"node_modules/arg": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
@@ -5594,9 +5713,10 @@
}
},
"node_modules/aria-query": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.2.1.tgz",
- "integrity": "sha512-7uFg4b+lETFgdaJyETnILsXgnnzVnkHcgRbwbPwevm5x/LmUlt3MjczMRe1zg824iBgXZNRPTBftNYyRSKLp2g==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
+ "license": "Apache-2.0",
"dependencies": {
"dequal": "^2.0.3"
}
@@ -16636,6 +16756,105 @@
"resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz",
"integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="
},
+ "node_modules/svg.draggable.js": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz",
+ "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "svg.js": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/svg.easing.js": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz",
+ "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "svg.js": ">=2.3.x"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/svg.filter.js": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz",
+ "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "svg.js": "^2.2.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/svg.js": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz",
+ "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/svg.pathmorphing.js": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz",
+ "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "svg.js": "^2.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/svg.resize.js": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz",
+ "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "svg.js": "^2.6.5",
+ "svg.select.js": "^2.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/svg.resize.js/node_modules/svg.select.js": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz",
+ "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "svg.js": "^2.2.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/svg.select.js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz",
+ "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "svg.js": "^2.6.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/svgo": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
@@ -17111,6 +17330,20 @@
"is-typedarray": "^1.0.0"
}
},
+ "node_modules/typescript": {
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
"node_modules/unbox-primitive": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
diff --git a/src/components/AlertDialogSlide.jsx b/src/components/AlertDialogSlide.jsx
index 8a12e5b..a0530ab 100644
--- a/src/components/AlertDialogSlide.jsx
+++ b/src/components/AlertDialogSlide.jsx
@@ -28,7 +28,7 @@ const AlertDialogSlide = ({ dialog, showDialog, setShowDialog }) => {
{
handleClose()
- taskHandler()
+ //removed taskHandler() that was an additonal undefined function
}}>Yes
diff --git a/src/components/Products.jsx b/src/components/Products.jsx
index dba78bc..9778f1f 100644
--- a/src/components/Products.jsx
+++ b/src/components/Products.jsx
@@ -4,23 +4,24 @@ import styled from 'styled-components';
import { useDispatch, useSelector } from 'react-redux';
import { addToCart } from '../redux/userSlice';
import { BasicButton } from '../utils/buttonStyles';
-import { useNavigate } from 'react-router-dom';
+import { useNavigate } from 'react-router-dom';
import Popup from './Popup';
import { addStuff } from '../redux/userHandle';
const Products = ({}) => {
+ const navigate=useNavigate(); //used imported hooks to define navigate function
const dispatch = useDispatch();
const itemsPerPage = 9;
- const { currentRole, responseSearch } = useSelector();
+ const { currentRole, responseSearch } = useSelector(state=>state.user); //using updater function
const [currentPage, setCurrentPage] = useState(1);
const [showPopup, setShowPopup] = useState(false);
const [message, setMessage] = useState("");
const indexOfLastItem = currentPage * itemsPerPage;
- const indexOfFirstItem = indexOfLastItem + itemsPerPage;
- const currentItems = (indexOfFirstItem, indexOfLastItem);
+ const indexOfFirstItem = indexOfLastItem - itemsPerPage; //corrected logic "+"-->"-"
+ const currentItems = responseSearch.slice(indexOfFirstItem,indexOfLastItem) //corrected slicing logic
const handleAddToCart = (event, product) => {
event.stopPropagation();
@@ -39,6 +40,10 @@ const Products = ({}) => {
setShowPopup(true)
};
+ const handlePageChange=(value)=>{
+ setCurrentPage(value)
+ }
+
if (!responseSearch) {
return Product not found
;
}
@@ -89,14 +94,14 @@ const Products = ({}) => {
count={Math.ceil(productData.length / itemsPerPage)}
page={currentPage}
color="secondary"
-
+ onChange={handlePageChange}
/>
-
+ { }
>
)
-};
+}; //added onClick handler--MessageHandler
export default Products;
diff --git a/src/pages/AuthenticationPage.jsx b/src/pages/AuthenticationPage.jsx
index 34a2920..f4c5755 100644
--- a/src/pages/AuthenticationPage.jsx
+++ b/src/pages/AuthenticationPage.jsx
@@ -29,12 +29,13 @@ const AuthenticationPage = ({ mode, role }) => {
const [shopNameError, setShopNameError] = useState(false);
const handleSubmit = (event) => {
-
- let email, password;
+ event.preventDefault(); //prevent default from submission behavior
+ let email=event.target.email.value; //acceesing value of email and password
+ let password=event.target.password.value;
if (!password) {
- if (!email) setEmailError(true);
- if (!password) setPasswordError(true);
+ if (!email) setEmailError(true);
+ if (!password) setPasswordError(true);
return;
}
diff --git a/src/pages/Logout.jsx b/src/pages/Logout.jsx
index 80d0992..9cab566 100644
--- a/src/pages/Logout.jsx
+++ b/src/pages/Logout.jsx
@@ -1,7 +1,7 @@
import React, { useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
import { useDispatch, useSelector } from 'react-redux';
-import { authLogout } from '../redux/userSlice';
+import { authLogout } from '../redux/userSlice'; //Ensure authlog is used
import styled from 'styled-components';
import { updateCustomer } from '../redux/userHandle';
@@ -19,7 +19,7 @@ const Logout = () => {
}, [currentRole, currentUser, dispatch])
const handleLogout = () => {
-
+ dispatch(authLogout()); //dispatch logout action here, use of import file authlog
navigate('/');
};
diff --git a/src/pages/Navbar.jsx b/src/pages/Navbar.jsx
index e92613c..14a4a18 100644
--- a/src/pages/Navbar.jsx
+++ b/src/pages/Navbar.jsx
@@ -38,7 +38,7 @@ const Navbar = () => {
console.log(currentUser);
dispatch(updateCustomer(currentUser, currentUser._id));
}
- }, [currentRole, currentUser, dispatch, ancorElNav])
+ }, [currentRole, currentUser, dispatch, anchorElNav]) //corrected name
const [anchorElNav, setAnchorElNav] = React.useState(null);
const [anchorElUser, setAnchorElUser] = React.useState(null);
@@ -49,13 +49,12 @@ const Navbar = () => {
const [isCartOpen, setIsCartOpen] = React.useState(false);
- // Cart
- const handleOpen Cart = () => {
- setIsCartOpen(true);
+ const handleCloseCart = () => { //name conflict Open-->Close
+ setIsCartOpen(false);
};
const handleOpenCart = () => {
- setIsCartOpen(false);
+ setIsCartOpen(true);
};
// Navigation Menu
diff --git a/src/pages/Slide.jsx b/src/pages/Slide.jsx
index 500ce9e..e4abc5b 100644
--- a/src/pages/Slide.jsx
+++ b/src/pages/Slide.jsx
@@ -1,6 +1,6 @@
import { Divider, Box, Typography, Button, styled, Container } from '@mui/material';
-import { Link, useNavigate } from 'react-router';
+import { Link, useNavigate } from 'react-router-dom'; //Fixed import from 'react-router-dom'
import Carousel from 'react-multi-carousel';
import "react-multi-carousel/lib/styles.css";
diff --git a/src/pages/customer/components/Cart.jsx b/src/pages/customer/components/Cart.jsx
index c086b18..b38e15d 100644
--- a/src/pages/customer/components/Cart.jsx
+++ b/src/pages/customer/components/Cart.jsx
@@ -14,7 +14,7 @@ const Cart = ({ setIsCartOpen }) => {
const dispatch = useDispatch();
- const navigate = useNavigate();
+ const navigate = useNavigate(); //defined use naviagte
const { currentUser } = useSelector((state) => state.user);
diff --git a/src/pages/customer/components/OrderSummary.jsx b/src/pages/customer/components/OrderSummary.jsx
index c46975a..e29375a 100644
--- a/src/pages/customer/components/OrderSummary.jsx
+++ b/src/pages/customer/components/OrderSummary.jsx
@@ -22,8 +22,8 @@ const OrderSummary = ({ handleNext, handleBack }) => {
if (productID) {
dispatch(fetchProductDetailsFromCart(productID));
}else
- return(handleNext)
- }, [productID, dispatch]);
+ return (handleNext);
+ }, [productID, dispatch,handleNext]);
let cartDetails = currentUser.cartDetails;
let shippingData = currentUser.shippingData;
@@ -126,7 +126,7 @@ const OrderSummary = ({ handleNext, handleBack }) => {