From 834748a7bb5a0d27c41e128275d9617781870d80 Mon Sep 17 00:00:00 2001 From: Anwesha Das <116761608+anwesha2002@users.noreply.github.com> Date: Thu, 16 May 2024 02:23:49 -0400 Subject: [PATCH] Feat/my account (#128) * My_Account_form_feature_added * refac:storing data in firebase storage of user * for edit feature added * refac:some UI of MY_Account feature * refac:some bug fix about conflict * refac:bug fix of deployment issue * Merge Dev to main (#146) * rectified all the css error except about page (#114) * proceed fixed (#115) * rectified all the css error except about page (#116) * Update greetings.yaml * Create Contributing.md (#122) * Rename create contributing.md to contributing.md * Forgot password (#134) * added forget password feature * reverted changes made to the package.json * made a change in the reset password folder * Main page groceries, electronics, fashion buttons Not Working Fixed (#137) * New branch * Issue fixed * Fix issue 72 (#143) * rectified all the css error except about page * Updated Footer --------- Co-authored-by: MAVRICK * Added pre-commit hooks (#118) * Added pre-commit hooks Description: pre-commit hooks added using husky and lint-staged is used which will run on every commit * Added prettier Prettier configurations are added and prettier configured to work with pre-commit hooks and lint-staged * Try formatting with prettier and pre-commit hook * Try formatting with prettier and pre-commit hook 2 * Docs: after adding pre-commit hooks did the necessary documentation update in README.md * Update App.js to resolve merge conflict * Update App.js to resolve deployment failure deployment was failing because it couldn't find ResetPassword * Revert "Added prettier" This reverts commit 558218cb67432605da876e0cddaa1ed7bf2966a0. * Reapply "Added prettier" This reverts commit 5775c977e708a4dfd4e4dc84103996f706bed5c6. * Revert "Update App.js to resolve deployment failure" This reverts commit b9c90f6fe357d015fa57c956dc68955d31b71e73. * Revert "Update App.js to resolve merge conflict" This reverts commit aaa78c0673582f1bbeed9f51749eeb23e7eab7f7. * Update nav.js to resolve merge conflict in nav.js * Revert "Update nav.js to resolve merge conflict in nav.js" This reverts commit 82d8bfb61fda8a2a50dca491b59adb28897bdfec. * Update App.js to resolve merge conflict in App.js * Update footer.js to resolve merge conflict in footer.js * Update nav.js to resolve merge conflict in nav.js --------- Co-authored-by: Hemanth kumar Co-authored-by: deekshithapalla <159523774+deekshithapalla@users.noreply.github.com> Co-authored-by: Niharika Goulikar <124892559+Niharika0104@users.noreply.github.com> Co-authored-by: Adarsh <120160355+jinx-vi-0@users.noreply.github.com> Co-authored-by: Avdhut Pailwan <74597375+AvdhutPailwan@users.noreply.github.com> * refac:feature_fix/user primary key to uid,default photo, name, email in user firebase , if the user logged in from Google * refac:conflict resolved --------- Co-authored-by: anwesha Co-authored-by: Rishi Mondal <146999057+MAVRICK-1@users.noreply.github.com> Co-authored-by: Hemanth kumar Co-authored-by: deekshithapalla <159523774+deekshithapalla@users.noreply.github.com> Co-authored-by: Niharika Goulikar <124892559+Niharika0104@users.noreply.github.com> Co-authored-by: Adarsh <120160355+jinx-vi-0@users.noreply.github.com> Co-authored-by: Avdhut Pailwan <74597375+AvdhutPailwan@users.noreply.github.com> --- .idea/.gitignore | 5 + .idea/e-commerce_website.iml | 12 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + package-lock.json | 695 +++++++++++++++++++++- package.json | 3 + src/App.js | 103 ++-- src/Model/useModel.js | 0 src/assets/images/pfp.jpg | Bin 0 -> 3902 bytes src/components/AccountDetails/Account.css | 25 + src/components/AccountDetails/Account.js | 279 +++++++++ src/components/footer/footer.js | 511 +++++++++------- src/components/header/header.js | 11 +- src/components/header/nav/nav.js | 393 +++++++----- src/pages/About/about.css | 2 +- src/pages/About/index.js | 2 +- src/pages/ResetPassword/index.js | 147 ++--- src/pages/ResetPassword/style.css | 30 +- src/pages/SignIn/index.js | 15 +- src/pages/wishList/index.js | 1 - yarn.lock | 2 +- 21 files changed, 1700 insertions(+), 550 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/e-commerce_website.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 src/Model/useModel.js create mode 100644 src/assets/images/pfp.jpg create mode 100644 src/components/AccountDetails/Account.css create mode 100644 src/components/AccountDetails/Account.js diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/e-commerce_website.iml b/.idea/e-commerce_website.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/e-commerce_website.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..281a9e2 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1050c23..ba53996 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,9 +24,11 @@ "custom-react-inner-image-zoom": "^3.0.6", "firebase": "^10.8.0", "leaflet": "^1.9.4", + "nanoid": "^5.0.7", "react": "^18.2.0", "react-bootstrap": "^2.10.0", "react-dom": "^18.2.0", + "react-hook-form": "^7.51.4", "react-image-zoom": "^1.3.1", "react-inner-image-zoom": "^3.0.2", "react-lazy-load-image-component": "^1.6.0", @@ -39,6 +41,7 @@ "reactjs-image-zoom": "^1.0.8", "rn-range-slider": "^2.2.2", "styled-components": "^5.3.11", + "uuidv4": "^6.2.13", "web-vitals": "^2.1.4" }, "devDependencies": { @@ -46,6 +49,8 @@ "@babel/plugin-transform-private-property-in-object": "^7.24.5", "@babel/preset-react": "^7.24.1", "eslint-plugin-react": "^7.34.1", + "husky": "^9.0.11", + "lint-staged": "^15.2.2", "prettier": "3.0.1" } }, @@ -5788,6 +5793,11 @@ "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" + }, "node_modules/@types/warning": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz", @@ -7443,6 +7453,87 @@ "node": ">=0.10.0" } }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -10339,6 +10430,18 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -10927,6 +11030,21 @@ "node": ">=10.17.0" } }, + "node_modules/husky": { + "version": "9.0.11", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz", + "integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==", + "dev": true, + "bin": { + "husky": "bin.mjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -13941,6 +14059,308 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "node_modules/lint-staged": { + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz", + "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==", + "dev": true, + "dependencies": { + "chalk": "5.3.0", + "commander": "11.1.0", + "debug": "4.3.4", + "execa": "8.0.1", + "lilconfig": "3.0.0", + "listr2": "8.0.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.4" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/lint-staged/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/lint-staged/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/lint-staged/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/listr2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz", + "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==", + "dev": true, + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.0.0", + "rfdc": "^1.3.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -14016,6 +14436,147 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, + "node_modules/log-update": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", + "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", + "dev": true, + "dependencies": { + "ansi-escapes": "^6.2.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^7.0.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/long": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", @@ -14317,9 +14878,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", "funding": [ { "type": "github", @@ -14327,10 +14888,10 @@ } ], "bin": { - "nanoid": "bin/nanoid.cjs" + "nanoid": "bin/nanoid.js" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^18 || >=20" } }, "node_modules/natural-compare": { @@ -14847,6 +15408,18 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -16253,6 +16826,23 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -16721,6 +17311,21 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "node_modules/react-hook-form": { + "version": "7.51.4", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.4.tgz", + "integrity": "sha512-V14i8SEkh+V1gs6YtD0hdHYnoL4tp/HX/A45wWQN15CYr9bFRmmRdYStSO5L65lCCZRF+kYiSKhm9alqbcdiVA==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, "node_modules/react-image-zoom": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/react-image-zoom/-/react-image-zoom-1.3.1.tgz", @@ -17375,6 +17980,22 @@ "node": ">=10" } }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -17392,6 +18013,12 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -17946,6 +18573,46 @@ "node": ">=8" } }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -18134,6 +18801,15 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, "node_modules/string-convert": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", @@ -19171,6 +19847,15 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/uuidv4": { + "version": "6.2.13", + "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz", + "integrity": "sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ==", + "dependencies": { + "@types/uuid": "8.3.4", + "uuid": "8.3.2" + } + }, "node_modules/v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", diff --git a/package.json b/package.json index 3e12305..633626c 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,11 @@ "custom-react-inner-image-zoom": "^3.0.6", "firebase": "^10.8.0", "leaflet": "^1.9.4", + "nanoid": "^5.0.7", "react": "^18.2.0", "react-bootstrap": "^2.10.0", "react-dom": "^18.2.0", + "react-hook-form": "^7.51.4", "react-image-zoom": "^1.3.1", "react-inner-image-zoom": "^3.0.2", "react-lazy-load-image-component": "^1.6.0", @@ -33,6 +35,7 @@ "reactjs-image-zoom": "^1.0.8", "rn-range-slider": "^2.2.2", "styled-components": "^5.3.11", + "uuidv4": "^6.2.13", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/src/App.js b/src/App.js index 0bd857c..b041e57 100644 --- a/src/App.js +++ b/src/App.js @@ -1,33 +1,30 @@ -import "bootstrap/dist/css/bootstrap.min.css"; -import { - getDatabase, - onValue, - ref -} from "firebase/database"; -import React, { createContext, useEffect, useState } from "react"; -import { HashRouter, Route, Routes } from "react-router-dom"; -import "./App.css"; -import Loader from "./assets/images/loading.gif"; -import Footer from "./components/footer/footer"; -import Header from "./components/header/header"; -import About from "./pages/About"; -import AddProductForm from "./pages/AddProd"; -import DetailsPage from "./pages/Details"; -import Home from "./pages/Home/index"; -import Listing from "./pages/Listing"; -import NotFound from "./pages/NotFound"; -import SignIn from "./pages/SignIn"; -import SignUp from "./pages/SignUp"; -import ResetPassword from "./pages/ResetPassword"; -import Cart from "./pages/cart"; -import Wishlist from "./pages/wishList"; -import "./responsive.css"; +import 'bootstrap/dist/css/bootstrap.min.css'; +import { getDatabase, onValue, ref } from 'firebase/database'; +import React, { createContext, useEffect, useState } from 'react'; +import { HashRouter, Route, Routes } from 'react-router-dom'; +import './App.css'; +import Loader from './assets/images/loading.gif'; +import Footer from './components/footer/footer'; +import Header from './components/header/header'; +import About from './pages/About'; +import AddProductForm from './pages/AddProd'; +import DetailsPage from './pages/Details'; +import Home from './pages/Home/index'; +import Listing from './pages/Listing'; +import NotFound from './pages/NotFound'; +import SignIn from './pages/SignIn'; +import SignUp from './pages/SignUp'; +import ResetPassword from './pages/ResetPassword'; +import Cart from './pages/cart'; +import Wishlist from './pages/wishList'; +import './responsive.css'; // import data from './data'; -import { collection, doc, getDocs } from "firebase/firestore"; -import MapComponent from "./components/map/ITEMmap"; -import { db } from "./firebase"; -import SellerForm from "./pages/SellerRegistration"; +import { collection, doc, getDocs } from 'firebase/firestore'; +import MapComponent from './components/map/ITEMmap'; +import { db } from './firebase'; +import SellerForm from './pages/SellerRegistration'; +import { Account } from './components/AccountDetails/Account'; const MyContext = createContext(); @@ -58,8 +55,8 @@ function App() { const fetchCartProducts = async () => { try { - const cartRef = doc(db, "carts", localStorage.getItem("uid")); - const productsCollectionRef = collection(cartRef, "products"); + const cartRef = doc(db, 'carts', localStorage.getItem('uid')); + const productsCollectionRef = collection(cartRef, 'products'); const querySnapshot = await getDocs(productsCollectionRef); const products = []; querySnapshot.forEach((doc) => { @@ -68,14 +65,14 @@ function App() { setCartItems(products); setCartCount(products.length); // Set the product count } catch (error) { - console.error("Error fetching cart products:", error); + console.error('Error fetching cart products:', error); } }; const fetchWishlistProducts = async () => { try { - const wishlistRef = doc(db, "wishlists", localStorage.getItem("uid")); - const productsCollectionRef = collection(wishlistRef, "products"); + const wishlistRef = doc(db, 'wishlists', localStorage.getItem('uid')); + const productsCollectionRef = collection(wishlistRef, 'products'); const querySnapshot = await getDocs(productsCollectionRef); const products = []; querySnapshot.forEach((doc) => { @@ -84,7 +81,7 @@ function App() { setWishlistItems(products); setWishlistCount(products.length); // Set the product count } catch (error) { - console.error("Error fetching wishlist products:", error); + console.error('Error fetching wishlist products:', error); } }; @@ -92,15 +89,15 @@ function App() { const fetchData = async () => { try { const response = await fetch( - "https://mavrick-1.github.io/DataApi/data.json" + 'https://mavrick-1.github.io/DataApi/data.json' ); if (!response.ok) { - throw new Error("Network response was not ok"); + throw new Error('Network response was not ok'); } const data = await response.json(); setData(data); } catch (error) { - console.error("Error fetching data:", error); + console.error('Error fetching data:', error); } }; @@ -110,7 +107,7 @@ function App() { useEffect(() => { getData(); - const is_Login = localStorage.getItem("isLogin"); + const is_Login = localStorage.getItem('isLogin'); setIsLogin(is_Login); setTimeout(() => { @@ -125,7 +122,7 @@ function App() { const db = getDatabase(); // Reference to the node or path you want to fetch data from - const dataRef = ref(db, localStorage.getItem("user")); + const dataRef = ref(db, localStorage.getItem('user')); // Fetch data from the specified path onValue( @@ -135,11 +132,11 @@ function App() { setCartItems(data); }, (error) => { - console.error("Error fetching data:", error); + console.error('Error fetching data:', error); } ); } catch (error) { - console.error("Error:", error); + console.error('Error:', error); } }; @@ -149,7 +146,7 @@ function App() { const db = getDatabase(); // Reference to the node or path you want to fetch data from - const dataRef = ref(db, localStorage.getItem("user")); + const dataRef = ref(db, localStorage.getItem('user')); // Fetch data from the specified path onValue( @@ -159,17 +156,17 @@ function App() { setCartItems(data); }, (error) => { - console.error("Error fetching data:", error); + console.error('Error fetching data:', error); } ); } catch (error) { - console.error("Error:", error); + console.error('Error:', error); } }; const addToCart = async (item) => { try { - const user = localStorage.getItem("user"); + const user = localStorage.getItem('user'); // Initialize Firebase database with the provided database URL const db = getDatabase(); const cartRef = ref(db, user); @@ -178,7 +175,7 @@ function App() { // Add item to the cart in Firebase setCartItems([...cartItems, { ...item, quantity: 1 }]); } catch (error) { - console.error("Error adding item to cart:", error); + console.error('Error adding item to cart:', error); } }; @@ -192,12 +189,12 @@ function App() { }; const signIn = () => { - const is_Login = localStorage.getItem("isLogin"); + const is_Login = localStorage.getItem('isLogin'); setIsLogin(is_Login); }; const signOut = () => { - localStorage.removeItem("isLogin"); + localStorage.removeItem('isLogin'); setIsLogin(false); }; @@ -223,7 +220,7 @@ function App() { wishlistCount, setWishlistCount, fetchCartProducts, - fetchWishlistProducts, + fetchWishlistProducts }; return data && data.productData ? ( @@ -261,13 +258,18 @@ function App() { /> } /> } /> + } /> {/* sign in , signup Protection */} {isLogin === null && ( } /> )} {isLogin === null && ( - } /> + } + /> )} {isLogin === null && ( } /> @@ -294,4 +296,3 @@ function App() { export default App; export { MyContext }; - diff --git a/src/Model/useModel.js b/src/Model/useModel.js new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/images/pfp.jpg b/src/assets/images/pfp.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e719cb8b6fa585940a4b25aca20cbe3c3707fb91 GIT binary patch literal 3902 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 { + (async () => { + const docref = doc(db, 'users', `${user_uid ? user_uid : nanoid()}`); + const docSnap = await getDoc(docref); + if (docSnap.exists()) { + setName(docSnap.data().Name); + setEmail(docSnap.data().Email); + setAddress(docSnap.data().Address); + setFile(docSnap.data().photo); + } else { + console.log(null); + } + })(); + }, []); + + function handlehistory() { + navigate('/'); + } + + function Onsubmit(e) { + e.preventDefault(); + const collectionRef = collection(db, 'users'); + + const querySnapshot = getDocs(collectionRef); + + // return updateUser(name, email, address, file) + + querySnapshot.then((doc) => { + console.log(doc.docs.includes(user_uid)); + if (doc.docs.includes(user_uid)) { + return updateUser(name, email, address, file); + } else { + return addUser(name, email, address, file); + } + }); + } + + const addUser = async (name, email, address, file) => { + try { + const imageRef = ref( + storage, + `AccountImage/${localStorage.getItem('uid')}` + ); + await uploadBytes(imageRef, file); + const imageUrl = await getDownloadURL(imageRef); + await setDoc(doc(db, 'users', `${user_uid}`), { + Name: name, + Email: email, + Address: address, + photo: imageUrl + }); + setFile(imageUrl); + } catch (error) { + console.log(error); + } + }; + + const updateUser = async (name, email, address, file) => { + try { + const imageRef = ref( + storage, + `AccountImage/${localStorage.getItem('uid')}` + ); + await uploadBytes(imageRef, file); + + const imageUrl = await getDownloadURL(imageRef); + + console.log(imageUrl); + console.log(name); + console.log(email); + console.log(address); + + await updateDoc(doc(db, 'users', `${user_uid}`), { + Name: name, + Email: email, + Address: address, + photo: imageUrl + }); + } catch (err) { + console.log(err); + } + }; + + return ( + <> +

+

+ + My Account +

+ + +
+ + + + + {userImage !== '' ? ( + + ) : ( +
+ + setFile(e.target.files[0])} + /> +
+ )} + + + + +

{name}

+ + +

{email}

+ +
+ + {address} + + + +
+
+
+
+ + +

Personal

+
+ +
+ + Name + { + setName(e.target.value); + }} + value={name} + required={true} + isInvalid={!!errors.name} + /> + + {errors.name?.message} + + + + Email + { + setEmail(e.target.value); + }} + isInvalid={!!errors.email} + /> + + {errors.email?.message} + + + + Address + { + setAddress(e.target.value); + }} + isInvalid={!!errors.address} + /> + + {errors.address?.message} + + +
+
+
+ + + +
+
+ + ); +} diff --git a/src/components/footer/footer.js b/src/components/footer/footer.js index 5b43bc9..cb4a40c 100644 --- a/src/components/footer/footer.js +++ b/src/components/footer/footer.js @@ -2,10 +2,10 @@ import React from 'react'; import './footer.css'; import Icon1 from '../../assets/images/icon-1.svg'; -import Icon2 from '../../assets/images/icon-2.svg' -import Icon3 from '../../assets/images/icon-3.svg' -import Icon4 from '../../assets/images/icon-4.svg' -import Icon5 from '../../assets/images/icon-5.svg' +import Icon2 from '../../assets/images/icon-2.svg'; +import Icon3 from '../../assets/images/icon-3.svg'; +import Icon4 from '../../assets/images/icon-4.svg'; +import Icon5 from '../../assets/images/icon-5.svg'; import Logo from '../../assets/images/logo.svg'; import { Link } from 'react-router-dom'; import LocationOnOutlinedIcon from '@mui/icons-material/LocationOnOutlined'; @@ -24,230 +24,297 @@ import Newsletter from '../../components/newsletter/index'; import NewsletterImg from '../../assets/images/newsletter.png'; const Footer = () => { - const currentYear = new Date().getFullYear(); - return ( - <> - -
-
-
-
-

Stay home & get your daily
needs from our shop

-

Start You'r Daily Shopping with Nest Mart

-

- -
- -
- -
-
+ const currentYear = new Date().getFullYear(); + return ( + <> +
+
+
+
+

+ Stay home & get your daily
+ needs from our shop +

+

Start You'r Daily Shopping with Nest Mart

+
+
+ +
+ +
+ +
+
+
+
+ +
+
+
+
+
+
+ + + +
+

Best prices & offers

+

Orders $50 or more

+
-
- -
-
-
-
-
-
- -
-

Best prices & offers

-

Orders $50 or more

-
-
-
- -
-
- -
-

Free delivery

-

Orders $50 or more

-
-
-
- -
-
- -
-

Great daily deal

-

Orders $50 or more

-
-
-
- - -
-
- -
-

Wide assortment

-

Orders $50 or more

-
-
-
- - -
-
- -
-

Easy returns

-

Orders $50 or more

-
-
-
- -
-
+
+ +
+
+ + + +
+

Free delivery

+

Orders $50 or more

+
+
+
+ +
+
+ + + +
+

Great daily deal

+

Orders $50 or more

+
+
+
+ +
+
+ + + +
+

Wide assortment

+

Orders $50 or more

+
+
+
+ +
+
+ + + +
+

Easy returns

+

Orders $50 or more

+
+
+
+
+ + + +
+
+
+
+ + + +
+
+

Awesome grocery store website template

+
+ +

+ Address: 5171 W + Campbell Ave undefined Kent, Utah 53127 United States +

+

+ Call Us: (+91) - + 540-025-124553{' '} +

+

+ Email: sale@Nest.com +

+

+ Hours: 10:00 - + 18:00, Mon - Sat +

+
+ +
+
+
+

Company

+
    +
  • + About Us +
  • +
  • + Delivery Information +
  • +
  • + Privacy Policy +
  • +
  • + Terms & Conditions +
  • +
  • + Contact Us +
  • +
  • + Support Center +
  • +
  • + Careers +
  • +
+
+ +
+

Corporate

+
    +
  • + About Us +
  • +
  • + Delivery Information +
  • +
  • + Privacy Policy +
  • +
  • + Terms & Conditions +
  • +
  • + Contact Us +
  • +
  • + Support Center +
  • +
  • + Careers +
  • +
+
+ +
+

Popular

+
    +
  • + About Us +
  • +
  • + Delivery Information +
  • +
  • + Privacy Policy +
  • +
  • + Terms & Conditions +
  • +
  • + Contact Us +
  • +
  • + Support Center +
  • +
  • + Careers +
  • +
+
+
+
+ +
+

Install App

+
+

From App Store or Google Play

+ +
+ + + + + +
+
-
-
-
-
- -

-

Awesome grocery store website template

-
- -

Address: 5171 W Campbell Ave undefined Kent, Utah 53127 United States

-

Call Us: (+91) - 540-025-124553

-

Email: sale@Nest.com

-

Hours: 10:00 - 18:00, Mon - Sat

- -
- - -
-
-
-

Company

-
    -
  • About Us
  • -
  • Delivery Information
  • -
  • Privacy Policy
  • -
  • Terms & Conditions
  • -
  • Contact Us
  • -
  • Support Center
  • -
  • Careers
  • -
-
- - -
-

Corporate

-
    -
  • About Us
  • -
  • Delivery Information
  • -
  • Privacy Policy
  • -
  • Terms & Conditions
  • -
  • Contact Us
  • -
  • Support Center
  • -
  • Careers
  • -
-
- - -
-

Popular

-
    -
  • About Us
  • -
  • Delivery Information
  • -
  • Privacy Policy
  • -
  • Terms & Conditions
  • -
  • Contact Us
  • -
  • Support Center
  • -
  • Careers
  • -
-
-
-
- - -
-

Install App

-
-

From App Store or Google Play

- -
- - -
- -
- -

Secured Payment Gateways

- -
- -
- - -
- - - -
-
-

© {currentYear}, Nest - HTML Ecommerce Template

-

All rights reserved

-
- -
-
-
- -
-

1900 - 888

-

24/7 Support Center

-
-
- -
- -
-

1900 - 888

-

24/7 Support Center

-
-
-
-
- - -
-
-
Follow Us
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • - -
-
-
-
+

Secured Payment Gateways

+ +
+
+
+ +
+
+

© {currentYear}, Nest - HTML Ecommerce Template

+

All rights reserved

+
+ +
+
+
+ + + +
+

1900 - 888

+

24/7 Support Center

-
- - + + +
+ + + +
+

1900 - 888

+

24/7 Support Center

+
+
+ + + +
+
+
Follow Us
+
    +
  • + + + +
  • +
  • + + + +
  • +
  • + + + +
  • +
  • + + + +
  • +
+
+
- - ) -} + + + + + ); +}; export default Footer; diff --git a/src/components/header/header.js b/src/components/header/header.js index bdeef78..167032f 100644 --- a/src/components/header/header.js +++ b/src/components/header/header.js @@ -63,6 +63,8 @@ const Header = (props) => { 'Fresh Seafood' ]); + const navigate = useNavigate(); + const countryList = []; useEffect(() => { @@ -129,6 +131,10 @@ const Header = (props) => { context.setIsopenNavigation(false); }; + const handleAccountClick = () => { + navigate('/account'); + }; + return ( <>
@@ -321,7 +327,10 @@ const Header = (props) => { {isOpenDropDown !== false && (
  • -
  • diff --git a/src/components/header/nav/nav.js b/src/components/header/nav/nav.js index 9ae3a64..20f8ca4 100644 --- a/src/components/header/nav/nav.js +++ b/src/components/header/nav/nav.js @@ -10,141 +10,203 @@ import { MyContext } from '../../../App'; import { useSelector } from 'react-redux'; const Nav = (props) => { + const logged = useSelector((state) => state.authReducer.value.isAuth); - const logged = useSelector((state)=>state.authReducer.value.isAuth) - - const [navData, setNavData] = useState([]); - const [isOpenNav, setIsOpenNav] = useState(false); - const [windowWidth, setWindowWidth] = useState(window.innerWidth); - const [openDropdownMenu, setDropdownMenu] = useState(false); - const [openDropdownMenuIndex, setDropdownMenuIndex] = useState(null); - - const [openMegaMenu, setOpenMegaMenu] = useState(false); - const context = useContext(MyContext); - - useEffect(() => { - setNavData(props.data); - }, []); - - useEffect(() => { - setIsOpenNav(props.openNav) - }, [props.openNav]) - - - const closeNav=()=>{ - props.closeNav(); - } - - const openDropdownFun=(index)=>{ - setDropdownMenu(!openDropdownMenu) - setDropdownMenuIndex(index) - } - - return ( - <> - { - isOpenNav === true &&
    - } -
    -
    -
    -
    - -
    + const [navData, setNavData] = useState([]); + const [isOpenNav, setIsOpenNav] = useState(false); + const [windowWidth, setWindowWidth] = useState(window.innerWidth); + const [openDropdownMenu, setDropdownMenu] = useState(false); + const [openDropdownMenuIndex, setDropdownMenuIndex] = useState(null); -
    -
- -
+ {windowWidth < 992 && ( + <> + {context.isLogin !== 'true' && ( +
+
+ + + +
+ )} + + )} + + -
-
- -
-

1900 - 888

-

24/7 Support Center

-
-
-
- +
+
+ + + +
+

1900 - 888

+

24/7 Support Center

+
- - ) -} + + + + + ); +}; export default Nav; diff --git a/src/pages/About/about.css b/src/pages/About/about.css index 360bbe1..3684ebb 100644 --- a/src/pages/About/about.css +++ b/src/pages/About/about.css @@ -196,4 +196,4 @@ width: 120px; height: 120px; } -} \ No newline at end of file +} diff --git a/src/pages/About/index.js b/src/pages/About/index.js index 77a81f8..03d42d4 100644 --- a/src/pages/About/index.js +++ b/src/pages/About/index.js @@ -75,4 +75,4 @@ function Tes() { ); } -export default Tes; \ No newline at end of file +export default Tes; diff --git a/src/pages/ResetPassword/index.js b/src/pages/ResetPassword/index.js index 4083aa2..dbbe586 100644 --- a/src/pages/ResetPassword/index.js +++ b/src/pages/ResetPassword/index.js @@ -1,44 +1,41 @@ -import React, { useState, useContext } from "react"; -import { Link, useNavigate } from "react-router-dom"; -import "./style.css"; -import { collection, doc, setDoc ,getDocs} from "firebase/firestore"; - - -import Box from "@mui/material/Box"; -import TextField from "@mui/material/TextField"; -import VisibilityOutlinedIcon from "@mui/icons-material/VisibilityOutlined"; -import VisibilityOffOutlinedIcon from "@mui/icons-material/VisibilityOffOutlined"; -import { Button, Snackbar, Typography } from "@mui/material"; +import React, { useState, useContext } from 'react'; +import { Link, useNavigate } from 'react-router-dom'; +import './style.css'; +import { collection, doc, setDoc, getDocs } from 'firebase/firestore'; + +import Box from '@mui/material/Box'; +import TextField from '@mui/material/TextField'; +import VisibilityOutlinedIcon from '@mui/icons-material/VisibilityOutlined'; +import VisibilityOffOutlinedIcon from '@mui/icons-material/VisibilityOffOutlined'; +import { Button, Snackbar, Typography } from '@mui/material'; import { getAuth, - signInWithEmailAndPassword, GoogleAuthProvider, signInWithPopup, fetchSignInMethodsForEmail, - sendPasswordResetEmail, -} from "firebase/auth"; -import { app,db } from "../../firebase"; -import Backdrop from "@mui/material/Backdrop"; -import CircularProgress from "@mui/material/CircularProgress"; -import { MyContext } from "../../App"; -import GoogleImg from "../../assets/images/google.png"; -import useLoggedInUserEmail from "../../Hooks/useLoggedInUserEmail"; -import { useDispatch } from "react-redux"; -import { logIn } from "../../Redux/auth-slice"; + sendPasswordResetEmail +} from 'firebase/auth'; +import { app, db } from '../../firebase'; +import Backdrop from '@mui/material/Backdrop'; +import CircularProgress from '@mui/material/CircularProgress'; +import { MyContext } from '../../App'; +import GoogleImg from '../../assets/images/google.png'; +import useLoggedInUserEmail from '../../Hooks/useLoggedInUserEmail'; +import { useDispatch } from 'react-redux'; +import { logIn } from '../../Redux/auth-slice'; const auth = getAuth(app); const googleProvider = new GoogleAuthProvider(); const SignIn = () => { - const [showLoader, setShowLoader] = useState(false); const [mssg, setmssg] = useState(); const [formFields, setFormFields] = useState({ - email: "", - password: "", + email: '', + password: '' }); - const [error, setError] = useState(""); + const [error, setError] = useState(''); const context = useContext(MyContext); const history = useNavigate(); const [snackbarOpen, setSnackbarOpen] = useState(false); @@ -46,19 +43,14 @@ const SignIn = () => { const [isDisabled, setIsDisabled] = useState(true); const [inputErrors, setInputErrors] = useState({ - email: "", - + email: '' }); - - - - const dispatch = useDispatch() - + const dispatch = useDispatch(); function replaceSpecialCharacters(inputString) { // Use a regular expression to replace special characters with underscore _ - const replacedString = inputString.replace(/[#$\[\].]/g, "_"); + const replacedString = inputString.replace(/[#$\[\].]/g, '_'); return replacedString; } @@ -69,63 +61,62 @@ const SignIn = () => { }; // Password validation function - + const onChangeField = (e) => { const name = e.target.name; const value = e.target.value; - setFormFields((prevFormFields) => ({ ...prevFormFields, - [name]: value, + [name]: value })); - + let errors = { ...inputErrors }; // Validate email - - errors.email = ""; -setInputErrors(errors) - }; - + errors.email = ''; + setInputErrors(errors); + }; const forgotPassword = async (e) => { e.preventDefault(); let errors = { ...inputErrors }; // Validate email - console.log(formFields.email) - errors.email = !validateEmail(formFields.email) ? "Invalid email address" : ""; - setInputErrors(errors) - if(!validateEmail(formFields.email)){ - - setmssg("Invalid email address") - return; - } - - let signInMethods = await fetchSignInMethodsForEmail(auth, formFields.email); - console.log(signInMethods,"count") - - try{ - const email = formFields.email; - const res=await sendPasswordResetEmail( auth,email); - console.log(res) + console.log(formFields.email); + errors.email = !validateEmail(formFields.email) + ? 'Invalid email address' + : ''; + setInputErrors(errors); + if (!validateEmail(formFields.email)) { + setmssg('Invalid email address'); + return; + } + + let signInMethods = await fetchSignInMethodsForEmail( + auth, + formFields.email + ); + console.log(signInMethods, 'count'); + + try { + const email = formFields.email; + const res = await sendPasswordResetEmail(auth, email); + console.log(res); setSnackbarOpen(true); - formFields.email="" - - setmssg("Password reset mail has been sent!") - - - } - catch{(error) => { - console.log(error) - setmssg("some error has occured!") - - setError(error.message); - }} -} + formFields.email = ''; + setmssg('Password reset mail has been sent!'); + } catch { + (error) => { + console.log(error); + setmssg('some error has occured!'); + + setError(error.message); + }; + } + }; const handleCloseSnackbar = () => { setSnackbarOpen(false); @@ -148,7 +139,7 @@ setInputErrors(errors)
theme.zIndex.drawer + 1 }} + sx={{ color: '#000', zIndex: (theme) => theme.zIndex.drawer + 1 }} open={showLoader} className="formLoader" > @@ -172,29 +163,21 @@ setInputErrors(errors) {inputErrors.email && ( {inputErrors.email} )}
- -
- - - - -
diff --git a/src/pages/ResetPassword/style.css b/src/pages/ResetPassword/style.css index 774c120..337fd0d 100644 --- a/src/pages/ResetPassword/style.css +++ b/src/pages/ResetPassword/style.css @@ -1,4 +1,4 @@ -*{ +* { box-sizing: border-box; } .loginWrapper { @@ -66,17 +66,17 @@ } @media (max-width: 586px) { - .loginWrapper { - padding: 75px 0px; - background: #f1f1f1; - height: auto; - } - .loginWrapper .card { - width: 650px; - margin: auto; - height: auto; - padding: 40px; - border: 0px !important; - height: auto; - } -} \ No newline at end of file + .loginWrapper { + padding: 75px 0px; + background: #f1f1f1; + height: auto; + } + .loginWrapper .card { + width: 650px; + margin: auto; + height: auto; + padding: 40px; + border: 0px !important; + height: auto; + } +} diff --git a/src/pages/SignIn/index.js b/src/pages/SignIn/index.js index fe94abe..ae33150 100644 --- a/src/pages/SignIn/index.js +++ b/src/pages/SignIn/index.js @@ -145,7 +145,7 @@ const SignIn = () => { }; const forgotPassword = async () => { - history("/resetpassword") + history('/resetpassword'); }; const handleCloseSnackbar = () => { setSnackbarOpen(false); @@ -239,10 +239,13 @@ const SignIn = () => { )}
- -
+ +
- -

Don't have an account?{' '} diff --git a/src/pages/wishList/index.js b/src/pages/wishList/index.js index bdc8c4a..7af0948 100644 --- a/src/pages/wishList/index.js +++ b/src/pages/wishList/index.js @@ -32,7 +32,6 @@ const WishList = () => { const navigate = useNavigate(); const [uid, setUid] = useState(localStorage.getItem('uid')); - useEffect(() => { try { if (context.isLogin === 'true') { diff --git a/yarn.lock b/yarn.lock index b0bd030..c34a78c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11197,4 +11197,4 @@ yargs@^17.7.2: yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== \ No newline at end of file