From 8fc6cd02ca2dbe42339d6e1edeaa0baa2b202d0c Mon Sep 17 00:00:00 2001 From: DushyanthaAT Date: Fri, 10 May 2024 10:31:06 +0530 Subject: [PATCH 1/4] add utilities --- shopsense_seller/package-lock.json | 328 +++++++++++++++++++++++++++++ shopsense_seller/package.json | 5 + shopsense_seller/src/App.js | 1 + 3 files changed, 334 insertions(+) diff --git a/shopsense_seller/package-lock.json b/shopsense_seller/package-lock.json index 35a958e..a8fee28 100644 --- a/shopsense_seller/package-lock.json +++ b/shopsense_seller/package-lock.json @@ -8,6 +8,11 @@ "name": "shopsense_seller", "version": "0.1.0", "dependencies": { + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.5", + "@mui/icons-material": "^5.15.17", + "@mui/material": "^5.15.17", + "@ramonak/react-progress-bar": "^5.2.0", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -2345,6 +2350,14 @@ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, "node_modules/@emotion/memoize": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", @@ -2390,6 +2403,28 @@ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" }, + "node_modules/@emotion/styled": { + "version": "11.11.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz", + "integrity": "sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.2", + "@emotion/serialize": "^1.1.4", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@emotion/unitless": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", @@ -2523,6 +2558,18 @@ "@floating-ui/utils": "^0.2.0" } }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.9.tgz", + "integrity": "sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, "node_modules/@floating-ui/utils": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", @@ -3386,6 +3433,261 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", + "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.15.17", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.17.tgz", + "integrity": "sha512-DVAejDQkjNnIac7MfP8sLzuo7fyrBPxNdXe+6bYqOqg1z2OPTlfFAejSNzWe7UenRMuFu9/AyFXj/X2vN2w6dA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.15.17", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.17.tgz", + "integrity": "sha512-xVzl2De7IY36s/keHX45YMiCpsIx3mNv2xwDgtBkRSnZQtVk+Gqufwj1ktUxEyjzEhBl0+PiNJqYC31C+n1n6A==", + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.15.17", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.17.tgz", + "integrity": "sha512-ru/MLvTkCh0AZXmqwIpqGTOoVBS/sX48zArXq/DvktxXZx4fskiRA2PEc7Rk5ZlFiZhKh4moL4an+l8zZwq49Q==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.40", + "@mui/core-downloads-tracker": "^5.15.17", + "@mui/system": "^5.15.15", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/@mui/private-theming": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.14.tgz", + "integrity": "sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.14", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", + "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.15.tgz", + "integrity": "sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.14", + "@mui/styled-engine": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.14.tgz", + "integrity": "sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -3504,6 +3806,24 @@ } } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@ramonak/react-progress-bar": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@ramonak/react-progress-bar/-/react-progress-bar-5.2.0.tgz", + "integrity": "sha512-hgsn1YSXzDplCVNJ/YiCM0nVbVHKu7+2OHlj3kr2wU9ELPa9A/qj+c+GKGKqzJullsofRJV5yMN/Y/jL9aE4/Q==", + "peerDependencies": { + "react": "^16.0.0 || ^17 || ^18", + "react-dom": "^16.0.0 || ^17 || ^18" + } + }, "node_modules/@remix-run/router": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.0.tgz", @@ -6306,6 +6626,14 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", diff --git a/shopsense_seller/package.json b/shopsense_seller/package.json index e15833b..8f21599 100644 --- a/shopsense_seller/package.json +++ b/shopsense_seller/package.json @@ -3,6 +3,11 @@ "version": "0.1.0", "private": true, "dependencies": { + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.5", + "@mui/icons-material": "^5.15.17", + "@mui/material": "^5.15.17", + "@ramonak/react-progress-bar": "^5.2.0", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/shopsense_seller/src/App.js b/shopsense_seller/src/App.js index 3ecd318..582c20b 100644 --- a/shopsense_seller/src/App.js +++ b/shopsense_seller/src/App.js @@ -12,6 +12,7 @@ import Form02 from "./Pages/RegistrationForm02/Form02.jsx"; import Form from "./Pages/Form/Form.js"; import ProductAdd1 from "./Pages/ProductAdd01/ProductAdd01.jsx"; import ProductAdd2 from "./Pages/ProductAdd02/ProductAdd02.jsx"; +import AdminDashboard from "./AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx"; function App() { From ab2df932c9868e57ecf63103ab5e3b820cae0ac1 Mon Sep 17 00:00:00 2001 From: DushyanthaAT Date: Fri, 10 May 2024 12:30:48 +0530 Subject: [PATCH 2/4] add stat page and update sideNav --- shopsense_seller/package-lock.json | 395 +++++++++++++++++- shopsense_seller/package.json | 2 + .../AdminDashboard/AdminDashboard.jsx | 4 +- .../AdminPages/AdminStat/AdminStat.jsx | 74 ++++ .../AdminPages/AdminStat/adminStat.css | 24 ++ .../adminComponents/adminNavbar/AdminNav.jsx | 20 + .../adminComponents/adminNavbar/adminNav.css | 45 ++ .../adminComponents/sideNavbar/SideNav.jsx | 84 ++-- .../adminComponents/sideNavbar/sideNav.css | 54 +-- shopsense_seller/src/App.js | 5 +- 10 files changed, 643 insertions(+), 64 deletions(-) create mode 100644 shopsense_seller/src/AdminSide/AdminPages/AdminStat/AdminStat.jsx create mode 100644 shopsense_seller/src/AdminSide/AdminPages/AdminStat/adminStat.css create mode 100644 shopsense_seller/src/AdminSide/adminComponents/adminNavbar/AdminNav.jsx create mode 100644 shopsense_seller/src/AdminSide/adminComponents/adminNavbar/adminNav.css diff --git a/shopsense_seller/package-lock.json b/shopsense_seller/package-lock.json index a8fee28..b36614f 100644 --- a/shopsense_seller/package-lock.json +++ b/shopsense_seller/package-lock.json @@ -12,6 +12,7 @@ "@emotion/styled": "^11.11.5", "@mui/icons-material": "^5.15.17", "@mui/material": "^5.15.17", + "@mui/x-charts": "^7.3.2", "@ramonak/react-progress-bar": "^5.2.0", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", @@ -22,6 +23,7 @@ "react-router-dom": "^6.23.0", "react-scripts": "5.0.1", "react-select": "^5.8.0", + "recharts": "^2.12.7", "web-vitals": "^2.1.4" } }, @@ -1960,9 +1962,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -3688,6 +3690,44 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, + "node_modules/@mui/x-charts": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@mui/x-charts/-/x-charts-7.3.2.tgz", + "integrity": "sha512-620eMe83R0RDZk0S7ExYFRM2yZLlEOyIZmP5zwwVujZg54OC1fwLsk0tiaFaVZQOBKmeFOtyltDNPxr9e6itJQ==", + "dependencies": { + "@babel/runtime": "^7.24.0", + "@mui/base": "^5.0.0-beta.40", + "@mui/system": "^5.15.14", + "@mui/utils": "^5.15.14", + "@react-spring/rafz": "^9.7.3", + "@react-spring/web": "^9.7.3", + "clsx": "^2.1.0", + "d3-color": "^3.1.0", + "d3-delaunay": "^6.0.4", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.2.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", + "@mui/material": "^5.15.14", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -3824,6 +3864,71 @@ "react-dom": "^16.0.0 || ^17 || ^18" } }, + "node_modules/@react-spring/animated": { + "version": "9.7.3", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.3.tgz", + "integrity": "sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw==", + "dependencies": { + "@react-spring/shared": "~9.7.3", + "@react-spring/types": "~9.7.3" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/core": { + "version": "9.7.3", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.3.tgz", + "integrity": "sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ==", + "dependencies": { + "@react-spring/animated": "~9.7.3", + "@react-spring/shared": "~9.7.3", + "@react-spring/types": "~9.7.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-spring/donate" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/rafz": { + "version": "9.7.3", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.3.tgz", + "integrity": "sha512-9vzW1zJPcC4nS3aCV+GgcsK/WLaB520Iyvm55ARHfM5AuyBqycjvh1wbmWmgCyJuX4VPoWigzemq1CaaeRSHhQ==" + }, + "node_modules/@react-spring/shared": { + "version": "9.7.3", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.3.tgz", + "integrity": "sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA==", + "dependencies": { + "@react-spring/types": "~9.7.3" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/types": { + "version": "9.7.3", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.3.tgz", + "integrity": "sha512-Kpx/fQ/ZFX31OtlqVEFfgaD1ACzul4NksrvIgYfIFq9JpDHFwQkMVZ10tbo0FU/grje4rcL4EIrjekl3kYwgWw==" + }, + "node_modules/@react-spring/web": { + "version": "9.7.3", + "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.3.tgz", + "integrity": "sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==", + "dependencies": { + "@react-spring/animated": "~9.7.3", + "@react-spring/core": "~9.7.3", + "@react-spring/shared": "~9.7.3", + "@react-spring/types": "~9.7.3" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/@remix-run/router": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.0.tgz", @@ -4544,6 +4649,60 @@ "@types/node": "*" } }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", + "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", + "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==" + }, "node_modules/@types/eslint": { "version": "8.56.2", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz", @@ -7299,6 +7458,127 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -7338,6 +7618,11 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" + }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -7436,6 +7721,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -8759,6 +9052,14 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-equals": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", + "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -10019,6 +10320,14 @@ "node": ">= 0.4" } }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } + }, "node_modules/ipaddr.js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", @@ -15630,6 +15939,20 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-smooth": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.1.tgz", + "integrity": "sha512-OE4hm7XqR0jNOq3Qmk9mFLyd6p2+j6bvbPJ7qlB7+oo0eNcL2l7WQzG6MBnT3EXY6xzkLMUBec3AfewJdA0J8w==", + "dependencies": { + "fast-equals": "^5.0.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", @@ -15677,6 +16000,41 @@ "node": ">=8.10.0" } }, + "node_modules/recharts": { + "version": "2.12.7", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.7.tgz", + "integrity": "sha512-hlLJMhPQfv4/3NBSAyq3gzGg4h2v69RJh6KU7b3pXYNNAELs9kEoXOjbkxdXpALqKBoVmVptGfLpxdaVYqjmXQ==", + "dependencies": { + "clsx": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.21", + "react-is": "^16.10.2", + "react-smooth": "^4.0.0", + "recharts-scale": "^0.4.4", + "tiny-invariant": "^1.3.1", + "victory-vendor": "^36.6.8" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/recharts/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/recursive-readdir": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", @@ -15981,6 +16339,11 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + }, "node_modules/rollup": { "version": "2.79.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", @@ -17405,6 +17768,11 @@ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -17884,6 +18252,27 @@ "node": ">= 0.8" } }, + "node_modules/victory-vendor": { + "version": "36.9.2", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", + "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", diff --git a/shopsense_seller/package.json b/shopsense_seller/package.json index 8f21599..590837b 100644 --- a/shopsense_seller/package.json +++ b/shopsense_seller/package.json @@ -7,6 +7,7 @@ "@emotion/styled": "^11.11.5", "@mui/icons-material": "^5.15.17", "@mui/material": "^5.15.17", + "@mui/x-charts": "^7.3.2", "@ramonak/react-progress-bar": "^5.2.0", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", @@ -17,6 +18,7 @@ "react-router-dom": "^6.23.0", "react-scripts": "5.0.1", "react-select": "^5.8.0", + "recharts": "^2.12.7", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/shopsense_seller/src/AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx b/shopsense_seller/src/AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx index 7315b3b..940663f 100644 --- a/shopsense_seller/src/AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx +++ b/shopsense_seller/src/AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx @@ -1,7 +1,7 @@ import React from "react"; import SideNav from "../../adminComponents/sideNavbar/SideNav"; import "./adminDashboard.css"; -import FormNavBar from "../../../Components/FormNavBar/FormNavBar"; +import AdminNav from "../../adminComponents/adminNavbar/AdminNav"; import Card from "../../adminComponents/card/Card"; import TableComponent from "../../adminComponents/tableComponent/TableComponent"; import BarChartOutlinedIcon from "@mui/icons-material/BarChartOutlined"; @@ -12,7 +12,7 @@ import PersonAddOutlinedIcon from "@mui/icons-material/PersonAddOutlined"; const AdminDashboard = () => { return (
- +
diff --git a/shopsense_seller/src/AdminSide/AdminPages/AdminStat/AdminStat.jsx b/shopsense_seller/src/AdminSide/AdminPages/AdminStat/AdminStat.jsx new file mode 100644 index 0000000..e2c1e18 --- /dev/null +++ b/shopsense_seller/src/AdminSide/AdminPages/AdminStat/AdminStat.jsx @@ -0,0 +1,74 @@ +import React from "react"; +import AdminNav from "../../adminComponents/adminNavbar/AdminNav"; +import SideNav from "../../adminComponents/sideNavbar/SideNav"; +import "./adminStat.css"; +import { + LineChart, + Line, + XAxis, + YAxis, + CartesianGrid, + Tooltip, + Legend, + ResponsiveContainer, +} from "recharts"; + +const data = [ + { month: "Jan", Sales: "10" }, + { month: "Feb", Sales: "15" }, + { month: "Mar", Sales: "08" }, + { month: "Apr", Sales: "03" }, + { month: "May", Sales: "11" }, + { month: "Jun", Sales: "21" }, + { month: "Jul", Sales: "05" }, + { month: "Aug", Sales: "14" }, + { month: "Sep", Sales: "09" }, + { month: "Oct", Sales: "19" }, + { month: "Nov", Sales: "21" }, + { month: "Dec", Sales: "15" }, +]; + +const AdminStat = () => { + return ( +
+ +
+
+ +
+
+ Sales Stat +
+ + + + + + + + + + +
+
+
+
+ ); +}; + +export default AdminStat; diff --git a/shopsense_seller/src/AdminSide/AdminPages/AdminStat/adminStat.css b/shopsense_seller/src/AdminSide/AdminPages/AdminStat/adminStat.css new file mode 100644 index 0000000..60395bc --- /dev/null +++ b/shopsense_seller/src/AdminSide/AdminPages/AdminStat/adminStat.css @@ -0,0 +1,24 @@ +.st-right-flex{ + display: flex; + flex-direction: column; + height: auto; + width: calc(100vw - 250px); + margin-left: 250px; + padding-left: 20px; + padding-top: 50px; + .rf-txt{ + font-size: 1.5rem; + font-weight: bold; +} + +.rf-chart{ + background-color: rgb(255, 255, 255); + display: flex; + padding: 40px 30px 0px 0px; + margin: 10px 20px; + border-radius: 20px; + box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + -webkit-box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + -moz-box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); +} +} diff --git a/shopsense_seller/src/AdminSide/adminComponents/adminNavbar/AdminNav.jsx b/shopsense_seller/src/AdminSide/adminComponents/adminNavbar/AdminNav.jsx new file mode 100644 index 0000000..332c5f0 --- /dev/null +++ b/shopsense_seller/src/AdminSide/adminComponents/adminNavbar/AdminNav.jsx @@ -0,0 +1,20 @@ +import "./adminNav.css"; +import logo from "../../../Components/Assets/logo.png"; +import Bell from "../../../Components/Notification/bell"; +import Profile from "../../../Components/Assets/Profile.jpg"; + +function AdminNav() { + return ( + + ); +} + +export default AdminNav; diff --git a/shopsense_seller/src/AdminSide/adminComponents/adminNavbar/adminNav.css b/shopsense_seller/src/AdminSide/adminComponents/adminNavbar/adminNav.css new file mode 100644 index 0000000..9d0e41a --- /dev/null +++ b/shopsense_seller/src/AdminSide/adminComponents/adminNavbar/adminNav.css @@ -0,0 +1,45 @@ +.FormNavBar { + background-color: #ffbfd0; + margin: 0%; + max-width: 100%; + display: flex; + justify-content: space-between; + padding: 20px; + position: fixed; + z-index: 2; + } + + .Join_button2 { + color: white; + font-weight: bold; + width: 120px; + height: 45px; + background: #000000; + border-radius: 6px; + border: none; + font-size: 15px; + cursor: pointer; + transition: background-color 0.8s ease; + margin-right: 60px; + } + + .Join_button2:hover { + background-color: #fe7a9d; + color: #000000; + } + + .ProfileImg { + width: 40px; + height: 40px; + margin-left: 10px; + border-radius: 5px; + cursor: pointer; + } + + .profilebar { + justify-content: center; + display: flex; + align-items: center; + margin-right: 48px; + } + \ No newline at end of file diff --git a/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/SideNav.jsx b/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/SideNav.jsx index 765cf86..dc9ea9a 100644 --- a/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/SideNav.jsx +++ b/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/SideNav.jsx @@ -5,42 +5,64 @@ import ShoppingCartOutlinedIcon from "@mui/icons-material/ShoppingCartOutlined"; import ShoppingBagOutlinedIcon from "@mui/icons-material/ShoppingBagOutlined"; import InsertChartOutlinedIcon from "@mui/icons-material/InsertChartOutlined"; import TextsmsOutlinedIcon from "@mui/icons-material/TextsmsOutlined"; -import SettingsOutlinedIcon from "@mui/icons-material/SettingsOutlined"; +import MonetizationOnOutlinedIcon from "@mui/icons-material/MonetizationOnOutlined"; import LogoutOutlinedIcon from "@mui/icons-material/LogoutOutlined"; +import { Link, NavLink } from "react-router-dom"; + const SideNav = () => { + const menuItem = [ + { + path: "/Dashboard", + name: "Dashboard", + icon: , + }, + { + path: "/", + name: "Order", + icon: , + }, + { + path: "/", + name: "Products", + icon: , + }, + { + path: "/SalesStat", + name: "Sales Stat", + icon: , + }, + { + path: "/", + name: "Message", + icon: , + }, + { + path: "/", + name: "Withdraw", + icon: , + }, + { + path: "/", + name: "Sign Out", + icon: , + }, + ]; return (
-
    -
  • - - Dashboard -
  • -
  • - - Orders -
  • -
  • - - Products -
  • -
  • - - Sales Report -
  • -
  • - - Messages -
  • -
  • - - Settings -
  • -
  • - - Sign Out -
  • -
+
+ {menuItem.map((item, index) => ( + +
{item.icon}
+
{item.name}
+
+ ))} +
); }; diff --git a/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/sideNav.css b/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/sideNav.css index 195be46..f2a1fa5 100644 --- a/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/sideNav.css +++ b/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/sideNav.css @@ -1,36 +1,40 @@ +.active{ + background-color: red; +} .sideNav{ display: flex; flex: 1; flex-direction: column; justify-content: center; align-items: center; - ul{ - list-style: none; - align-items: center; - padding: 0px - } - li{ - color: black; - display: flex; - align-items: center; - margin: 10px; - padding: 15px 20px; - cursor: pointer; - width: 150px; - border-radius: 10px; - &:hover{ - background-color: #d0d0d06f; - transform: scale(1.01) - } - &:focus{ - background-color: #d0d0d06f; - } - span{ - padding-left: 8px; - } - } + } .list-text{ font-size: 1.2rem; +} + +.link{ + display: flex; + color: #4e4d4d; + padding: 15px 35px; + margin: 12px; + gap: 15px; + transition: all 0.5s; + border-radius: 10px; + align-items: center; + justify-content: start; + line-height: 0; + font-size: 1.2rem; + text-decoration: none; +} +.link:hover{ + background:rgb(216, 216, 216); + color: #4e4d4d; + transition: all 0.5s; + /* transform: scale(1.02) */ +} +.active{ + background: rgb(0, 0, 0); + color: #ffffff; } \ No newline at end of file diff --git a/shopsense_seller/src/App.js b/shopsense_seller/src/App.js index 582c20b..996ea43 100644 --- a/shopsense_seller/src/App.js +++ b/shopsense_seller/src/App.js @@ -13,7 +13,7 @@ import Form from "./Pages/Form/Form.js"; import ProductAdd1 from "./Pages/ProductAdd01/ProductAdd01.jsx"; import ProductAdd2 from "./Pages/ProductAdd02/ProductAdd02.jsx"; import AdminDashboard from "./AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx"; - +import AdminStat from "./AdminSide/AdminPages/AdminStat/AdminStat.jsx"; function App() { const Cards = Instructions.map((card) => { @@ -32,11 +32,10 @@ function App() { } /> } /> } /> - } /> } /> - } /> + } />
From de7c7cc2995f54bd44dbb604a795fc13caf1fec1 Mon Sep 17 00:00:00 2001 From: DushyanthaAT Date: Sat, 11 May 2024 12:52:02 +0530 Subject: [PATCH 3/4] add payout page --- .../AdminDashboard/AdminDashboard.jsx | 54 +++++++- .../AdminSide/AdminPages/payouts/Payout.jsx | 59 +++++++++ .../AdminSide/AdminPages/payouts/payout.css | 118 ++++++++++++++++++ .../adminComponents/sideNavbar/SideNav.jsx | 4 +- .../tableComponent/TableComponent.jsx | 55 +------- .../tableComponent/TableComponent2.jsx | 50 ++++++++ .../tableComponent/tableComponent.css | 3 - shopsense_seller/src/App.js | 2 + 8 files changed, 286 insertions(+), 59 deletions(-) create mode 100644 shopsense_seller/src/AdminSide/AdminPages/payouts/Payout.jsx create mode 100644 shopsense_seller/src/AdminSide/AdminPages/payouts/payout.css create mode 100644 shopsense_seller/src/AdminSide/adminComponents/tableComponent/TableComponent2.jsx delete mode 100644 shopsense_seller/src/AdminSide/adminComponents/tableComponent/tableComponent.css diff --git a/shopsense_seller/src/AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx b/shopsense_seller/src/AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx index 940663f..4fbca92 100644 --- a/shopsense_seller/src/AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx +++ b/shopsense_seller/src/AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx @@ -9,6 +9,58 @@ import DescriptionOutlinedIcon from "@mui/icons-material/DescriptionOutlined"; import SellOutlinedIcon from "@mui/icons-material/SellOutlined"; import PersonAddOutlinedIcon from "@mui/icons-material/PersonAddOutlined"; + +import LinearProgress, { + linearProgressClasses, +} from "@mui/material/LinearProgress"; + +import { styled } from "@mui/material/styles"; + +const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({ + height: 10, + borderRadius: 5, + marginRight: 50, + [`&.${linearProgressClasses.colorPrimary}`]: { + backgroundColor: + theme.palette.grey[theme.palette.mode === "light" ? 200 : 800], + }, + [`& .${linearProgressClasses.bar}`]: { + borderRadius: 5, + backgroundColor: theme.palette.mode === "light" ? "#1a90ff" : "#308fe8", + }, +})); + +function createData(No, Name, Popularity, Sales) { + return { No, Name, Popularity, Sales }; +} + +const rows = [ + createData( + 1, + "Midnight Blue Velvet Dress", + , + "10%" + ), + createData( + 2, + "Classic White Button-Up Shirt", + , + "60%" + ), + createData( + 3, + "Black Leather Biker Jacket", + , + "30%" + ), + createData( + 4, + "Red Plaid Flannel Shirt", + , + "80%" + ), +]; + const AdminDashboard = () => { return (
@@ -72,7 +124,7 @@ const AdminDashboard = () => {
Top Products
- +
diff --git a/shopsense_seller/src/AdminSide/AdminPages/payouts/Payout.jsx b/shopsense_seller/src/AdminSide/AdminPages/payouts/Payout.jsx new file mode 100644 index 0000000..c52f535 --- /dev/null +++ b/shopsense_seller/src/AdminSide/AdminPages/payouts/Payout.jsx @@ -0,0 +1,59 @@ +import React from "react"; +import "./payout.css"; +import SideNav from "../../adminComponents/sideNavbar/SideNav"; +import AdminNav from "../../adminComponents/adminNavbar/AdminNav"; +import { Link } from "react-router-dom"; +import TableComponent2 from "../../adminComponents/tableComponent/TableComponent2"; + +function createData(No, Payout_Date, Status, Reference_Number) { + return { No, Payout_Date, Status, Reference_Number }; +} + +const rows = [ + createData(1, "january 2, 2024", "Processing", "1243135421"), + createData(2, "December 15, 2023", "Paid", "5435435113"), + createData(3, "November 29, 2023", "Paid", "6431222321"), +]; + +const Payout = () => { + return ( +
+ +
+
+ +
+
+
+ Payout +
+
+ Total Payement + LKR 2000 +
+
+
+ Available Payement + LKR 1200 +
+
+ + + +
+
+
+
+
+ Payout History +
+ +
+
+
+
+
+ ); +}; + +export default Payout; diff --git a/shopsense_seller/src/AdminSide/AdminPages/payouts/payout.css b/shopsense_seller/src/AdminSide/AdminPages/payouts/payout.css new file mode 100644 index 0000000..ccf83b7 --- /dev/null +++ b/shopsense_seller/src/AdminSide/AdminPages/payouts/payout.css @@ -0,0 +1,118 @@ +.payout-container{ + display: flex; + position: relative; + width: 100%; + top: 85px; + .payout-left-flex{ + position: relative; + display: flex; + width: 250px; + justify-content: center; + align-items: center; + height: calc(100vh - 85px); + position: fixed; + } + .payout-right-flex{ + display: flex; + flex-direction: column; + height: auto; + width: calc(100vw - 250px); + margin-left: 250px; + .payout-top{ + display: flex; + height: auto; + margin-top: 60px; + margin-left: 20px; + margin-right: 20px; + flex-direction: column; + .payout-txt{ + font-size: 1.5rem; + font-weight: bold; + } + .payout-summary{ + display: flex; + height: 200px; + gap:30px; + margin-top: 20px; + .payout-sum-left{ + flex:1; + display: flex; + flex-direction: column; + justify-content: center; + border-radius: 20px; + box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + -webkit-box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + -moz-box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + + } + .payout-sum-right{ + padding-right: 30px; + flex:2; + display: flex; + border-radius: 20px; + justify-content: space-between; + align-items: center; + box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + -webkit-box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + -moz-box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + .payment-txt{ + display: flex; + flex-direction: column; + justify-content: center; + } + Button { + width: 160px; + height: 50px; + background: #000000; + border-radius: 8px; + border: none; + color: #ffffff; + font-size: 20px; + font-weight: 500; + margin-right: 10px; + transition: background-color 0.1s ease; + cursor: pointer; + &:hover{ + background-color: rgb(176, 176, 176); + color: black; + } + } + } + .payment-txt1{ + padding-left: 30px; + font-size: 1rem; + color: #575757; + font-weight:500; + line-height: 2; + } + .payment-txt2{ + padding-left: 30px; + font-size: 2rem; + color: black; + font-weight:500; + } + } + } + .payout-bottom{ + display: flex; + height: auto; + margin-top: 30px; + margin-left: 20px; + margin-right: 20px; + flex-direction: column; + .payout-history{ + font-size: 1.5rem; + font-weight: bold; + + } + .payout-table{ + border-radius: 20px; + margin-top: 20px; + box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + -webkit-box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + -moz-box-shadow: 0px 0px 16px -5px rgba(0,0,0,0.13); + + } + } + } +} \ No newline at end of file diff --git a/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/SideNav.jsx b/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/SideNav.jsx index dc9ea9a..78e3b9a 100644 --- a/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/SideNav.jsx +++ b/shopsense_seller/src/AdminSide/adminComponents/sideNavbar/SideNav.jsx @@ -38,8 +38,8 @@ const SideNav = () => { icon: , }, { - path: "/", - name: "Withdraw", + path: "/Payout", + name: "Payout", icon: , }, { diff --git a/shopsense_seller/src/AdminSide/adminComponents/tableComponent/TableComponent.jsx b/shopsense_seller/src/AdminSide/adminComponents/tableComponent/TableComponent.jsx index fcb291f..47bfa0d 100644 --- a/shopsense_seller/src/AdminSide/adminComponents/tableComponent/TableComponent.jsx +++ b/shopsense_seller/src/AdminSide/adminComponents/tableComponent/TableComponent.jsx @@ -1,63 +1,12 @@ import React from "react"; -import "./tableComponent.css"; import Table from "@mui/material/Table"; import TableBody from "@mui/material/TableBody"; import TableCell from "@mui/material/TableCell"; import TableContainer from "@mui/material/TableContainer"; import TableHead from "@mui/material/TableHead"; import TableRow from "@mui/material/TableRow"; -import LinearProgress, { - linearProgressClasses, -} from "@mui/material/LinearProgress"; -import { styled } from "@mui/material/styles"; - -const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({ - height: 10, - borderRadius: 5, - marginRight: 50, - [`&.${linearProgressClasses.colorPrimary}`]: { - backgroundColor: - theme.palette.grey[theme.palette.mode === "light" ? 200 : 800], - }, - [`& .${linearProgressClasses.bar}`]: { - borderRadius: 5, - backgroundColor: theme.palette.mode === "light" ? "#1a90ff" : "#308fe8", - }, -})); - -function createData(No, Name, Popularity, Sales) { - return { No, Name, Popularity, Sales }; -} - -const rows = [ - createData( - 1, - "Midnight Blue Velvet Dress", - , - "45%" - ), - createData( - 2, - "Classic White Button-Up Shirt", - , - "29%" - ), - createData( - 3, - "Black Leather Biker Jacket", - , - "18%" - ), - createData( - 4, - "Red Plaid Flannel Shirt", - , - "25%" - ), -]; - -const TableComponent = () => { +const TableComponent = (props) => { return (
@@ -77,7 +26,7 @@ const TableComponent = () => { - {rows.map((row) => ( + {props.rows.map((row) => ( { + return ( +
+ + + + + No + + Payout Date + + + Status + + + Reference_Number + + + + + {props.rows.map((row) => ( + + + {row.No} + + {row.Payout_Date} + {row.Status} + {row.Reference_Number} + + ))} + +
+
+
+ ); +}; + +export default TableComponent2; diff --git a/shopsense_seller/src/AdminSide/adminComponents/tableComponent/tableComponent.css b/shopsense_seller/src/AdminSide/adminComponents/tableComponent/tableComponent.css deleted file mode 100644 index ffad0e8..0000000 --- a/shopsense_seller/src/AdminSide/adminComponents/tableComponent/tableComponent.css +++ /dev/null @@ -1,3 +0,0 @@ -.table-container{ - -} \ No newline at end of file diff --git a/shopsense_seller/src/App.js b/shopsense_seller/src/App.js index 996ea43..39b8801 100644 --- a/shopsense_seller/src/App.js +++ b/shopsense_seller/src/App.js @@ -14,6 +14,7 @@ import ProductAdd1 from "./Pages/ProductAdd01/ProductAdd01.jsx"; import ProductAdd2 from "./Pages/ProductAdd02/ProductAdd02.jsx"; import AdminDashboard from "./AdminSide/AdminPages/AdminDashboard/AdminDashboard.jsx"; import AdminStat from "./AdminSide/AdminPages/AdminStat/AdminStat.jsx"; +import Payout from "./AdminSide/AdminPages/payouts/Payout.jsx"; function App() { const Cards = Instructions.map((card) => { @@ -36,6 +37,7 @@ function App() { } /> } /> } /> + } />
From d6e1cca38d4999467f1ae7252f77731fcb9afb43 Mon Sep 17 00:00:00 2001 From: disara7 <129250994+disara7@users.noreply.github.com> Date: Sat, 11 May 2024 16:03:04 +0530 Subject: [PATCH 4/4] spell check --- shopsense_seller/src/Components/Navbar/Navbar.jsx | 2 +- shopsense_seller/src/Pages/Login/Login.jsx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shopsense_seller/src/Components/Navbar/Navbar.jsx b/shopsense_seller/src/Components/Navbar/Navbar.jsx index dd65c59..24bbbf0 100644 --- a/shopsense_seller/src/Components/Navbar/Navbar.jsx +++ b/shopsense_seller/src/Components/Navbar/Navbar.jsx @@ -26,7 +26,7 @@ function Navbar() {
  • - Benefit{" "} + Benefits{" "}
  • diff --git a/shopsense_seller/src/Pages/Login/Login.jsx b/shopsense_seller/src/Pages/Login/Login.jsx index 5d0decf..3b513c0 100644 --- a/shopsense_seller/src/Pages/Login/Login.jsx +++ b/shopsense_seller/src/Pages/Login/Login.jsx @@ -35,10 +35,10 @@ function Login() { className="passwordlogin" type="password" > -
    Forget Password ?
    - +
    Forgot Password?
    +
    - Dont have an Account ?{" "} + Dont have an Account?{" "} Sign Up