From 4207626294918245d534b8ca70060ad2abe98bff Mon Sep 17 00:00:00 2001 From: EddyShimwa Date: Wed, 24 Jul 2024 12:38:05 +0200 Subject: [PATCH] user is now able to perform payments --- package-lock.json | 279 +++++++++++++++++++++++++ package.json | 7 +- src/assets/icons/Airtel.png | Bin 0 -> 5585 bytes src/assets/icons/MemberDiscount.png | Bin 0 -> 1513 bytes src/assets/icons/add.svg | 13 ++ src/assets/icons/discount.svg | 4 + src/assets/icons/masterCARD.svg | 5 + src/assets/icons/moneyReturn.png | Bin 0 -> 1607 bytes src/assets/icons/moneyReturn.svg | 13 ++ src/assets/icons/mtn-momo.jpg | Bin 0 -> 17604 bytes src/assets/icons/mtn_momo.png | Bin 0 -> 27852 bytes src/assets/icons/support.svg | 11 + src/assets/icons/supportIcon.png | Bin 0 -> 1564 bytes src/assets/icons/truck.png | Bin 0 -> 1580 bytes src/assets/icons/truck.svg | 5 + src/assets/icons/visaIcon.svg | 9 + src/components/Cart/CartCollection.tsx | 26 +++ src/features/Payments/paymentSlice.ts | 122 +++++++++++ src/pages/OrderCompletion.tsx | 197 +++++++++++++++++ src/routes/AppRoutes.tsx | 2 + 20 files changed, 689 insertions(+), 4 deletions(-) create mode 100644 src/assets/icons/Airtel.png create mode 100644 src/assets/icons/MemberDiscount.png create mode 100644 src/assets/icons/add.svg create mode 100644 src/assets/icons/discount.svg create mode 100644 src/assets/icons/masterCARD.svg create mode 100644 src/assets/icons/moneyReturn.png create mode 100644 src/assets/icons/moneyReturn.svg create mode 100644 src/assets/icons/mtn-momo.jpg create mode 100644 src/assets/icons/mtn_momo.png create mode 100644 src/assets/icons/support.svg create mode 100644 src/assets/icons/supportIcon.png create mode 100644 src/assets/icons/truck.png create mode 100644 src/assets/icons/truck.svg create mode 100644 src/assets/icons/visaIcon.svg create mode 100644 src/components/Cart/CartCollection.tsx create mode 100644 src/features/Payments/paymentSlice.ts create mode 100644 src/pages/OrderCompletion.tsx diff --git a/package-lock.json b/package-lock.json index e392542f..06c35e7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "dynamites-ecomm-fe", "version": "0.0.0", "dependencies": { + "@mui/material": "^5.16.4", "@react-jvectormap/core": "^1.0.4", "@react-jvectormap/world": "^1.1.2", "@reduxjs/toolkit": "^2.2.5", @@ -747,6 +748,28 @@ "statuses": "^2.0.1" } }, + "node_modules/@emotion/cache": { + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.0.tgz", + "integrity": "sha512-hPV345J/tH0Cwk2wnU/3PBzORQ9HeX+kQSbwI+jslzpRCHE6fSGTohswksA/Ensr8znPzwfzKZCmAM9Lmlhp7g==", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.0", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache/node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" + }, + "node_modules/@emotion/cache/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, "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", @@ -760,11 +783,26 @@ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" + }, "node_modules/@emotion/unitless": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" }, + "node_modules/@emotion/utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.0.tgz", + "integrity": "sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -2017,6 +2055,206 @@ "node": ">=18" } }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.16.4", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.4.tgz", + "integrity": "sha512-rNdHXhclwjEZnK+//3SR43YRx0VtjdHnUFhMSGYmAMJve+KiwEja/41EYh8V3pZKqF2geKyfcFUenTfDTYUR4w==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/material": { + "version": "5.16.4", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.4.tgz", + "integrity": "sha512-dBnh3/zRYgEVIS3OE4oTbujse3gifA0qLMmuUk13ywsDCbngJsdgwW5LuYeiT5pfA8PGPGSqM7mxNytYXgiMCw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/core-downloads-tracker": "^5.16.4", + "@mui/system": "^5.16.4", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.4", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.3.1", + "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.16.4", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.4.tgz", + "integrity": "sha512-ZsAm8cq31SJ37SVWLRlu02v9SRthxnfQofaiv14L5Bht51B0dz6yQEoVU/V8UduZDCCIrWkBHuReVfKhE/UuXA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.16.4", + "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.16.4", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.4.tgz", + "integrity": "sha512-0+mnkf+UiAmTVB8PZFqOhqf729Yh0Cxq29/5cA3VAyDVTRIUUQ8FXQhiAhUIbijFmM72rY80ahFPXIm4WDbzcA==", + "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.16.4", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.4.tgz", + "integrity": "sha512-ET1Ujl2/8hbsD611/mqUuNArMCGv/fIWO/f8B3ZqF5iyPHM2aS74vhTNyjytncc4i6dYwGxNk+tLa7GwjNS0/w==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.16.4", + "@mui/styled-engine": "^5.16.4", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.4", + "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.15", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.15.tgz", + "integrity": "sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.16.4", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.4.tgz", + "integrity": "sha512-nlppYwq10TBIFqp7qxY0SvbACOXeOjeVL3pOcDsK0FT8XjrEXh9/+lkg8AEIzD16z7YfiJDQjaJG2OLkE7BxNg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.12", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^18.3.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/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/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2096,6 +2334,15 @@ "url": "https://opencollective.com/unts" } }, + "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/@react-jvectormap/core": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@react-jvectormap/core/-/core-1.0.4.tgz", @@ -2854,6 +3101,14 @@ "@types/react": "*" } }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/reactcss": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/@types/reactcss/-/reactcss-1.2.12.tgz", @@ -4872,6 +5127,15 @@ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "peer": true }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "node_modules/dotenv": { "version": "16.4.5", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", @@ -10024,6 +10288,21 @@ "react-dom": ">=18" } }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, "node_modules/reactcss": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", diff --git a/package.json b/package.json index 0d92c666..d2e52ca0 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "pre-commit": "npm run lint:fix && npm run format" }, "dependencies": { + "@mui/material": "^5.16.4", "@react-jvectormap/core": "^1.0.4", "@react-jvectormap/world": "^1.1.2", "@reduxjs/toolkit": "^2.2.5", @@ -26,8 +27,6 @@ "axios": "^1.7.2", "axios-mock-adapter": "^1.22.0", "chart.js": "^4.4.3", - "chart.js": "^4.4.3", - "date-fns": "^3.6.0", "cloudinary": "^2.2.0", "cloudinary-core": "^2.13.1", "date-fns": "^3.6.0", @@ -88,6 +87,7 @@ "eslint-plugin-react": "^7.34.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.6", + "husky": "^8.0.0", "jest": "^29.7.0", "jsdom": "^24.1.0", "lint-staged": "^15.2.5", @@ -99,7 +99,6 @@ "tailwindcss": "^3.4.3", "typescript": "^5.2.2", "vite": "^5.2.0", - "vitest": "^1.6.0", - "husky": "^8.0.0" + "vitest": "^1.6.0" } } diff --git a/src/assets/icons/Airtel.png b/src/assets/icons/Airtel.png new file mode 100644 index 0000000000000000000000000000000000000000..895e29356d549361a2a8ccbbaaa6c1d294881489 GIT binary patch literal 5585 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/MemberDiscount.png b/src/assets/icons/MemberDiscount.png new file mode 100644 index 0000000000000000000000000000000000000000..6f74e16b733d5752b09d6461927873a08a4b5673 GIT binary patch literal 1513 zcmVRMbrIW+$&=35Y<%4h{}7IIQ9?Aukqr zglRU2g1(4Br9>nW*}!Q^ULv60IzluDf)&r7@!GIjtzK_7n`;sI&J~8w%GDbjXuEAJxL)#3yIgX@SK=<(J?Ck9Np!)+u zk>Mv}N{WDL-^0u<4ZQDm(Kd>KPh*TwfuSVb45g2lZRxvmyhh;}tXLqzlCvx53q_Fn zOD2RA!Kw!p&`RI+?l*Qtu^|%(gyej8NIDf;6-9Ws(Ufnm)^Tj~TrZbIe*Ur{&#Iyn zc16@iTQR?C{dm3JK7Z|XO+NZ2(tckq8S>rLx_wXNtKUx8*R9W0aQ|FZm*q@ERKl)I z@;r}rUH7Hd(}L0U&cJ(J<`=BzGzFruIan5mw61lNTKqsgDFV4h`_J>-{I5`p7w-A^ zj&_Ls^S2>;PYjd5$G4(AZFv3UTUsBfD_``J;)9CMSq~%xDt4|_S~+%6d}28pG5;=n z5^4XiUKPbNDPrqp136ifod-<`ff#bl?6h0NE=fR8srd!#Yut>&jg-?kNQP~Q)5&my zdh}}+F?(1as^2>Mp+&4)H8)bcMyLGxLQNjsZM54x+_Y3$hM~mf!VyEi_CAj~dhO7| z`gh*zZK+X33T`I3i1^l!OFTV)FCo=8$gq1%|QnN7Gd6vpXk5 z6_95+YM&4VpbBTw9o5)}4FlC8DS~RL1fuX16*EK;x>Xz1C+$69d&9H3egMVpEB(f! zYRAf1R+USmKa;+pz5;<_vr38mY4>BynWP7YJDt>(8HN)i#sOOB@s~4a6j^s5AQbnN z5!-ptsXAhBX!75#ztny6ZOt?w6+kGKqj=$}hlEA^WGAG4TB(a)e10ct4u4bteEw(U z@mLgqp?5Z|-Uxz#OHkfrJ8w9>4!!6|}58wr&p2GdgIiE$d1a%&O)<5Pf+bO-}~P z+Y%DxQm+9y2c11__j>O=t6EivBHZVTNetomtAqqQ+itYRXl|gjcZVrMS4Bt7Fr1m0 zF}bwA4JNW1cFC2hZ6kMR{b$m;r?ykmY^$lV`b`ka@+9!|+c=_o(zNF>LA9q)Eg_SM zwpv6_ydc-IGJ!yDaoVkCA+U#-J&T%`$wSV$lr-_nNI)JTxa7RpXI*3tSue{3fcDOP zAa3_uJ((fN2@x4%Ft6YVmj`W+7}(ih;d*VH$-%v|b~)&Zp}puhlA}^MWLp)+Ab9HT z(Z8+X2`O6?3<~Cy9e#yTZ9Ug9aLW|dpEi!M1NXII%=3&34TY=oDnpiFTp3M? zPml~JU^q1mLYsc}B@Tk}X;^Nl#et#9v0Z|jo?V(1IjIQ}bhm;Rm-CC~L-fkq_Zut8 P00000NkvXXu0mjfzqG|k literal 0 HcmV?d00001 diff --git a/src/assets/icons/add.svg b/src/assets/icons/add.svg new file mode 100644 index 00000000..331b67e2 --- /dev/null +++ b/src/assets/icons/add.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/assets/icons/discount.svg b/src/assets/icons/discount.svg new file mode 100644 index 00000000..b95b79d5 --- /dev/null +++ b/src/assets/icons/discount.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/masterCARD.svg b/src/assets/icons/masterCARD.svg new file mode 100644 index 00000000..56d537c3 --- /dev/null +++ b/src/assets/icons/masterCARD.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/icons/moneyReturn.png b/src/assets/icons/moneyReturn.png new file mode 100644 index 0000000000000000000000000000000000000000..efd7cd9f59cf9d423fc08e77a2d0d3cc8a108bcb GIT binary patch literal 1607 zcmV-N2Dtf&P)8wQK~#7F)mlAl z8)X=NeU4Cv=Eqwy)s-p)86ad~fJzBj3LV<0AO?myg0UzdAwk2CctGudL@GKW#T^(B zsal4LEJ;03kQiczg&~M|YO~q-k%E-?j_0}aIcNLseE0ct;yhAx-}(FQa?kg^@AJLi zPeL@~;NT#Acz8IGNF-jjEGvz_vF0|YE8$W>-3H3VYPDKSrBWr)h=gds-rn8>F4yp( z8C-`%0eH4(7)Ji+=;)pflFG!&e0@aw#F7-0PEb=S3It0|Nt-?oFLo z&00%Q-r!j2NVbYr+qS7;u?hTJuxwJiAHAGJr&P6*t7Rs6mc6bxAN2)KzOO2i;{AKK z44Ilq%8P$2`C(R{TO!u#@^4!V*5VJ3V!T6sUp8fRsT%lEL8OL;kG-F6%y($C9OeHa z71AZ9lwp*&@zHloso?s>Pkk-*ZcO=+Vuz4O7s$;Z)^aYfvUDKvfB$C6t8X`s9Dbx+ z^`wxHkn_79d8``CY6Wt(JfyGh=Ms2Or`lzG`x-!M1 z0+oFyqfJnTu%L7yIX5@=C2n334e%qizGB(q*yv>g)^NypKiVz7{H9^MCJ(RW#+< za#f}>$=Kh*Wk0?#Egiy-6vsKgIAL6U^i8r}NAjyn$8O3pNwEV|ND;95g^q~@#Z*{~ zkle^6qgEDq>jS4uQfs-YP3p#1YNQBQEEQ?ZBM4za(N5Ke}{^)+)CPi>-ioR161^AI0zhX3ybCt1M>K6n|T}pkhSRM;Fq5_v3-O^bi z5Zf&Y4$yQ{PHW!3-Cii3Z(6dAxMW=?fE$)DA1i8^w)n+dGnz@g0FeWau#nV~`;OK5 zJUu}XIb`=UHnE+ZokjTNtaN}da?PaN`ykL0_zp$uO@r8D`$@RtW9blnF-OEDMc6a* zyV2HFyr3JB6wCG08&)gm*mCt+jxx`Wi$jWV6t>TPJ|=88WI<{9tsT7Nyh6dXks!E> zK1_(|hUd=5-$kx1>!j5KhY(0Og(MK>X@_Bby8R z%#fvrQH!hTpyLsNl7-dOg`jO!)WqQd572aS(p1aQS!OHT|Ahswi2_NI;Q|ad?La6O z=UieCv=H-xM{04Qt8#9a=AmbwW+g6af&|sA7)9mc;(v6GvvL&f{iOf^002ovPDHLk FV1hBS0G + + + + + + + + + + + + diff --git a/src/assets/icons/mtn-momo.jpg b/src/assets/icons/mtn-momo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..606a810e885100feb02e33301de8db81a44c0dec GIT binary patch literal 17604 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 RZwdZ?=l`=KaQAHFe*xQY?k)fT literal 0 HcmV?d00001 diff --git a/src/assets/icons/mtn_momo.png b/src/assets/icons/mtn_momo.png new file mode 100644 index 0000000000000000000000000000000000000000..bfbef75817a8199744b671af3e5cbfac3c54ea36 GIT binary patch literal 27852 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/support.svg b/src/assets/icons/support.svg new file mode 100644 index 00000000..4c2b7bcc --- /dev/null +++ b/src/assets/icons/support.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/icons/supportIcon.png b/src/assets/icons/supportIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..be0b0e9d5b82076a241f35564abc7bbf263f9803 GIT binary patch literal 1564 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 + + + + diff --git a/src/assets/icons/visaIcon.svg b/src/assets/icons/visaIcon.svg new file mode 100644 index 00000000..16f4c63c --- /dev/null +++ b/src/assets/icons/visaIcon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/components/Cart/CartCollection.tsx b/src/components/Cart/CartCollection.tsx new file mode 100644 index 00000000..5e48d5c9 --- /dev/null +++ b/src/components/Cart/CartCollection.tsx @@ -0,0 +1,26 @@ +import React from 'react'; + +// interface CartProps { +// id: number; +// name: string; +// } + +function CartCollection() { + + return ( +
+
+ Item 1 + Item 1 + Item 1 + Item 1 +
+
+

Cart Collection

+

My saved collection for summer sales

+
+
+ ); +} + +export default CartCollection; diff --git a/src/features/Payments/paymentSlice.ts b/src/features/Payments/paymentSlice.ts new file mode 100644 index 00000000..b75fd431 --- /dev/null +++ b/src/features/Payments/paymentSlice.ts @@ -0,0 +1,122 @@ +import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit'; +import axios from 'axios'; +import { showErrorToast, showSuccessToast } from '@/utils/ToastConfig'; + +interface PaymentState { + loading: boolean; + error: string | null; +} + +const initialState: PaymentState = { + loading: false, + error: null, +}; + +interface MomoPaymentParams { + momoNumber: string; + orderId: number; +} + +export const makeMomoPayment = createAsyncThunk( + 'payment/momoPayment', + async ({ momoNumber, orderId }: MomoPaymentParams, { rejectWithValue }) => { + try { + const tokenFromStorage = localStorage.getItem('token') || ''; + const response = await axios.post( + `${import.meta.env.VITE_BASE_URL}/buyer/momoPay`, + { + momoNumber, + orderId, + }, + { + headers: { + Authorization: `Bearer ${tokenFromStorage}`, + }, + } + ); + showSuccessToast(response.data.message); + return response.data; + } catch (error) { + if (axios.isAxiosError(error)) { + console.error('Error response:', error.response); + const errorMessage = error.response?.data?.message || 'Payment failed'; + showErrorToast(errorMessage); + return rejectWithValue(error.response?.data || 'Payment failed'); + } + console.error('Unexpected error:', error); + showErrorToast('Payment failed'); + return rejectWithValue('Payment failed'); + } + } +); + +interface StripePaymentParams { + token: string; + orderId: number; +} + +export const makeStripePayment = createAsyncThunk( + 'payment/stripePayment', + async ({ token, orderId }: StripePaymentParams, { rejectWithValue }) => { + try { + const tokenFromStorage = localStorage.getItem('token') || ''; + const response = await axios.post( + `${import.meta.env.VITE_BASE_URL}/buyer/payment`, + { + token, + orderId, + }, + { + headers: { + Authorization: `Bearer ${tokenFromStorage}`, + }, + } + ); + showSuccessToast(response.data.message); + return response.data; + } catch (error) { + if (axios.isAxiosError(error)) { + console.error('Error response:', error.response); + const errorMessage = error.response?.data?.message || 'Payment failed'; + showErrorToast(errorMessage); + return rejectWithValue(error.response?.data || 'Payment failed'); + } + console.error('Unexpected error:', error); + showErrorToast('Payment failed'); + return rejectWithValue('Payment failed'); + } + } +); + +const paymentSlice = createSlice({ + name: 'payment', + initialState, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(makeMomoPayment.pending, (state) => { + state.loading = true; + state.error = null; + }) + .addCase(makeMomoPayment.fulfilled, (state) => { + state.loading = false; + }) + .addCase(makeMomoPayment.rejected, (state, action) => { + state.loading = false; + state.error = action.error.message || 'Payment failed'; + }) + .addCase(makeStripePayment.pending, (state) => { + state.loading = true; + state.error = null; + }) + .addCase(makeStripePayment.fulfilled, (state) => { + state.loading = false; + }) + .addCase(makeStripePayment.rejected, (state, action) => { + state.loading = false; + state.error = action.error.message || 'Payment failed'; + }); + }, +}); + +export default paymentSlice.reducer; diff --git a/src/pages/OrderCompletion.tsx b/src/pages/OrderCompletion.tsx new file mode 100644 index 00000000..e713b7fd --- /dev/null +++ b/src/pages/OrderCompletion.tsx @@ -0,0 +1,197 @@ +import React, { useState } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { Select, MenuItem, FormControl } from '@mui/material'; +import { AppDispatch, RootState } from '@/app/store'; // Adjust the path as necessary +import { makeMomoPayment, makeStripePayment } from '@/features/Payments/paymentSlice'; +import truck from '@/assets/icons/truck.svg'; +import moneyReturn from '@/assets/icons/moneyReturn.svg'; +import supportIcon from '@/assets/icons/support.svg'; +import discountIcon from '@/assets/icons/discount.svg'; +import visaIcon from '@/assets/icons/visaIcon.svg'; +import masterCardIcon from '@/assets/icons/masterCARD.svg'; +import airtel from '@/assets/icons/Airtel.png'; +import momo from '@/assets/icons/mtn_momo.png'; +import add from '@/assets/icons/add.svg'; +import CartCollection from '@/components/Cart/CartCollection'; +import HSButton from '@/components/form/HSButton'; + +const OrderCompletion = () => { + const [selectedPaymentMethod, setSelectedPaymentMethod] = useState('Debit Card'); + const [selectedCard, setSelectedCard] = useState('BK Bank'); + const [selectedMomoOption, setSelectedMomoOption] = useState('MTN Mobile Money'); + const dispatch = useDispatch(); + + const handlePaymentMethodChange = (event: { target: any }) => { + setSelectedPaymentMethod(event.target.value); + }; + + const handleCardChange = (event: { target: { value: React.SetStateAction } }) => { + setSelectedCard(event.target.value); + }; + + const handleMomoOptionChange = (event: { target: { value: React.SetStateAction } }) => { + setSelectedMomoOption(event.target.value); + }; + + const handlePayment = () => { + const orderId = 48; + if (selectedPaymentMethod === 'Momo Payment') { + const momoNumber = '0780609878'; + dispatch(makeMomoPayment({ momoNumber, orderId })); + } else if (selectedPaymentMethod === 'Debit Card Payment') { + const token = 'tok_visa'; + dispatch(makeStripePayment({ token, orderId })); + } + }; + + const momoOptions = [ + { value: 'MTN Mobile Money', label: 'MTN Mobile Money', icon: momo }, + { value: 'Airtel Money', label: 'Airtel Money', icon: airtel }, + ]; + + const cardOptions = [ + { value: 'BK Bank', label: 'BK Bank **** **** **** 1234', icon: visaIcon }, + { value: 'Equity Bank', label: 'Equity Bank **** **** **** 1234', icon: masterCardIcon }, + ]; + + return ( +
+
+
+

Complete your Order

+

+ You are just a few steps away to finish your order.. +

+
+ +
+
+ +
+

Free Delivery

+

Free shipping on all order

+
+
+
+ +
+

Money Return

+

Back guarantee under 7 days

+
+
+
+ +
+

Online Support 24/7

+

Support Online 24 hours a day

+
+
+
+ +
+

Member Discount

+

On every order over $ 20.00

+
+
+
+
+ +
+
+

Payment Methods

+
+ + +
+ {selectedPaymentMethod === 'Momo Payment' && ( +
+

Momo Options

+ + + +
+ )} + {selectedPaymentMethod === 'Debit Card Payment' && ( +
+

My Cards

+ + + +
+ + +
+
+ )} +
+ + +
+
+
+ +
+

Promo code

+
+ + +
+
+

Total

+

$ 200.00

+
+
+

Shipping

+

$ 200.00

+
+
+

Total Cost

+

$ 400.00

+
+ +
+
+
+
+ ); +}; + +export default OrderCompletion; diff --git a/src/routes/AppRoutes.tsx b/src/routes/AppRoutes.tsx index d95608b8..4c6dc335 100644 --- a/src/routes/AppRoutes.tsx +++ b/src/routes/AppRoutes.tsx @@ -23,6 +23,7 @@ import Cart from '@/components/Cart/Cart'; import Seller from '@/pages/Seller'; import CheckoutPage from '@/pages/Checkout'; import Aboutus from '@/components/home/Aboutus'; +import OrderCompletion from '@/pages/OrderCompletion'; function AppRoutes() { return ( @@ -44,6 +45,7 @@ function AppRoutes() { } /> } /> } /> + } /> } /> } />