diff --git a/frontend/.eslintcache b/frontend/.eslintcache index af65bd4..0d1d0c3 100644 --- a/frontend/.eslintcache +++ b/frontend/.eslintcache @@ -1 +1 @@ -[{"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\index.js":"1","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\reportWebVitals.js":"2","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\App.js":"3","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\store.js":"4","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Footer.js":"5","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Header.js":"6","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\HomeScreen.js":"7","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ShippingScreen.js":"8","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ProductScreen.js":"9","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\LoginScreen.js":"10","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\RegisterScreen.js":"11","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\PaymentMethod.js":"12","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\CartScreen.js":"13","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\PlaceOrderScreen.js":"14","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ProfileScreen.js":"15","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\OrderScreen.js":"16","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\cart.js":"17","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\productLists.js":"18","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\productDetails.js":"19","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\user.js":"20","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\order.js":"21","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Loader.js":"22","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Products.js":"23","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CheckoutStepper.js":"24","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\header.js":"25","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\productListAction.js":"26","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\userAction.js":"27","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\cartAction.js":"28","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\orderAction.js":"29","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\PlaceOrderScreen.js":"30","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\ProfileScreen.js":"31","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\orderConstants.js":"32","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\userConstants.js":"33","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\productListConstants.js":"34","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\productDetailsConstants.js":"35","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\cartConstants.js":"36","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Rating.js":"37","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\CheckoutStepper\\StepIcon.js":"38","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\CheckoutStepper\\StepConnector.js":"39","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\allFormsScreen.js":"40","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\productDetailsAction.js":"41","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\utils\\carousalData.js":"42","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\SearchProductBox.js":"43","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Paginate.js":"44","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\StripeCheckout.js":"45","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\PayPalCheckout.js":"46","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Message.js":"47","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\skeletons\\ProductScreenSkeleton.js":"48","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\skeletons\\OrderScreenSkeleton.js":"49"},{"size":627,"mtime":1608645620000,"results":"50","hashOfConfig":"51"},{"size":362,"mtime":1606722012000,"results":"52","hashOfConfig":"51"},{"size":3705,"mtime":1613363141455,"results":"53","hashOfConfig":"51"},{"size":2041,"mtime":1612712901985,"results":"54","hashOfConfig":"51"},{"size":506,"mtime":1607670676000,"results":"55","hashOfConfig":"51"},{"size":7752,"mtime":1613364063231,"results":"56","hashOfConfig":"51"},{"size":11413,"mtime":1613302313176,"results":"57","hashOfConfig":"51"},{"size":6393,"mtime":1613236633544,"results":"58","hashOfConfig":"51"},{"size":11427,"mtime":1613372649236,"results":"59","hashOfConfig":"51"},{"size":6005,"mtime":1613300473755,"results":"60","hashOfConfig":"51"},{"size":8039,"mtime":1613298728964,"results":"61","hashOfConfig":"51"},{"size":3833,"mtime":1613236609475,"results":"62","hashOfConfig":"51"},{"size":9172,"mtime":1613302291837,"results":"63","hashOfConfig":"51"},{"size":12095,"mtime":1613377683827,"results":"64","hashOfConfig":"51"},{"size":10073,"mtime":1613302410739,"results":"65","hashOfConfig":"51"},{"size":13120,"mtime":1613398166510,"results":"66","hashOfConfig":"51"},{"size":1418,"mtime":1612757322441,"results":"67","hashOfConfig":"51"},{"size":657,"mtime":1612526093366,"results":"68","hashOfConfig":"51"},{"size":1229,"mtime":1612432012919,"results":"69","hashOfConfig":"51"},{"size":3291,"mtime":1612209987448,"results":"70","hashOfConfig":"51"},{"size":2653,"mtime":1612726991297,"results":"71","hashOfConfig":"51"},{"size":418,"mtime":1608645620000,"results":"72","hashOfConfig":"51"},{"size":1432,"mtime":1612209987448,"results":"73","hashOfConfig":"51"},{"size":1212,"mtime":1613233578211,"results":"74","hashOfConfig":"51"},{"size":2505,"mtime":1612594848565,"results":"75","hashOfConfig":"51"},{"size":1034,"mtime":1613297675001,"results":"76","hashOfConfig":"51"},{"size":5500,"mtime":1613298483901,"results":"77","hashOfConfig":"51"},{"size":2218,"mtime":1613301550065,"results":"78","hashOfConfig":"51"},{"size":4475,"mtime":1613299047795,"results":"79","hashOfConfig":"51"},{"size":1290,"mtime":1613398633346,"results":"80","hashOfConfig":"51"},{"size":2068,"mtime":1612031501142,"results":"81","hashOfConfig":"51"},{"size":950,"mtime":1612726991275,"results":"82","hashOfConfig":"51"},{"size":940,"mtime":1612031501117,"results":"83","hashOfConfig":"51"},{"size":181,"mtime":1612524632272,"results":"84","hashOfConfig":"51"},{"size":511,"mtime":1612432012917,"results":"85","hashOfConfig":"51"},{"size":295,"mtime":1612755535418,"results":"86","hashOfConfig":"51"},{"size":1855,"mtime":1607758504000,"results":"87","hashOfConfig":"51"},{"size":1581,"mtime":1613233459769,"results":"88","hashOfConfig":"51"},{"size":672,"mtime":1613233663864,"results":"89","hashOfConfig":"51"},{"size":2382,"mtime":1612770401128,"results":"90","hashOfConfig":"51"},{"size":2249,"mtime":1613302263122,"results":"91","hashOfConfig":"51"},{"size":1267,"mtime":1612251209177,"results":"92","hashOfConfig":"51"},{"size":1292,"mtime":1612726991255,"results":"93","hashOfConfig":"51"},{"size":1151,"mtime":1613374765192,"results":"94","hashOfConfig":"51"},{"size":2522,"mtime":1613397013810,"results":"95","hashOfConfig":"51"},{"size":2714,"mtime":1613302552351,"results":"96","hashOfConfig":"51"},{"size":249,"mtime":1612726991253,"results":"97","hashOfConfig":"51"},{"size":1146,"mtime":1613223885095,"results":"98","hashOfConfig":"51"},{"size":726,"mtime":1613223885095,"results":"99","hashOfConfig":"51"},{"filePath":"100","messages":"101","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},"18mc93y",{"filePath":"103","messages":"104","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"105","messages":"106","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"107","messages":"108","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"109","messages":"110","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"111","messages":"112","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"113","messages":"114","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"115","messages":"116","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"117","messages":"118","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"119","messages":"120","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"121","messages":"122","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"123","messages":"124","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"125","messages":"126","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"127","messages":"128","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"129","messages":"130","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"131","messages":"132","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"133","messages":"134","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"135","messages":"136","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"137","messages":"138","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"139","messages":"140","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"141","messages":"142","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"143","messages":"144","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"145","messages":"146","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"147","messages":"148","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"149","messages":"150","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"151","messages":"152","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"153","messages":"154","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"155","messages":"156","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"157","messages":"158","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"159","messages":"160","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"161","messages":"162","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"163","messages":"164","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"165","messages":"166","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"167","messages":"168","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"169","messages":"170","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"171","messages":"172","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"173","messages":"174","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"175","messages":"176","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"177","messages":"178","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"179","messages":"180","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"181","messages":"182","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"183","messages":"184","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"185","messages":"186","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"187","messages":"188","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"189","messages":"190","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"191","messages":"192","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"193","usedDeprecatedRules":"102"},{"filePath":"194","messages":"195","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"196","messages":"197","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},{"filePath":"198","messages":"199","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"102"},"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\index.js",[],["200","201"],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\reportWebVitals.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\App.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\store.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Footer.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Header.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\HomeScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ShippingScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ProductScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\LoginScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\RegisterScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\PaymentMethod.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\CartScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\PlaceOrderScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ProfileScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\OrderScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\cart.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\productLists.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\productDetails.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\user.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\order.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Loader.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Products.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CheckoutStepper.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\header.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\productListAction.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\userAction.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\cartAction.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\orderAction.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\PlaceOrderScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\ProfileScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\orderConstants.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\userConstants.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\productListConstants.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\productDetailsConstants.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\cartConstants.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Rating.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\CheckoutStepper\\StepIcon.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\CheckoutStepper\\StepConnector.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\allFormsScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\productDetailsAction.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\utils\\carousalData.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\SearchProductBox.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Paginate.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\StripeCheckout.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\PayPalCheckout.js",["202"],"import React, { useEffect, useState } from \"react\";\r\nimport { PayPalButton } from \"react-paypal-button-v2\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { payOrder } from \"../redux/actions/orderAction\";\r\nimport { emptyCart } from \"../redux/actions/cartAction\";\r\nimport { ORDER_PAY_RESET } from \"../redux/actionTypes/orderConstants\";\r\n\r\nimport axios from \"axios\";\r\nimport Loader from \"./Loader\";\r\n\r\nexport const PayPalCheckout = ({ orderId, API }) => {\r\n const dispatch = useDispatch();\r\n\r\n const orderDetails = useSelector((state) => state.orderDetails);\r\n const { orders } = orderDetails;\r\n\r\n // PAYPAL PAYMENT INTEGRATION\r\n const orderPay = useSelector((state) => state.orderPay);\r\n const { loading: loadingPay, success: successPay } = orderPay;\r\n\r\n const [sdkReady, setSdkReady] = useState(false);\r\n\r\n //paypal script\r\n const addPayPalScript = async () => {\r\n const { data: clientId } = await axios.get(`${API}/config/paypal`);\r\n console.log(clientId);\r\n const script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.src = `https://www.paypal.com/sdk/js?client-id=${clientId}`;\r\n script.async = true;\r\n script.onload = () => {\r\n setSdkReady(true);\r\n };\r\n document.body.appendChild(script);\r\n };\r\n\r\n // if paid successfully reset order_pay and add paypal script if order not paid and paypal is configured previously\r\n useEffect(() => {\r\n if (successPay) {\r\n dispatch({ type: ORDER_PAY_RESET });\r\n //empty cart\r\n dispatch(emptyCart());\r\n } else if (orders && !orders.isPaid) {\r\n if (!window.paypal) {\r\n addPayPalScript();\r\n } else {\r\n setSdkReady(true);\r\n }\r\n }\r\n }, [dispatch, orders, successPay]);\r\n\r\n // On payment successfully completed\r\n const successPaymentHandler = (paymentResult) => {\r\n console.log(paymentResult);\r\n dispatch(payOrder(API, orderId, paymentResult));\r\n // alert(\"Transaction completed by \" + paymentResult.payer.name.given_name);\r\n alert(\"Transaction completed by \" + orders.user.name + \" through paypal\");\r\n };\r\n\r\n // Error handling in payment\r\n const errorPaymentHandler = (err) => {\r\n console.log(err);\r\n alert(err);\r\n };\r\n\r\n // On cancel of payment\r\n const cancelPaymentHandler = (msg) => {\r\n alert(\"Order \" + msg.orderID + \" Cancelled\");\r\n };\r\n\r\n return (\r\n <>\r\n {loadingPay ? (\r\n \r\n ) : !sdkReady ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Message.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\skeletons\\ProductScreenSkeleton.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\skeletons\\OrderScreenSkeleton.js",[],{"ruleId":"203","replacedBy":"204"},{"ruleId":"205","replacedBy":"206"},{"ruleId":"207","severity":1,"message":"208","line":51,"column":6,"nodeType":"209","endLine":51,"endColumn":36,"suggestions":"210"},"no-native-reassign",["211"],"no-negated-in-lhs",["212"],"react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'addPayPalScript'. Either include it or remove the dependency array.","ArrayExpression",["213"],"no-global-assign","no-unsafe-negation",{"desc":"214","fix":"215"},"Update the dependencies array to be: [addPayPalScript, dispatch, orders, successPay]",{"range":"216","text":"217"},[1719,1749],"[addPayPalScript, dispatch, orders, successPay]"] \ No newline at end of file +[{"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\index.js":"1","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\reportWebVitals.js":"2","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\App.js":"3","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\store.js":"4","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Footer.js":"5","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Header.js":"6","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\HomeScreen.js":"7","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ShippingScreen.js":"8","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ProductScreen.js":"9","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\LoginScreen.js":"10","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\RegisterScreen.js":"11","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\PaymentMethod.js":"12","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\CartScreen.js":"13","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\PlaceOrderScreen.js":"14","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ProfileScreen.js":"15","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\OrderScreen.js":"16","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\cart.js":"17","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\productLists.js":"18","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\productDetails.js":"19","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\user.js":"20","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\order.js":"21","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Loader.js":"22","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Products.js":"23","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CheckoutStepper.js":"24","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\header.js":"25","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\productListAction.js":"26","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\userAction.js":"27","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\cartAction.js":"28","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\orderAction.js":"29","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\PlaceOrderScreen.js":"30","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\ProfileScreen.js":"31","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\orderConstants.js":"32","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\userConstants.js":"33","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\productListConstants.js":"34","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\productDetailsConstants.js":"35","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\cartConstants.js":"36","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Rating.js":"37","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\CheckoutStepper\\StepIcon.js":"38","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\CheckoutStepper\\StepConnector.js":"39","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\allFormsScreen.js":"40","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\productDetailsAction.js":"41","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\utils\\carousalData.js":"42","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\SearchProductBox.js":"43","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Paginate.js":"44","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\StripeCheckout.js":"45","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\PayPalCheckout.js":"46","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Message.js":"47","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\skeletons\\ProductScreenSkeleton.js":"48","D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\skeletons\\OrderScreenSkeleton.js":"49"},{"size":627,"mtime":1608645620000,"results":"50","hashOfConfig":"51"},{"size":362,"mtime":1606722012000,"results":"52","hashOfConfig":"51"},{"size":3705,"mtime":1613363141455,"results":"53","hashOfConfig":"51"},{"size":2041,"mtime":1612712901985,"results":"54","hashOfConfig":"51"},{"size":506,"mtime":1607670676000,"results":"55","hashOfConfig":"51"},{"size":7752,"mtime":1613364063231,"results":"56","hashOfConfig":"51"},{"size":11413,"mtime":1613302313176,"results":"57","hashOfConfig":"51"},{"size":6393,"mtime":1613236633544,"results":"58","hashOfConfig":"51"},{"size":11427,"mtime":1613372649236,"results":"59","hashOfConfig":"51"},{"size":6005,"mtime":1613300473755,"results":"60","hashOfConfig":"51"},{"size":8039,"mtime":1613298728964,"results":"61","hashOfConfig":"51"},{"size":3833,"mtime":1613236609475,"results":"62","hashOfConfig":"51"},{"size":9172,"mtime":1613302291837,"results":"63","hashOfConfig":"51"},{"size":12095,"mtime":1613377683827,"results":"64","hashOfConfig":"51"},{"size":10073,"mtime":1613302410739,"results":"65","hashOfConfig":"51"},{"size":13120,"mtime":1613398166510,"results":"66","hashOfConfig":"51"},{"size":1418,"mtime":1612757322441,"results":"67","hashOfConfig":"51"},{"size":657,"mtime":1612526093366,"results":"68","hashOfConfig":"51"},{"size":1229,"mtime":1612432012919,"results":"69","hashOfConfig":"51"},{"size":3291,"mtime":1612209987448,"results":"70","hashOfConfig":"51"},{"size":2653,"mtime":1612726991297,"results":"71","hashOfConfig":"51"},{"size":418,"mtime":1608645620000,"results":"72","hashOfConfig":"51"},{"size":1432,"mtime":1612209987448,"results":"73","hashOfConfig":"51"},{"size":1212,"mtime":1613233578211,"results":"74","hashOfConfig":"51"},{"size":2505,"mtime":1612594848565,"results":"75","hashOfConfig":"51"},{"size":1034,"mtime":1613297675001,"results":"76","hashOfConfig":"51"},{"size":5500,"mtime":1613298483901,"results":"77","hashOfConfig":"51"},{"size":2218,"mtime":1613301550065,"results":"78","hashOfConfig":"51"},{"size":4475,"mtime":1613299047795,"results":"79","hashOfConfig":"51"},{"size":1290,"mtime":1613398633346,"results":"80","hashOfConfig":"51"},{"size":2068,"mtime":1612031501142,"results":"81","hashOfConfig":"51"},{"size":950,"mtime":1612726991275,"results":"82","hashOfConfig":"51"},{"size":940,"mtime":1612031501117,"results":"83","hashOfConfig":"51"},{"size":181,"mtime":1612524632272,"results":"84","hashOfConfig":"51"},{"size":511,"mtime":1612432012917,"results":"85","hashOfConfig":"51"},{"size":295,"mtime":1612755535418,"results":"86","hashOfConfig":"51"},{"size":1855,"mtime":1607758504000,"results":"87","hashOfConfig":"51"},{"size":1581,"mtime":1613233459769,"results":"88","hashOfConfig":"51"},{"size":672,"mtime":1613233663864,"results":"89","hashOfConfig":"51"},{"size":2382,"mtime":1612770401128,"results":"90","hashOfConfig":"51"},{"size":2249,"mtime":1613302263122,"results":"91","hashOfConfig":"51"},{"size":1267,"mtime":1612251209177,"results":"92","hashOfConfig":"51"},{"size":1292,"mtime":1612726991255,"results":"93","hashOfConfig":"51"},{"size":1151,"mtime":1613374765192,"results":"94","hashOfConfig":"51"},{"size":2522,"mtime":1613397013810,"results":"95","hashOfConfig":"51"},{"size":2714,"mtime":1613302552351,"results":"96","hashOfConfig":"51"},{"size":249,"mtime":1612726991253,"results":"97","hashOfConfig":"51"},{"size":1146,"mtime":1613223885095,"results":"98","hashOfConfig":"51"},{"size":726,"mtime":1613223885095,"results":"99","hashOfConfig":"51"},{"filePath":"100","messages":"101","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"ccmwi9",{"filePath":"102","messages":"103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"104","messages":"105","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"106","messages":"107","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"108","messages":"109","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"110","messages":"111","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"114","messages":"115","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"116","messages":"117","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"118","messages":"119","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"120","messages":"121","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"122","messages":"123","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"124","messages":"125","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"126","messages":"127","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"128","messages":"129","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"130","messages":"131","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"132","messages":"133","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"134","messages":"135","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"136","messages":"137","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"138","messages":"139","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"140","messages":"141","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"142","messages":"143","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"144","messages":"145","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"146","messages":"147","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"148","messages":"149","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"150","messages":"151","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"152","messages":"153","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"154","messages":"155","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"156","messages":"157","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"158","messages":"159","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"160","messages":"161","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"162","messages":"163","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"164","messages":"165","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"166","messages":"167","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"168","messages":"169","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"170","messages":"171","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"172","messages":"173","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"174","messages":"175","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"176","messages":"177","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"178","messages":"179","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"180","messages":"181","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"182","messages":"183","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"184","messages":"185","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"186","messages":"187","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"188","messages":"189","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"190","messages":"191","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"192","messages":"193","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"194","messages":"195","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"196","messages":"197","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\index.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\reportWebVitals.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\App.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\store.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Footer.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Header.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\HomeScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ShippingScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ProductScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\LoginScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\RegisterScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\PaymentMethod.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\CartScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\PlaceOrderScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\ProfileScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\OrderScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\cart.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\productLists.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\productDetails.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\user.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\reducers\\order.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Loader.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Products.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CheckoutStepper.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\header.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\productListAction.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\userAction.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\cartAction.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\orderAction.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\PlaceOrderScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\ProfileScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\orderConstants.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\userConstants.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\productListConstants.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\productDetailsConstants.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actionTypes\\cartConstants.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Rating.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\CheckoutStepper\\StepIcon.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\CustomStyles\\CheckoutStepper\\StepConnector.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\customStyle\\allFormsScreen.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\redux\\actions\\productDetailsAction.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\utils\\carousalData.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\SearchProductBox.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Paginate.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\StripeCheckout.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\PayPalCheckout.js",["198"],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\components\\Message.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\skeletons\\ProductScreenSkeleton.js",[],"D:\\PROJECTS\\1. Web Dev\\eCommerce\\frontend\\src\\screen\\skeletons\\OrderScreenSkeleton.js",[],{"ruleId":"199","severity":1,"message":"200","line":51,"column":6,"nodeType":"201","endLine":51,"endColumn":36,"suggestions":"202"},"react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'addPayPalScript'. Either include it or remove the dependency array.","ArrayExpression",["203"],{"desc":"204","fix":"205"},"Update the dependencies array to be: [addPayPalScript, dispatch, orders, successPay]",{"range":"206","text":"207"},[1719,1749],"[addPayPalScript, dispatch, orders, successPay]"] \ No newline at end of file diff --git a/frontend/build/asset-manifest.json b/frontend/build/asset-manifest.json index 814ebc3..39a8f25 100644 --- a/frontend/build/asset-manifest.json +++ b/frontend/build/asset-manifest.json @@ -1,8 +1,8 @@ { "files": { "main.css": "/static/css/main.cb09fdb2.chunk.css", - "main.js": "/static/js/main.03fa8896.chunk.js", - "main.js.map": "/static/js/main.03fa8896.chunk.js.map", + "main.js": "/static/js/main.1c948026.chunk.js", + "main.js.map": "/static/js/main.1c948026.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.52fb6a14.js", "runtime-main.js.map": "/static/js/runtime-main.52fb6a14.js.map", "static/css/2.a44c59e0.chunk.css": "/static/css/2.a44c59e0.chunk.css", @@ -20,6 +20,6 @@ "static/css/2.a44c59e0.chunk.css", "static/js/2.f5ab49df.chunk.js", "static/css/main.cb09fdb2.chunk.css", - "static/js/main.03fa8896.chunk.js" + "static/js/main.1c948026.chunk.js" ] } \ No newline at end of file diff --git a/frontend/build/index.html b/frontend/build/index.html index 130fa10..fd083af 100644 --- a/frontend/build/index.html +++ b/frontend/build/index.html @@ -1 +1 @@ -Welcome to eShop
\ No newline at end of file +Welcome to eShop
\ No newline at end of file diff --git a/frontend/build/static/js/main.03fa8896.chunk.js.map b/frontend/build/static/js/main.03fa8896.chunk.js.map deleted file mode 100644 index 371b7d4..0000000 --- a/frontend/build/static/js/main.03fa8896.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["redux/actionTypes/productListConstants.js","redux/actionTypes/productDetailsConstants.js","redux/actionTypes/cartConstants.js","redux/actionTypes/userConstants.js","redux/actionTypes/orderConstants.js","redux/store.js","redux/reducers/productLists.js","redux/reducers/productDetails.js","redux/reducers/cart.js","redux/reducers/user.js","redux/reducers/order.js","components/CustomStyles/header.js","components/SearchProductBox.js","redux/actions/userAction.js","components/Header.js","components/Footer.js","components/Rating.js","components/Products.js","redux/actions/productListAction.js","components/Loader.js","components/Message.js","components/Paginate.js","utils/carousalData.js","screen/HomeScreen.js","screen/skeletons/ProductScreenSkeleton.js","screen/ProductScreen.js","redux/actions/productDetailsAction.js","redux/actions/cartAction.js","screen/CartScreen.js","screen/customStyle/allFormsScreen.js","components/CustomStyles/CheckoutStepper/StepConnector.js","components/CustomStyles/CheckoutStepper/StepIcon.js","components/CheckoutStepper.js","screen/LoginScreen.js","screen/RegisterScreen.js","redux/actions/orderAction.js","screen/customStyle/ProfileScreen.js","screen/ProfileScreen.js","screen/ShippingScreen.js","screen/PaymentMethod.js","screen/customStyle/PlaceOrderScreen.js","screen/PlaceOrderScreen.js","components/StripeCheckout.js","components/PayPalCheckout.js","screen/skeletons/OrderScreenSkeleton.js","screen/OrderScreen.js","App.js","reportWebVitals.js","index.js"],"names":["PRODUCT_LIST_REQUEST","PRODUCT_LIST_SUCCESS","PRODUCT_LIST_FAILED","PRODUCT_DETAILS_REQUEST","PRODUCT_DETAILS_SUCCESS","PRODUCT_DETAILS_FAILED","PRODUCT_CREATE_REVIEW_REQUEST","PRODUCT_CREATE_REVIEW_SUCCESS","PRODUCT_CREATE_REVIEW_FAILED","PRODUCT_CREATE_REVIEW_RESET","CART_ITEM_ADD","CART_ITEM_REMOVE","CART_ITEM_RESET","CART_SAVE_SHIPPING_ADDRESS","CART_SAVE_PAYMENT_METHOD","USER_LOGIN_REQUEST","USER_LOGIN_SUCCESS","USER_LOGIN_FAILED","USER_LOGOUT","USER_REGISTER_REQUEST","USER_REGISTER_SUCCESS","USER_REGISTER_FAILED","USER_DETAILS_REQUEST","USER_DETAILS_SUCCESS","USER_DETAILS_FAILED","USER_DETAILS_RESET","USER_UPDATE_PROFILE_REQUEST","USER_UPDATE_PROFILE_SUCCESS","USER_UPDATE_PROFILE_FAILED","CREATE_ORDER_REQUEST","CREATE_ORDER_SUCCESS","CREATE_ORDER_FAILED","CREATE_ORDER_RESET","ORDER_DETAILS_REQUEST","ORDER_DETAILS_SUCCESS","ORDER_DETAILS_FAILED","ORDER_DETAILS_RESET","ORDER_PAY_REQUEST","ORDER_PAY_SUCCESS","ORDER_PAY_FAILED","ORDER_PAY_RESET","LIST_MY_ORDER_REQUEST","LIST_MY_ORDER_SUCCESS","LIST_MY_ORDER_FAILED","LIST_MY_ORDER_RESET","reducer","combineReducers","productList","state","loading","products","error","action","type","payload","productDetails","product","cart","cartItems","shippingAddress","paymentMethod","existItem","find","p","map","filter","userLogin","isAuthenticated","userInfo","userRegister","userDetails","user","userUpdateProfile","success","order","orderDetails","orders","orderPay","myOrders","productCreateReview","initialState","localStorage","getItem","JSON","parse","middleware","thunk","store","createStore","composeWithDevTools","applyMiddleware","useStyles","makeStyles","theme","root","flexGrow","appbar","padding","background","menu","menuButton","marginRight","spacing","breakpoints","up","display","title","search","position","borderRadius","shape","backgroundColor","fade","palette","common","white","marginLeft","width","searchIcon","height","pointerEvents","alignItems","justifyContent","inputRoot","color","inputInput","paddingLeft","transition","transitions","create","drawer","flexShrink","drawerPaper","drawerHeader","mixins","toolbar","link_brand","textDecoration","link_menu_item","link","down","link_drawer","primary","SearchBox","history","classes","useState","keyword","setKeyword","useEffect","window","location","pathname","includes","trim","push","className","InputBase","value","onChange","e","target","placeholder","input","inputProps","addUser","updateProfile","Header","isMobile","anchorEl","setAnchorEl","openEl","Boolean","toggle","setToggle","dispatch","useDispatch","useSelector","logoutHandler","removeItem","handleClose","AppBar","elevation","Toolbar","IconButton","edge","onClick","aria-label","Typography","variant","to","render","Button","aria-controls","aria-haspopup","event","currentTarget","style","fontSize","name","split","Menu","id","getContentAnchorEl","anchorOrigin","vertical","horizontal","keepMounted","transformOrigin","TransitionComponent","Fade","open","onClose","MenuItem","ListItemText","ListItemIcon","Drawer","anchor","List","ListItem","button","Footer","Container","Row","Col","opacity","Rating","text","defaultProps","Products","path","Card","category","_id","src","image","alt","Body","Title","as","Text","rating","numReviews","price","reqProducts","addProducts","productsFailed","errMess","Loader","Spinner","animation","role","margin","Message","varient","children","Alert","severity","marginTop","mobile","BasicPagination","totalPage","setPaginate","Pagination","paginate","count","page","prev","currentPage","scrollTo","size","carousalData","image_desktop","image_mobile","heading","para","Home","API","options","loop","dots","nav","navText","responsive","320","items","768","1000","allProducts","allProductsPerPage","indexOfLastProduct","indexOfFirstProduct","currentProducts","slice","Math","ceil","length","isQuerying","setIsQuerying","URLSearchParams","get","a","axios","data","console","log","response","message","listProducts","electronicsRef","useRef","homeRef","mensRef","womensRef","autoplay","autoplayTimeout","lazyLoad","smartSpeed","index","backgroundPosition","backgroundSize","backgroundRepeat","current","scrollIntoView","behavior","ref","electronic","home_appliance","mens_accessory","womens_accessory","md","lg","ProductScreenSkeleton","Skeleton","ProductScreen","match","qty","setQty","setRating","comment","setComment","successProductReview","errorProductReview","alert","listProductDetails","params","reviews","aria-current","goBack","Image","fluid","ListGroup","Item","description","countInStock","Form","Control","Array","keys","q","disabled","sm","review","createdAt","substring","Group","controlId","Label","row","preventDefault","getState","config","headers","Authorization","token","post","createProductReview","addCart","addToCart","setItem","stringify","removeFromCart","removeCart","addShippingAddress","addPaymentMethod","emptyCart","CartScreen","productId","Number","item","rounded","border","outline","removecartHandler","reduce","acc","toFixed","useStyle","form","flexDirection","paper","paddingTop","avatar","marginBottom","transform","backgroundImage","info","main","fontWeight","borderColor","paddingBottom","icon","register","login","selectLabel","textAlign","back","cursor","CheckoutStepConnector","withStyles","alternativeLabel","top","active","completed","line","StepConnector","useStepIconStyles","zIndex","boxShadow","StepIcon","props","icons","1","PeopleAlt","2","LocalShipping","3","AccountBalance","4","ShoppingBasket","clsx","String","CheckoutStepper","step","steps","Stepper","activeStep","connector","label","Step","StepLabel","StepIconComponent","LoginScreen","email","setEmail","password","setPassword","passwordVisibility","setPasswordVisibility","redirect","Paper","Avatar","component","FormControl","InputLabel","htmlFor","OutlinedInput","required","startAdornment","InputAdornment","labelWidth","endAdornment","onMouseDown","setTimeout","err","loginUser","Grid","container","RegisterScreen","setName","confirmPassword","setConfirmPassword","confirmPasswordVisibility","setConfirmPasswordVisibility","setMessage","registerUser","addOrder","payOrder","orderId","paymentResult","put","table","details","CssTextField","TextField","StyledTableCell","createStyles","head","body","TableCell","StyledTableRow","selected","hover","TableRow","ProfileScreen","myOrdersList","loadingOrders","errorOrders","getUserDetails","listMyOrders","xs","multiline","InputLabelProps","shrink","autoComplete","updateUserProfile","TableContainer","Table","TableHead","align","TableBody","scope","totalPrice","isPaid","paidAt","isDelivered","deliveredAt","ShippingScreen","address","setAddress","city","setCity","postalCode","setPostalCode","country","setCountry","PaymentMethodScreen","setPaymentMethod","RadioGroup","FormControlLabel","control","Radio","innerWidth","maxWidth","inline","divider","list_item","paddingRight","order_summary","order_link","shipping","PlaceOrderScreen","itemsPrice","shippingPrice","taxPrice","placeOrder","list","Divider","ListItemAvatar","secondary","ListItemSecondaryAction","createOrder","orderItems","StripeCheckout","loadingPay","successPay","makePayment","stripeKey","process","amount","currency","billingAddress","PayPalCheckout","sdkReady","setSdkReady","addPayPalScript","clientId","script","document","createElement","async","onload","appendChild","paypal","onSuccess","onError","onCancel","msg","orderID","OrderScreenSkeleton","OrderScreen","getOrderDetails","rel","href","App","exact","PaymentMethod","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.03fa8896.chunk.js","sourcesContent":["export const PRODUCT_LIST_REQUEST = \"PRODUCT_LIST_REQUEST\";\r\nexport const PRODUCT_LIST_SUCCESS = \"PRODUCT_LIST_SUCCESS\";\r\nexport const PRODUCT_LIST_FAILED = \"PRODUCT_LIST_FAILED\";\r\n","export const PRODUCT_DETAILS_REQUEST = \"PRODUCT_DETAILS_REQUEST\";\r\nexport const PRODUCT_DETAILS_SUCCESS = \"PRODUCT_DETAILS_SUCCESS\";\r\nexport const PRODUCT_DETAILS_FAILED = \"PRODUCT_DETAILS_FAILED\";\r\n\r\nexport const PRODUCT_CREATE_REVIEW_REQUEST = \"PRODUCT_CREATE_REVIEW_REQUEST\";\r\nexport const PRODUCT_CREATE_REVIEW_SUCCESS = \"PRODUCT_CREATE_REVIEW_SUCCESS\";\r\nexport const PRODUCT_CREATE_REVIEW_FAILED = \"PRODUCT_CREATE_REVIEW_FAILED\";\r\nexport const PRODUCT_CREATE_REVIEW_RESET = \"PRODUCT_CREATE_REVIEW_RESET\";\r\n","export const CART_ITEM_ADD = \"CART_ITEM_ADD\";\r\nexport const CART_ITEM_REMOVE = \"CART_ITEM_REMOVE\";\r\nexport const CART_ITEM_RESET = \"CART_ITEM_RESET\";\r\n\r\nexport const CART_SAVE_SHIPPING_ADDRESS = \"CART_SAVE_SHIPPING_ADDRESS\";\r\nexport const CART_SAVE_PAYMENT_METHOD = \"CART_SAVE_PAYMENT_METHOD\";\r\n","export const USER_LOGIN_REQUEST = \"USER_LOGIN_REQUEST\";\r\nexport const USER_LOGIN_SUCCESS = \"USER_LOGIN_SUCCESS\";\r\nexport const USER_LOGIN_FAILED = \"USER_LOGIN_FAILED\";\r\n\r\nexport const USER_LOGOUT = \"USER_LOGOUT\";\r\n\r\nexport const USER_REGISTER_REQUEST = \"USER_REGISTER_REQUEST\";\r\nexport const USER_REGISTER_SUCCESS = \"USER_REGISTER_SUCCESS\";\r\nexport const USER_REGISTER_FAILED = \"USER_REGISTER_FAILED\";\r\n\r\nexport const USER_DETAILS_REQUEST = \"USER_DETAILS_REQUEST\";\r\nexport const USER_DETAILS_SUCCESS = \"USER_DETAILS_SUCCESS\";\r\nexport const USER_DETAILS_FAILED = \"USER_DETAILS_FAILED\";\r\nexport const USER_DETAILS_RESET = \"USER_DETAILS_RESET\";\r\n\r\nexport const USER_UPDATE_PROFILE_REQUEST = \"USER_UPDATE_PROFILE_REQUEST\";\r\nexport const USER_UPDATE_PROFILE_SUCCESS = \"USER_UPDATE_PROFILE_SUCCESS\";\r\nexport const USER_UPDATE_PROFILE_FAILED = \"USER_UPDATE_PROFILE_FAILED\";\r\nexport const USER_UPDATE_PROFILE_RESET = \"USER_UPDATE_PROFILE_RESET \";\r\n","export const CREATE_ORDER_REQUEST = \"CREATE_ORDER_REQUEST\";\r\nexport const CREATE_ORDER_SUCCESS = \"CREATE_ORDER_SUCCESS\";\r\nexport const CREATE_ORDER_FAILED = \"CREATE_ORDER_FAILED\";\r\nexport const CREATE_ORDER_RESET = \"CREATE_ORDER_RESET\";\r\n\r\nexport const ORDER_DETAILS_REQUEST = \"ORDER_DETAILS_REQUEST\";\r\nexport const ORDER_DETAILS_SUCCESS = \"ORDER_DETAILS_SUCCESS\";\r\nexport const ORDER_DETAILS_FAILED = \"ORDER_DETAILS_FAILED\";\r\nexport const ORDER_DETAILS_RESET = \"ORDER_DETAILS_RESET\";\r\n\r\nexport const ORDER_PAY_REQUEST = \"ORDER_PAY_REQUEST\";\r\nexport const ORDER_PAY_SUCCESS = \"ORDER_PAY_SUCCESS\";\r\nexport const ORDER_PAY_FAILED = \"ORDER_PAY_FAILED\";\r\nexport const ORDER_PAY_RESET = \"ORDER_PAY_RESET\";\r\n\r\nexport const LIST_MY_ORDER_REQUEST = \"LIST_MY_ORDER_REQUEST\";\r\nexport const LIST_MY_ORDER_SUCCESS = \"LIST_MY_ORDER_SUCCESS\";\r\nexport const LIST_MY_ORDER_FAILED = \"LIST_MY_ORDER_FAILED\";\r\nexport const LIST_MY_ORDER_RESET = \"LIST_MY_ORDER_RESET\";\r\n","import { combineReducers, applyMiddleware, createStore } from \"redux\";\r\nimport { composeWithDevTools } from \"redux-devtools-extension\";\r\nimport thunk from \"redux-thunk\";\r\n\r\n//// Reducers\r\nimport { productListsReducer } from \"./reducers/productLists\";\r\nimport {\r\n productDetailsReducer,\r\n productCreateReviewReducer,\r\n} from \"./reducers/productDetails\";\r\nimport { cartReducer } from \"./reducers/cart\";\r\n\r\nimport {\r\n userDetailsReducer,\r\n userLoginReducer,\r\n userRegisterReducer,\r\n userUpdateProfileReducer,\r\n} from \"./reducers/user\";\r\n\r\nimport {\r\n createOrderReducer,\r\n orderDetailsReducer,\r\n orderPayReducer,\r\n myOrdersReducer,\r\n} from \"./reducers/order\";\r\n\r\nconst reducer = combineReducers({\r\n productList: productListsReducer,\r\n productDetails: productDetailsReducer,\r\n cart: cartReducer,\r\n userLogin: userLoginReducer,\r\n userRegister: userRegisterReducer,\r\n userDetails: userDetailsReducer,\r\n userUpdateProfile: userUpdateProfileReducer,\r\n order: createOrderReducer,\r\n orderDetails: orderDetailsReducer,\r\n orderPay: orderPayReducer,\r\n myOrders: myOrdersReducer,\r\n productCreateReview: productCreateReviewReducer,\r\n});\r\n\r\n// GET all cart Items from local Storage\r\nconst cartsFromLocalStorage = localStorage.getItem(\"cartItems\")\r\n ? JSON.parse(localStorage.getItem(\"cartItems\"))\r\n : [];\r\n\r\n// GET shippingAddress from local Storage\r\nconst shippingAddressFromLocalStorage = localStorage.getItem(\"shippingAddress\")\r\n ? JSON.parse(localStorage.getItem(\"shippingAddress\"))\r\n : {};\r\n\r\n// GET user info from local Storage\r\nconst userInfoFromLocalStorage = localStorage.getItem(\"userInfo\")\r\n ? JSON.parse(localStorage.getItem(\"userInfo\"))\r\n : null;\r\n\r\nconst initialState = {\r\n cart: {\r\n cartItems: cartsFromLocalStorage,\r\n shippingAddress: shippingAddressFromLocalStorage,\r\n },\r\n userLogin: { userInfo: userInfoFromLocalStorage },\r\n};\r\n\r\nconst middleware = [thunk];\r\n\r\nconst store = createStore(\r\n reducer,\r\n initialState,\r\n composeWithDevTools(applyMiddleware(...middleware))\r\n);\r\n\r\nexport default store;\r\n","import {\r\n PRODUCT_LIST_REQUEST,\r\n PRODUCT_LIST_SUCCESS,\r\n PRODUCT_LIST_FAILED,\r\n} from \"../actionTypes/productListConstants\";\r\n\r\nexport const productListsReducer = (\r\n state = { loading: false, products: [], error: null },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case PRODUCT_LIST_REQUEST:\r\n return { loading: true, products: [], error: null };\r\n\r\n case PRODUCT_LIST_SUCCESS:\r\n return {\r\n loading: false,\r\n products: action.payload,\r\n error: null,\r\n };\r\n\r\n case PRODUCT_LIST_FAILED:\r\n return { loading: false, products: [], error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n PRODUCT_DETAILS_REQUEST,\r\n PRODUCT_DETAILS_SUCCESS,\r\n PRODUCT_DETAILS_FAILED,\r\n PRODUCT_CREATE_REVIEW_REQUEST,\r\n PRODUCT_CREATE_REVIEW_FAILED,\r\n PRODUCT_CREATE_REVIEW_SUCCESS,\r\n PRODUCT_CREATE_REVIEW_RESET,\r\n} from \"../actionTypes/productDetailsConstants\";\r\n\r\nexport const productDetailsReducer = (\r\n state = { loading: false, product: {}, error: null },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case PRODUCT_DETAILS_REQUEST:\r\n return { loading: true, product: {}, error: null };\r\n case PRODUCT_DETAILS_SUCCESS:\r\n return { loading: false, product: action.payload, error: null };\r\n\r\n case PRODUCT_DETAILS_FAILED:\r\n return { loading: false, product: {}, error: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const productCreateReviewReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case PRODUCT_CREATE_REVIEW_REQUEST:\r\n return { loading: true };\r\n case PRODUCT_CREATE_REVIEW_SUCCESS:\r\n return { loading: false, success: true };\r\n case PRODUCT_CREATE_REVIEW_FAILED:\r\n return { loading: false, error: action.payload };\r\n case PRODUCT_CREATE_REVIEW_RESET:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n CART_ITEM_ADD,\r\n CART_ITEM_REMOVE,\r\n CART_SAVE_SHIPPING_ADDRESS,\r\n CART_SAVE_PAYMENT_METHOD,\r\n CART_ITEM_RESET,\r\n} from \"../actionTypes/cartConstants\";\r\n\r\n/////////////////////// CART ADD & REMOVE TO/FROM CART ///////////////////\r\nexport const cartReducer = (\r\n state = { cartItems: [], shippingAddress: {}, paymentMethod: \"\" },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case CART_ITEM_ADD:\r\n const { payload } = action;\r\n // check if cartItems exist or not\r\n const existItem = state.cartItems.find(\r\n (p) => p.product === payload.product\r\n );\r\n if (existItem) {\r\n return {\r\n ...state,\r\n cartItems: state.cartItems.map((p) =>\r\n p.product === existItem.product ? payload : p\r\n ),\r\n };\r\n } else {\r\n return { ...state, cartItems: [...state.cartItems, payload] };\r\n }\r\n\r\n case CART_ITEM_REMOVE:\r\n return {\r\n ...state,\r\n cartItems: state.cartItems.filter((p) => p.product !== action.payload),\r\n };\r\n\r\n case CART_SAVE_SHIPPING_ADDRESS:\r\n return {\r\n ...state,\r\n shippingAddress: action.payload,\r\n };\r\n\r\n case CART_SAVE_PAYMENT_METHOD:\r\n return {\r\n ...state,\r\n paymentMethod: action.payload,\r\n };\r\n\r\n case CART_ITEM_RESET:\r\n return { ...state, cartItems: [] };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n USER_LOGIN_FAILED,\r\n USER_LOGIN_REQUEST,\r\n USER_LOGIN_SUCCESS,\r\n USER_LOGOUT,\r\n USER_REGISTER_FAILED,\r\n USER_REGISTER_REQUEST,\r\n USER_REGISTER_SUCCESS,\r\n USER_DETAILS_FAILED,\r\n USER_DETAILS_REQUEST,\r\n USER_DETAILS_SUCCESS,\r\n USER_UPDATE_PROFILE_REQUEST,\r\n USER_UPDATE_PROFILE_SUCCESS,\r\n USER_UPDATE_PROFILE_FAILED,\r\n USER_DETAILS_RESET,\r\n} from \"../actionTypes/userConstants\";\r\n\r\n/////////////////////////// LOGIN REDUCER ///////////////////////////////\r\n\r\nexport const userLoginReducer = (\r\n state = {\r\n loading: false,\r\n isAuthenticated: false,\r\n userInfo: null,\r\n error: null,\r\n },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case USER_LOGIN_REQUEST:\r\n return { loading: true, error: null };\r\n case USER_LOGIN_SUCCESS:\r\n return {\r\n loading: false,\r\n isAuthenticated: true,\r\n userInfo: action.payload,\r\n };\r\n\r\n case USER_LOGIN_FAILED:\r\n return {\r\n loading: false,\r\n isAuthenticated: false,\r\n error: action.payload,\r\n };\r\n\r\n case USER_LOGOUT:\r\n return {\r\n isAuthenticated: false,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n/////////////////////////// REGISTER REDUCER ///////////////////////////////\r\n\r\nexport const userRegisterReducer = (\r\n state = {\r\n loading: false,\r\n isAuthenticated: false,\r\n userInfo: null,\r\n error: null,\r\n },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case USER_REGISTER_REQUEST:\r\n return { loading: true, error: null };\r\n case USER_REGISTER_SUCCESS:\r\n return {\r\n loading: false,\r\n isAuthenticated: true,\r\n userInfo: action.payload,\r\n };\r\n\r\n case USER_REGISTER_FAILED:\r\n return {\r\n loading: false,\r\n isAuthenticated: false,\r\n error: action.payload,\r\n };\r\n case USER_LOGOUT:\r\n return {\r\n isAuthenticated: false,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n///////////////////////////////////////// USER PROFILE DETAILS /////////////////////////////////\r\n\r\nexport const userDetailsReducer = (\r\n state = { loading: false, user: null, error: null },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case USER_DETAILS_REQUEST:\r\n return { loading: true };\r\n case USER_DETAILS_SUCCESS:\r\n return {\r\n loading: false,\r\n user: action.payload,\r\n };\r\n\r\n case USER_DETAILS_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n\r\n case USER_DETAILS_RESET:\r\n return {\r\n user: null,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n///////////////////////////////////////// UPDATE USER PROFILE DETAILS /////////////////////////////////\r\n\r\nexport const userUpdateProfileReducer = (\r\n state = { loading: false, userInfo: null, error: null, success: false },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case USER_UPDATE_PROFILE_REQUEST:\r\n return { loading: true };\r\n case USER_UPDATE_PROFILE_SUCCESS:\r\n return {\r\n loading: false,\r\n userInfo: action.payload,\r\n success: true,\r\n };\r\n\r\n case USER_UPDATE_PROFILE_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n CREATE_ORDER_REQUEST,\r\n CREATE_ORDER_SUCCESS,\r\n CREATE_ORDER_FAILED,\r\n CREATE_ORDER_RESET,\r\n ORDER_DETAILS_REQUEST,\r\n ORDER_DETAILS_SUCCESS,\r\n ORDER_DETAILS_FAILED,\r\n ORDER_DETAILS_RESET,\r\n ORDER_PAY_REQUEST,\r\n ORDER_PAY_SUCCESS,\r\n ORDER_PAY_FAILED,\r\n ORDER_PAY_RESET,\r\n LIST_MY_ORDER_REQUEST,\r\n LIST_MY_ORDER_SUCCESS,\r\n LIST_MY_ORDER_FAILED,\r\n LIST_MY_ORDER_RESET,\r\n} from \"../actionTypes/orderConstants\";\r\n\r\nexport const createOrderReducer = (\r\n state = {\r\n loading: false,\r\n success: false,\r\n error: null,\r\n order: null,\r\n },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case CREATE_ORDER_REQUEST:\r\n return { loading: true };\r\n\r\n case CREATE_ORDER_SUCCESS:\r\n return {\r\n loading: false,\r\n order: action.payload,\r\n success: true,\r\n };\r\n\r\n case CREATE_ORDER_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n case CREATE_ORDER_RESET:\r\n return {};\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\nexport const orderDetailsReducer = (\r\n state = {\r\n loading: true,\r\n orders: null,\r\n error: null,\r\n },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case ORDER_DETAILS_REQUEST:\r\n return { ...state, loading: true };\r\n\r\n case ORDER_DETAILS_SUCCESS:\r\n return {\r\n loading: false,\r\n orders: action.payload,\r\n };\r\n\r\n case ORDER_DETAILS_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n\r\n case ORDER_DETAILS_RESET:\r\n return {\r\n orders: [],\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const orderPayReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case ORDER_PAY_REQUEST:\r\n return { loading: true };\r\n\r\n case ORDER_PAY_SUCCESS:\r\n return {\r\n loading: false,\r\n success: true,\r\n };\r\n\r\n case ORDER_PAY_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n\r\n case ORDER_PAY_RESET:\r\n return {};\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const myOrdersReducer = (\r\n state = { loading: false, orders: null, error: null },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case LIST_MY_ORDER_REQUEST:\r\n return { loading: true };\r\n\r\n case LIST_MY_ORDER_SUCCESS:\r\n return {\r\n loading: false,\r\n orders: action.payload,\r\n };\r\n\r\n case LIST_MY_ORDER_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n\r\n case LIST_MY_ORDER_RESET:\r\n return {\r\n orders: [],\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { fade, makeStyles } from \"@material-ui/core/styles\";\r\n\r\n/////////////////////// Custom Style //////////////////////////\r\nconst drawerWidth = 240;\r\n\r\nexport const useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n\r\n appbar: {\r\n padding: \"0.4rem\",\r\n background: \"linear-gradient(45deg, #0267B5, 30%, #2196f3 90%)\",\r\n },\r\n\r\n menu: {},\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n\r\n search: {\r\n position: \"relative\",\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: fade(theme.palette.common.white, 0.15),\r\n \"&:hover\": {\r\n backgroundColor: fade(theme.palette.common.white, 0.25),\r\n },\r\n marginLeft: 0,\r\n width: \"80%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: theme.spacing(1),\r\n width: \"auto\",\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"12ch\",\r\n \"&:focus\": {\r\n width: \"20ch\",\r\n },\r\n },\r\n },\r\n\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n drawerHeader: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: theme.spacing(0, 1),\r\n // necessary for content to be below app bar\r\n ...theme.mixins.toolbar,\r\n justifyContent: \"flex-end\",\r\n },\r\n\r\n link_brand: {\r\n color: \"inherit\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n color: \"inherit\",\r\n },\r\n },\r\n link_menu_item: {\r\n color: \"black\",\r\n textDecoration: \"none\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n },\r\n },\r\n link: {\r\n color: \"inherit\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n color: \"inherit\",\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n\r\n link_drawer: {\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n color: theme.palette.primary,\r\n },\r\n textDecoration: \"none\",\r\n },\r\n}));\r\n","import React, { useEffect, useState } from \"react\";\r\nimport InputBase from \"@material-ui/core/InputBase\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport { useStyles } from \"./CustomStyles/header\";\r\n\r\nexport default function SearchBox({ history }) {\r\n const classes = useStyles();\r\n\r\n const [keyword, setKeyword] = useState(\"\");\r\n useEffect(() => {\r\n // console.log(window.location.pathname);\r\n if (\r\n window.location.pathname === \"/\" ||\r\n window.location.pathname.includes(\"/search\")\r\n ) {\r\n if (keyword.trim()) {\r\n history.push(`/search?name=${keyword}`);\r\n } else {\r\n history.push(\"/\");\r\n }\r\n } else {\r\n setKeyword(\"\");\r\n }\r\n }, [keyword, history]);\r\n\r\n const handleSearchChange = (e) => {\r\n setKeyword(e.target.value);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n}\r\n","import axios from \"axios\";\r\nimport {\r\n USER_LOGIN_FAILED,\r\n USER_LOGIN_REQUEST,\r\n USER_LOGIN_SUCCESS,\r\n USER_LOGOUT,\r\n USER_REGISTER_FAILED,\r\n USER_REGISTER_REQUEST,\r\n USER_REGISTER_SUCCESS,\r\n USER_DETAILS_REQUEST,\r\n USER_DETAILS_SUCCESS,\r\n USER_DETAILS_FAILED,\r\n USER_DETAILS_RESET,\r\n USER_UPDATE_PROFILE_REQUEST,\r\n USER_UPDATE_PROFILE_SUCCESS,\r\n USER_UPDATE_PROFILE_FAILED,\r\n} from \"../actionTypes/userConstants\";\r\n\r\nimport { LIST_MY_ORDER_RESET } from \"../actionTypes/orderConstants\";\r\n\r\n///////////////////////////////////////////// ACTION ///////////////////////////////////////////////\r\n\r\n/////////// LOGIN ////////////////\r\n\r\nconst loginReq = () => ({\r\n type: USER_LOGIN_REQUEST,\r\n});\r\n\r\nconst addUser = (user) => ({\r\n type: USER_LOGIN_SUCCESS,\r\n payload: user,\r\n});\r\n\r\nconst loginFailed = (err) => ({\r\n type: USER_LOGIN_FAILED,\r\n payload: err,\r\n});\r\n\r\n/////////// REGISTER ////////////////\r\n\r\nconst registerReq = () => ({\r\n type: USER_REGISTER_REQUEST,\r\n});\r\n\r\nconst newUser = (user) => ({\r\n type: USER_REGISTER_SUCCESS,\r\n payload: user,\r\n});\r\n\r\nconst registerFailed = (err) => ({\r\n type: USER_REGISTER_FAILED,\r\n payload: err,\r\n});\r\n\r\n/////////// USER DETAILS ////////////////\r\n\r\nconst profileReq = () => ({\r\n type: USER_DETAILS_REQUEST,\r\n});\r\n\r\nconst getProfile = (user) => ({\r\n type: USER_DETAILS_SUCCESS,\r\n payload: user,\r\n});\r\n\r\nconst profileFailed = (err) => ({\r\n type: USER_DETAILS_FAILED,\r\n payload: err,\r\n});\r\n\r\n/////////// UPDATE USER DETAILS ////////////////\r\n\r\nconst updateProfileReq = () => ({\r\n type: USER_UPDATE_PROFILE_REQUEST,\r\n});\r\n\r\nconst updateProfile = (user) => ({\r\n type: USER_UPDATE_PROFILE_SUCCESS,\r\n payload: user,\r\n});\r\n\r\nconst updateProfileFailed = (err) => ({\r\n type: USER_UPDATE_PROFILE_FAILED,\r\n payload: err,\r\n});\r\n\r\n///////////////////////////////////////////// ACTION CREATOR ////////////////////////////////////////\r\n\r\n/////////// LOGIN ////////////////\r\n\r\nexport const loginUser = (API, email, password) => async (dispatch) => {\r\n try {\r\n dispatch(loginReq());\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n };\r\n const { data } = await axios.post(\r\n `${API}/user/login`,\r\n { email, password },\r\n config\r\n );\r\n dispatch(addUser(data));\r\n\r\n localStorage.setItem(\"userInfo\", JSON.stringify(data));\r\n\r\n /////////////////////////////// Remove from localStorage when token expire (time of token expiration) /////////////////////////\r\n setTimeout(() => {\r\n localStorage.removeItem(\"userInfo\");\r\n }, 3600000);\r\n } catch (error) {\r\n dispatch(\r\n loginFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n\r\n/////////// LOGOUT ////////////////\r\n\r\nexport const userLogout = () => (dispatch) => {\r\n localStorage.removeItem(\"userInfo\");\r\n dispatch({\r\n type: USER_LOGOUT,\r\n });\r\n dispatch({ type: LIST_MY_ORDER_RESET });\r\n dispatch({ type: USER_DETAILS_RESET });\r\n};\r\n\r\n/////////// REGISTER ////////////////\r\n\r\nexport const registerUser = (API, name, email, password) => async (\r\n dispatch\r\n) => {\r\n try {\r\n dispatch(registerReq());\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n };\r\n const { data } = await axios.post(\r\n `${API}/user/register`,\r\n { name, email, password },\r\n config\r\n );\r\n dispatch(newUser(data));\r\n dispatch(addUser(data));\r\n\r\n localStorage.setItem(\"userInfo\", JSON.stringify(data));\r\n\r\n /////////////////////////////// Remove from localStorage when token expire (time of token expiration) /////////////////////////\r\n setTimeout(() => {\r\n localStorage.removeItem(\"userInfo\");\r\n }, 3600000);\r\n } catch (error) {\r\n dispatch(\r\n registerFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n\r\n//////////////////// USER DETAILS (PROFILE) ///////////////////////\r\n\r\nexport const getUserDetails = (API, id) => async (dispatch, getState) => {\r\n try {\r\n dispatch(profileReq());\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.get(`${API}/user/${id}`, config);\r\n\r\n dispatch(getProfile(data));\r\n } catch (error) {\r\n dispatch(\r\n profileFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n\r\n//////////////////// UPDATE USER DETAILS (PROFILE) ///////////////////////\r\n\r\nexport const updateUserProfile = (API, user) => async (dispatch, getState) => {\r\n try {\r\n dispatch(updateProfileReq());\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.put(`${API}/user/profile`, user, config);\r\n\r\n dispatch(updateProfile(data));\r\n } catch (error) {\r\n dispatch(\r\n updateProfileFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { Route, Link } from \"react-router-dom\";\r\n\r\n/////////////////////// MATERIAL UI Component //////////////////\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Fade from \"@material-ui/core/Fade\";\r\n\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\n\r\n/////////////////////// MATERIAL ICONS ///////////////////////\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport ShoppingCartIcon from \"@material-ui/icons/ShoppingCart\";\r\nimport ExitToAppIcon from \"@material-ui/icons/ExitToApp\";\r\nimport GroupAddIcon from \"@material-ui/icons/GroupAdd\";\r\nimport AccountCircle from \"@material-ui/icons/AccountCircle\";\r\nimport PersonIcon from \"@material-ui/icons/Person\";\r\n\r\n///////////////////////// Search Box component ///////////////////\r\nimport SearchBox from \"./SearchProductBox\";\r\n\r\n///////////////////////// REDUX //////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { userLogout } from \"../redux/actions/userAction\";\r\n\r\n////////////////////////// CUSTOM STYLE /////////////////////////\r\nimport { useStyles } from \"./CustomStyles/header\";\r\n\r\nexport default function Header({ isMobile }) {\r\n const classes = useStyles();\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const openEl = Boolean(anchorEl);\r\n const [toggle, setToggle] = useState(false);\r\n\r\n //////////////////////// REDUX ////////////////////////////////\r\n const dispatch = useDispatch();\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n const logoutHandler = () => {\r\n dispatch(userLogout());\r\n setAnchorEl(null);\r\n };\r\n\r\n ////////////////////////// FOR Dropdown Menu /////////////////////////////\r\n const handleMenu = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n setToggle(true)}\r\n color=\"inherit\"\r\n aria-label=\"menu\"\r\n >\r\n \r\n \r\n \r\n \r\n eShop\r\n \r\n \r\n {/*// Search Box Component */}\r\n } />\r\n        \r\n {/*// CART BUTTON (if logged in goes to /cart otherwise redirect to /login ) //*/}\r\n \r\n \r\n \r\n {userInfo ? (\r\n /// DROPDOWN MENU IF USER EXISTS OR LOGGED IN ///\r\n
\r\n \r\n \r\n  \r\n {!isMobile ? userInfo.name.split(\" \")[0] : null}\r\n \r\n \r\n {/*// USER NAME ON MOBILE VIEW //*/}\r\n {isMobile ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {/*// PROFILE BUTTON if user is logged in */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*// LOGOUT BUTTON (if user is logged in) //*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ) : (\r\n /// LOGIN BUTTON IF USER DOES NOT EXISTS OR LOGGED OUT ///\r\n\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n\r\n {/*/// FOR MOBILE VIEW ///*/}\r\n setToggle(false)}>\r\n \r\n {userInfo ? (\r\n /// LOGOUT BUTTON IF USER EXISTS OR LOGGED IN ///\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n /// LOGIN BUTTON IF USER DOES NOT EXISTS OR LOGGED OUT ///\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from 'react'\r\nimport { Col, Container, Row } from 'react-bootstrap'\r\n\r\nconst Footer = () => {\r\n return (\r\n
\r\n \r\n \r\n \r\n

Copyright © 2020 by Shubham Dutta

\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Footer\r\n","import React from \"react\";\r\n\r\nimport \"../styles/components/Rating.css\";\r\n\r\nexport default function Rating({ value, text, color }) {\r\n return (\r\n <>\r\n
\r\n \r\n = 1\r\n ? \"fas fa-star\"\r\n : value >= 0.5\r\n ? \"fas fa-star-half-alt\"\r\n : \"far fa-star\"\r\n }\r\n style={{ color: color }}\r\n >\r\n \r\n \r\n = 2\r\n ? \"fas fa-star\"\r\n : value >= 1.5\r\n ? \"fas fa-star-half-alt\"\r\n : \"far fa-star\"\r\n }\r\n style={{ color: color }}\r\n >\r\n \r\n \r\n = 3\r\n ? \"fas fa-star\"\r\n : value >= 2.5\r\n ? \"fas fa-star-half-alt\"\r\n : \"far fa-star\"\r\n }\r\n style={{ color: color }}\r\n >\r\n \r\n \r\n = 4\r\n ? \"fas fa-star\"\r\n : value >= 3.5\r\n ? \"fas fa-star-half-alt\"\r\n : \"far fa-star\"\r\n }\r\n style={{ color: color }}\r\n >\r\n \r\n \r\n = 5\r\n ? \"fas fa-star\"\r\n : value >= 4.5\r\n ? \"fas fa-star-half-alt\"\r\n : \"far fa-star\"\r\n }\r\n style={{ color: color }}\r\n >\r\n \r\n {text}\r\n
\r\n \r\n );\r\n}\r\n\r\nRating.defaultProps = {\r\n color: \"#FAAE20\",\r\n};\r\n","import React from \"react\";\r\nimport { Card } from \"react-bootstrap\";\r\nimport Rating from \"./Rating\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport \"../styles/components/Products.css\";\r\n\r\nexport default function Products({ product, path }) {\r\n return (\r\n <>\r\n \r\n \r\n {/* */}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {product.name}\r\n \r\n \r\n\r\n \r\n
\r\n \r\n\r\n {/* {product.rating} from {product.numReviews} rating */}\r\n
\r\n
\r\n\r\n ${product.price}\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import axios from \"axios\";\r\n\r\nimport {\r\n PRODUCT_LIST_REQUEST,\r\n PRODUCT_LIST_SUCCESS,\r\n PRODUCT_LIST_FAILED,\r\n} from \"../actionTypes/productListConstants\";\r\n\r\n\r\n///////////////////// ACTIONS ///////////////////////////////\r\n\r\nconst reqProducts = () => ({\r\n type: PRODUCT_LIST_REQUEST,\r\n});\r\n\r\nconst addProducts = (products) => ({\r\n type: PRODUCT_LIST_SUCCESS,\r\n payload: products,\r\n});\r\n\r\nconst productsFailed = (errMess) => ({\r\n type: PRODUCT_LIST_FAILED,\r\n payload: errMess,\r\n});\r\n\r\n//////////////////// ACTION CREATOR ////////////////////////\r\n\r\nexport const listProducts = (keyword = \"\", API) => async (dispatch) => {\r\n try {\r\n dispatch(reqProducts());\r\n\r\n const { data } = await axios.get(`${API}/products?keyword=${keyword}`);\r\n\r\n dispatch(addProducts(data));\r\n\r\n console.log(data);\r\n } catch (error) {\r\n dispatch(\r\n productsFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n","import React from \"react\";\r\nimport { Spinner } from \"react-bootstrap\";\r\n\r\nexport default function Loader() {\r\n return (\r\n \r\n Loading...\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Alert } from \"@material-ui/lab\";\r\n\r\nconst Message = ({ varient, children }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default Message;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Pagination from \"@material-ui/lab/Pagination\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& > *\": {\r\n marginTop: theme.spacing(2),\r\n width: \"70rem\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n },\r\n mobile: {\r\n marginTop: theme.spacing(2),\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n}));\r\n\r\nexport default function BasicPagination({ totalPage, setPaginate, isMobile }) {\r\n const classes = useStyles();\r\n\r\n const handleChange = (event, page) => {\r\n setPaginate((prev) => ({\r\n ...prev,\r\n currentPage: page,\r\n }));\r\n if (isMobile) {\r\n window.scrollTo(0, 2820);\r\n } else {\r\n window.scrollTo(0, 3000);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","export const carousalData = [\r\n {\r\n image_desktop: \"/assets/images/carousal/Landing_electronics.png\",\r\n image_mobile: \"/assets/images/carousal/Landing_electronics_phone.png\",\r\n heading: \"Electronics Accessories\",\r\n para:\r\n \"Lorem Ipsum is simply dummy text of the print and type setting industry.\",\r\n id: \"#electronics\",\r\n },\r\n {\r\n image_desktop: \"/assets/images/carousal/Landing_home.png\",\r\n image_mobile: \"/assets/images/carousal/Landing_home_phone.png\",\r\n heading: \"Home Appliances\",\r\n para:\r\n \"Lorem Ipsum is simply dummy text of the print and type setting industry.\",\r\n id: \"#home_appliances\",\r\n },\r\n {\r\n image_desktop: \"/assets/images/carousal/Landing_mens.png\",\r\n image_mobile: \"/assets/images/carousal/Landing_mens_phone.png\",\r\n heading: \"Mens Accessories\",\r\n para:\r\n \"Lorem Ipsum is simply dummy text of the print and type setting industry.\",\r\n\r\n id: \"#mens_accessories\",\r\n },\r\n {\r\n image_desktop: \"/assets/images/carousal/Landing_womens.png\",\r\n image_mobile: \"/assets/images/carousal/Landing_womens_phone.png\",\r\n heading: \"Womens Accessories\",\r\n para:\r\n \"Lorem Ipsum is simply dummy text of the print and type setting industry.\",\r\n id: \"#womens_accessories\",\r\n },\r\n];\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Row, Col } from \"react-bootstrap\";\r\nimport Product from \"../components/Products\";\r\n\r\n// Owl Carousal\r\nimport OwlCarousel from \"react-owl-carousel\";\r\nimport \"owl.carousel/dist/assets/owl.carousel.css\";\r\nimport \"owl.carousel/dist/assets/owl.theme.default.css\";\r\n\r\n// Redux\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { listProducts } from \"../redux/actions/productListAction\";\r\n\r\n// Components\r\nimport Loader from \"../components/Loader\";\r\nimport ErrMess from \"../components/Message\";\r\nimport Paginate from \"../components/Paginate\";\r\n\r\n// Carousal Data\r\nimport { carousalData } from \"../utils/carousalData\";\r\n\r\n// Styling\r\nimport \"../styles/Screen/HomeScreen.css\";\r\n\r\nexport default function Home({ location, API, isMobile }) {\r\n // option for card carousal\r\n const options = {\r\n loop: false,\r\n dots: false,\r\n margin: 10,\r\n nav: true,\r\n navText: [\r\n \"\",\r\n \"\",\r\n ],\r\n responsive: {\r\n 320: {\r\n items: 1,\r\n },\r\n 768: {\r\n items: 3,\r\n },\r\n 1000: {\r\n items: 4,\r\n },\r\n },\r\n };\r\n\r\n // option for hero section carousal\r\n const options2 = {\r\n loop: true,\r\n margin: 100,\r\n nav: true,\r\n autoplay: true,\r\n autoplayTimeout: 4000,\r\n lazyLoad: true,\r\n smartSpeed: 1000,\r\n items: 1,\r\n };\r\n\r\n // fetching datas of productList from redux state\r\n const dispatch = useDispatch();\r\n const productList = useSelector((state) => state.productList);\r\n const { loading, products, error } = productList;\r\n\r\n // PAGINATION CALCULATIONS\r\n const [paginate, setPaginate] = useState({\r\n allProducts: [],\r\n currentPage: 1,\r\n allProductsPerPage: !isMobile ? 6 : 1,\r\n });\r\n\r\n useEffect(() => {\r\n setPaginate((prev) => ({\r\n ...prev,\r\n allProducts: products,\r\n }));\r\n\r\n window.scrollTo(0, 0);\r\n }, [loading, products]);\r\n\r\n const { allProducts, currentPage, allProductsPerPage } = paginate;\r\n\r\n // Logic for displaying current allProducts\r\n const indexOfLastProduct = currentPage * allProductsPerPage;\r\n const indexOfFirstProduct = indexOfLastProduct - allProductsPerPage;\r\n const currentProducts = allProducts.slice(\r\n indexOfFirstProduct,\r\n indexOfLastProduct\r\n );\r\n const totalPage = Math.ceil(allProducts.length / allProductsPerPage);\r\n // ENDS PAGINATION CALCULATIONS\r\n\r\n // SEARCH by query in route\r\n const [isQuerying, setIsQuerying] = useState(false);\r\n\r\n const query = new URLSearchParams(location.search);\r\n const keyword = query.get(\"name\") || \"\";\r\n // const pageNumber = parseInt(query.get(\"pageNumber\")) || \"\";\r\n\r\n useEffect(() => {\r\n if (keyword) {\r\n setIsQuerying(true);\r\n } else {\r\n setIsQuerying(false);\r\n }\r\n dispatch(listProducts(keyword, API));\r\n }, [dispatch, keyword, API]);\r\n\r\n // Scroll on Click to products category in carousel\r\n const electronicsRef = useRef(null); // To Electronics\r\n const homeRef = useRef(null); // To Home Appliances\r\n const mensRef = useRef(null); // To Mens Accessories\r\n const womensRef = useRef(null); // To Womens Accessories\r\n\r\n // function to scroll to desired position smoothly\r\n const executeScroll = (id) => {\r\n if (id === \"#electronics\") {\r\n electronicsRef.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n } else if (id === \"#home_appliances\") {\r\n homeRef.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n } else if (id === \"#mens_accessories\") {\r\n mensRef.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n } else if (id === \"#womens_accessories\") {\r\n womensRef.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {/*// CAROUSAL /// */}\r\n\r\n \r\n {carousalData.map((data, index) => (\r\n \r\n \r\n \r\n {data.heading}\r\n \r\n \r\n {data.para}\r\n \r\n executeScroll(data.id)}\r\n className={\r\n isMobile ? \"carousal_button_phone\" : \"carousal_button\"\r\n }\r\n >\r\n SHOP NOW\r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n {/* ///////////////// BUG: Render carusal before children ////////// */}\r\n {/*////////////////// SOLUTION: ADD key to OwlCarousal */}\r\n\r\n
\r\n {/*// if nothing there to search then show all category division of products otherwise not //*/}\r\n {!isQuerying ? (\r\n <>\r\n {/* ELECTRONICS */}\r\n \r\n Electronics Accessories\r\n \r\n\r\n \r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n products && (\r\n \r\n {products\r\n .filter((p) => p.category === \"electronics\")\r\n .map((electronic, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n )}\r\n \r\n\r\n {/* HOME APPLIANCES */}\r\n \r\n Home Appliances\r\n \r\n\r\n \r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n products && (\r\n \r\n {products\r\n .filter((p) => p.category === \"home_appliances\")\r\n .map((home_appliance, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n )}\r\n \r\n\r\n {/* MENS'S ACCESSORIES */}\r\n \r\n Men's Accessories\r\n \r\n\r\n \r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n products && (\r\n \r\n {products\r\n .filter((p) => p.category === \"mens_accessories\")\r\n .map((mens_accessory, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n )}\r\n \r\n\r\n {/* WOMEN'S ACCESSORIES */}\r\n \r\n Women's Accessories\r\n \r\n\r\n \r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n products && (\r\n \r\n {products\r\n .filter((p) => p.category === \"womens_accessories\")\r\n .map((womens_accessory, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n )}\r\n \r\n \r\n ) : null}\r\n\r\n {/*// CAROUSAL ENDS //*/}\r\n\r\n {/* ALL PRODUCTS */}\r\n \r\n Latest Products\r\n \r\n\r\n \r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n currentProducts.map((product, index) => (\r\n \r\n \r\n \r\n ))\r\n )}\r\n\r\n {/*// PAGINATION COMPONENT //*/}\r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\n\r\nconst ProductScreenSkeleton = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProductScreenSkeleton;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n Row,\r\n Col,\r\n Image,\r\n ListGroup,\r\n Card,\r\n Button,\r\n Form,\r\n} from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n////////////////// COMPONENTS //////////////////////////\r\nimport Rating from \"../components/Rating\";\r\nimport Message from \"../components/Message\";\r\nimport Skeleton from \"./skeletons/ProductScreenSkeleton\";\r\n\r\n///////////////// REDUX ///////////////////////////////////\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n listProductDetails,\r\n createProductReview,\r\n} from \"../redux/actions/productDetailsAction\";\r\nimport { PRODUCT_CREATE_REVIEW_RESET } from \"../redux/actionTypes/productDetailsConstants\";\r\n\r\nimport \"../styles/Screen/ProductScreen.css\";\r\n\r\nexport default function ProductScreen({ history, match, API, isMobile }) {\r\n const [qty, setQty] = useState(1);\r\n const [rating, setRating] = useState(0);\r\n const [comment, setComment] = useState(\"\");\r\n\r\n ////////////////// fetching datas of productList from redux state ////////////////////////\r\n\r\n const dispatch = useDispatch();\r\n\r\n // product details\r\n const productDetails = useSelector((state) => state.productDetails);\r\n const { loading, product, error } = productDetails;\r\n\r\n // create product review reducer\r\n const productCreateReview = useSelector((state) => state.productCreateReview);\r\n const {\r\n success: successProductReview,\r\n error: errorProductReview,\r\n } = productCreateReview;\r\n\r\n // user login credentials\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (successProductReview) {\r\n dispatch({ type: PRODUCT_CREATE_REVIEW_RESET });\r\n alert(\"Review Submitted Successfully\");\r\n setRating(0);\r\n setComment(\"\");\r\n }\r\n dispatch(listProductDetails(API, match.params.category, match.params.id));\r\n }, [dispatch, match, successProductReview, API]);\r\n\r\n console.log(product.reviews);\r\n ////////////////////// Redirect to Cart page ///////////////////////\r\n\r\n const addToCartHandler = () => {\r\n history.push(\r\n `/cart/${match.params.category}/${match.params.id}?qty=${qty}`\r\n );\r\n };\r\n\r\n // submit product review\r\n const submitReviewHandler = (e) => {\r\n e.preventDefault();\r\n dispatch(\r\n createProductReview(API, match.params.category, match.params.id, {\r\n rating: rating,\r\n comment: comment,\r\n })\r\n );\r\n };\r\n\r\n ///////////////////// GO BACK ////////////////////////\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n\r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n

\r\n {product.name}\r\n

\r\n
\r\n \r\n \r\n
Price:
\r\n
\r\n {product.price}\r\n
\r\n \r\n \r\n
\r\n Description:\r\n
\r\n
\r\n

{product.description}

\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Price: \r\n \r\n ${product.price}\r\n \r\n \r\n \r\n \r\n \r\n Status: \r\n \r\n \r\n ${product.countInStock ? \"In Stock\" : \"Out Of Stock\"}\r\n \r\n \r\n \r\n \r\n {product.countInStock > 0 && (\r\n \r\n \r\n Quantity: \r\n \r\n setQty(e.target.value)}\r\n >\r\n {[...Array(product.countInStock).keys()].map(\r\n (q) => (\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ADD TO CART\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/*// list down product reviews and create review //*/}\r\n \r\n \r\n \r\n Product Reviews\r\n \r\n \r\n {product.reviews && product.reviews.length === 0 && (\r\n No Reviews\r\n )}\r\n\r\n \r\n {product.reviews &&\r\n product.reviews.map((review) => {\r\n return (\r\n \r\n
\r\n

\r\n {review.name}\r\n

{\" \"}\r\n \r\n
\r\n\r\n
\r\n {review.createdAt.substring(0, 10)} \r\n {review.comment}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n\r\n \r\n \r\n \r\n Write Your Review\r\n \r\n {errorProductReview && (\r\n {errorProductReview}\r\n )}\r\n {userInfo ? (\r\n
\r\n \r\n \r\n Rating\r\n \r\n setRating(e.target.value)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Your Comment\r\n \r\n setComment(e.target.value)}\r\n >\r\n \r\n \r\n Submit\r\n \r\n \r\n ) : (\r\n \r\n Please sign in to write a review\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import {\r\n PRODUCT_DETAILS_REQUEST,\r\n PRODUCT_DETAILS_SUCCESS,\r\n PRODUCT_DETAILS_FAILED,\r\n PRODUCT_CREATE_REVIEW_REQUEST,\r\n PRODUCT_CREATE_REVIEW_FAILED,\r\n PRODUCT_CREATE_REVIEW_SUCCESS,\r\n} from \"../actionTypes/productDetailsConstants\";\r\n\r\nimport axios from \"axios\";\r\n\r\n////////////////////// ACTIONS /////////////////////////////\r\n\r\n// product details\r\nconst reqProduct = () => ({\r\n type: PRODUCT_DETAILS_REQUEST,\r\n});\r\n\r\nconst addProduct = (product) => ({\r\n type: PRODUCT_DETAILS_SUCCESS,\r\n payload: product,\r\n});\r\n\r\nconst productFailed = (errMess) => ({\r\n type: PRODUCT_DETAILS_FAILED,\r\n payload: errMess,\r\n});\r\n\r\n// create products review\r\nconst reqProductReview = () => ({\r\n type: PRODUCT_CREATE_REVIEW_REQUEST,\r\n});\r\n\r\nconst addProductReview = () => ({\r\n type: PRODUCT_CREATE_REVIEW_SUCCESS,\r\n});\r\n\r\nconst productReviewFailed = (errMess) => ({\r\n type: PRODUCT_CREATE_REVIEW_FAILED,\r\n payload: errMess,\r\n});\r\n\r\n/////////////////////// ACTION CREATOR ///////////////////////////\r\n\r\n// list all product details\r\nexport const listProductDetails = (API, category, id) => async (dispatch) => {\r\n try {\r\n dispatch(reqProduct());\r\n\r\n const { data } = await axios.get(`${API}/products/${category}/${id}`);\r\n\r\n dispatch(addProduct(data));\r\n } catch (error) {\r\n dispatch(\r\n productFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n\r\n// Create product Review\r\nexport const createProductReview = (API, category, id, review) => async (\r\n dispatch,\r\n getState\r\n) => {\r\n try {\r\n dispatch(reqProductReview());\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n await axios.post(\r\n `${API}/products/${category}/${id}/reviews`,\r\n review,\r\n config\r\n );\r\n\r\n dispatch(addProductReview());\r\n } catch (error) {\r\n dispatch(\r\n productReviewFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n","import axios from \"axios\";\r\n\r\nimport {\r\n CART_ITEM_ADD,\r\n CART_ITEM_REMOVE,\r\n CART_SAVE_SHIPPING_ADDRESS,\r\n CART_SAVE_PAYMENT_METHOD,\r\n CART_ITEM_RESET,\r\n} from \"../actionTypes/cartConstants\";\r\n\r\n/////////////////////////// ACTIONS /////////////////////////////////\r\n\r\nconst addCart = (data, qty) => ({\r\n type: CART_ITEM_ADD,\r\n payload: {\r\n product: data._id,\r\n name: data.name,\r\n image: data.image,\r\n price: data.price,\r\n category: data.category,\r\n countInStock: data.countInStock,\r\n qty,\r\n },\r\n});\r\n\r\nconst removeCart = (id) => ({\r\n type: CART_ITEM_REMOVE,\r\n payload: id,\r\n});\r\n\r\nconst shippingAddress = (data) => ({\r\n type: CART_SAVE_SHIPPING_ADDRESS,\r\n payload: data,\r\n});\r\n\r\nconst paymentMethod = (data) => ({\r\n type: CART_SAVE_PAYMENT_METHOD,\r\n payload: data,\r\n});\r\n\r\n//////////////////////////// ACTION CREATOR //////////////////////////\r\n\r\n////////// ADD TO CART ///////////////////\r\nexport const addToCart = (API, id, category, qty) => async (\r\n dispatch,\r\n getState\r\n) => {\r\n const { data } = await axios.get(`${API}/products/${category}/${id}`);\r\n dispatch(addCart(data, qty));\r\n // Adding cartItems to localStorage\r\n localStorage.setItem(\"cartItems\", JSON.stringify(getState().cart.cartItems));\r\n};\r\n\r\n////////// REMOVE FROM CART ///////////////////\r\nexport const removeFromCart = (id) => (dispatch, getState) => {\r\n dispatch(removeCart(id));\r\n // Adding to localStorage after removing particular product\r\n localStorage.setItem(\"cartItems\", JSON.stringify(getState().cart.cartItems));\r\n};\r\n\r\n////////// SAVE SHIPPING ADDRESS ///////////////////\r\nexport const addShippingAddress = (data) => (dispatch) => {\r\n dispatch(shippingAddress(data));\r\n\r\n localStorage.setItem(\"shippingAddress\", JSON.stringify(data));\r\n};\r\n\r\n////////// SAVE PAYMENT METHOD ///////////////////\r\nexport const addPaymentMethod = (data) => (dispatch) => {\r\n dispatch(paymentMethod(data));\r\n\r\n localStorage.setItem(\"paymentMethod\", JSON.stringify(data));\r\n};\r\n\r\n////////// RESET CART ITEMS ///////////////////\r\nexport const emptyCart = () => (dispatch) => {\r\n dispatch({ type: CART_ITEM_RESET });\r\n\r\n localStorage.removeItem(\"cartItems\");\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport {\r\n Row,\r\n Col,\r\n Button,\r\n Card,\r\n ListGroup,\r\n Image,\r\n Form,\r\n} from \"react-bootstrap\";\r\n\r\n////////////////// COMPONENTS //////////////////////////\r\nimport Message from \"../components/Message\";\r\n\r\n///////////////// REDUX ///////////////////////////////////\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { addToCart, removeFromCart } from \"../redux/actions/cartAction\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n////////////////// CSS style //////////////////////////////\r\n\r\nimport \"../styles/Screen/CartScreen.css\";\r\n\r\nconst CartScreen = ({ match, location, history, isMobile, API }) => {\r\n const productId = match.params.id;\r\n const category = match.params.category;\r\n const qty = location.search ? Number(location.search.split(\"=\")[1]) : 1;\r\n\r\n const dispatch = useDispatch();\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n const cart = useSelector((state) => state.cart);\r\n const { cartItems } = cart;\r\n\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n } else if (productId) {\r\n dispatch(addToCart(API, productId, category, qty));\r\n }\r\n }, [dispatch, productId, qty, category, userInfo, history, API]);\r\n\r\n //////////////////// remove cart Handler /////////////////////////\r\n\r\n const removecartHandler = (productId) => {\r\n console.log(productId);\r\n dispatch(removeFromCart(productId));\r\n };\r\n\r\n //////////////////// Checkout Process Handler /////////////////////////\r\n\r\n const checkoutHandler = () => {\r\n history.push(\"/login?redirect=shipping\");\r\n console.log(\"CHECKOUT\");\r\n };\r\n\r\n //////////////////// GO BACK //////////////////////////////////\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n return (\r\n <>\r\n {/*////////////////////////// BREADCRUMB OF NAV //////////////////////////*/}\r\n\r\n \r\n\r\n \r\n {/*/////////////////////////// CART WHOLE SECTION /////////////////////////////*/}\r\n\r\n \r\n {/*////////////////////////// 1. CART LEFT SECTION //////////////////////////////*/}\r\n \r\n

\r\n YOUR CART ({cartItems && cartItems.length})\r\n ITEM\r\n

\r\n\r\n
\r\n\r\n {/*////////////// CART == EMPTY -> ErrMess => Else => loop through cartItems ////////////*/}\r\n\r\n {cartItems.length === 0 ? (\r\n \r\n Your cart is empty \r\n Keep Shopping\r\n \r\n ) : (\r\n \r\n {!isMobile ? (\r\n \r\n \r\n \r\n

Image

\r\n \r\n \r\n

Name

\r\n \r\n \r\n

Price

\r\n \r\n \r\n

Quantity

\r\n \r\n
\r\n
\r\n ) : null}\r\n {cartItems.map((item) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n ${item.price}\r\n \r\n \r\n \r\n dispatch(\r\n addToCart(\r\n item.product,\r\n item.category,\r\n Number(e.target.value)\r\n )\r\n )\r\n }\r\n >\r\n {[...Array(item.countInStock).keys()].map((q) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n removecartHandler(item.product)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n
\r\n )}\r\n \r\n\r\n {/*////////////////////////// 2. CART RIGHT SECTION /////////////////////////////*/}\r\n \r\n \r\n \r\n \r\n \r\n PROCEED TO PAY\r\n \r\n \r\n \r\n

\r\n ORDER SUMMARY\r\n

\r\n
\r\n \r\n \r\n \r\n

Subtotal:

\r\n \r\n \r\n
\r\n ({cartItems.reduce((acc, item) => acc + item.qty, 0)})\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n

Price:

\r\n \r\n \r\n
\r\n $\r\n {cartItems\r\n .reduce((acc, item) => acc + item.qty * item.price, 0)\r\n .toFixed(2)}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n

Delivery:

\r\n \r\n \r\n
Free
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n

Total:

\r\n \r\n \r\n
\r\n $\r\n {cartItems\r\n .reduce((acc, item) => acc + item.qty * item.price, 0)\r\n .toFixed(2)}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CartScreen;\r\n","import { makeStyles } from \"@material-ui/core/styles\";\r\n\r\n////////////////////////////// CUSTOM STYLES /////////////////////////////\r\n\r\nexport const useStyle = makeStyles((theme) => ({\r\n form: {\r\n padding: theme.spacing(2.6),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n },\r\n paper: {\r\n width: \"50%\",\r\n margin: \"auto\",\r\n marginTop: \"0.4rem\",\r\n\r\n paddingTop: theme.spacing(2.4),\r\n [theme.breakpoints.down(\"sm\")]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n avatar: {\r\n width: \"3.1rem\",\r\n height: \"3.1rem\",\r\n marginLeft: \"50%\",\r\n marginBottom: \"0.8rem\",\r\n transform: \"translateX(-50%)\",\r\n backgroundImage: \"linear-gradient(45deg, #2196f3, 70%, #045694 90%)\",\r\n },\r\n\r\n heading: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n marginBottom: \"0.6rem\",\r\n marginTop: \"0.6rem\",\r\n color: \"#1853F3\",\r\n fontSize: \"1.7rem\",\r\n [theme.breakpoints.down(\"xs\")]: {\r\n fontSize: \"1.4rem\",\r\n },\r\n },\r\n\r\n input: {\r\n \"& label\": {\r\n color: theme.palette.info.main,\r\n fontWeight: \"550\",\r\n },\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n borderColor: \"#46BFE0\",\r\n },\r\n },\r\n paddingBottom: theme.spacing(2.8),\r\n width: \"80%\",\r\n\r\n [theme.breakpoints.down(\"xs\")]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n button: {\r\n background: \"linear-gradient(45deg, #2196F3 30%, #21CBF3 90%)\",\r\n width: \"80%\",\r\n marginBottom: \"0.8rem\",\r\n\r\n [theme.breakpoints.down(\"xs\")]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n icon: {\r\n width: \"1.2rem\",\r\n },\r\n\r\n register: {\r\n paddingTop: theme.spacing(2.8),\r\n marginLeft: \"6rem\",\r\n\r\n [theme.breakpoints.down(\"xs\")]: {\r\n marginLeft: \"auto\",\r\n },\r\n },\r\n\r\n login: {\r\n paddingTop: theme.spacing(2.8),\r\n marginLeft: \"6rem\",\r\n\r\n [theme.breakpoints.down(\"xs\")]: {\r\n marginLeft: \"auto\",\r\n },\r\n },\r\n\r\n selectLabel: {\r\n fontSize: \"1.4rem\",\r\n textAlign: \"center\",\r\n color: \"#1853F3\",\r\n },\r\n\r\n back: {\r\n marginLeft: \"0.6rem\",\r\n width: \"2rem\",\r\n height: \"2rem\",\r\n marginBottom: \"-1rem\",\r\n backgroundImage: \"linear-gradient(45deg, #2196f3, 70%, #045694 90%)\",\r\n borderRadius: \"2rem\",\r\n padding: \"0.3rem 0 0.3rem 0.5rem\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n },\r\n}));\r\n","import { withStyles } from \"@material-ui/core/styles\";\r\nimport StepConnector from \"@material-ui/core/StepConnector\";\r\n\r\n////////////////////////////// Step Connector ///////////////////////////////\r\nexport const CheckoutStepConnector = withStyles({\r\n alternativeLabel: {\r\n top: 22,\r\n },\r\n\r\n active: {\r\n \"& $line\": {\r\n backgroundImage: \"linear-gradient(45deg, #2196f3, 30%, #045694 90%)\",\r\n },\r\n },\r\n completed: {\r\n \"& $line\": {\r\n backgroundImage: \"linear-gradient(45deg, #045694, 30%, #2196f3 90%)\",\r\n },\r\n },\r\n line: {\r\n height: 3,\r\n border: 0,\r\n backgroundColor: \"#eaeaf0\",\r\n borderRadius: 1,\r\n },\r\n})(StepConnector);\r\n","import { makeStyles } from \"@material-ui/core/styles\";\r\nimport clsx from \"clsx\";\r\nimport {\r\n AccountBalance,\r\n LocalShipping,\r\n PeopleAlt,\r\n ShoppingBasket,\r\n} from \"@material-ui/icons\";\r\n\r\n///////////////////////////////////////////// Style Step Icon //////////////////////////////////////////////\r\nexport const useStepIconStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"#ccc\",\r\n zIndex: 1,\r\n color: \"#fff\",\r\n width: \"3.2rem\",\r\n height: \"3.2rem\",\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n [theme.breakpoints.down(\"xs\")]: {\r\n width: \"2.4rem\",\r\n height: \"2.4rem\",\r\n },\r\n },\r\n active: {\r\n backgroundImage: \"linear-gradient(45deg, #045694, 30%, #2196f3 90%)\",\r\n boxShadow: \"0 8px 22px 0 rgba(0,0,0,.25)\",\r\n },\r\n completed: {\r\n backgroundImage: \"linear-gradient(45deg, #045694, 30%, #2196f3 90%)\",\r\n },\r\n}));\r\n\r\n//////////////////////////////////////////// Step Icon /////////////////////////////////////////////\r\nexport function StepIcon(props) {\r\n const classes = useStepIconStyles();\r\n const { active, completed } = props;\r\n\r\n const icons = {\r\n 1: ,\r\n 2: ,\r\n 3: ,\r\n 4: ,\r\n };\r\n\r\n return (\r\n \r\n {icons[String(props.icon)]}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Stepper from \"@material-ui/core/Stepper\";\r\nimport Step from \"@material-ui/core/Step\";\r\nimport StepLabel from \"@material-ui/core/StepLabel\";\r\n\r\n//////////////////////////////////// CUSTOM STYLE COMPONENTS /////////////////////////////////////////\r\nimport { CheckoutStepConnector } from \"./CustomStyles/CheckoutStepper/StepConnector\";\r\nimport { StepIcon } from \"./CustomStyles/CheckoutStepper/StepIcon\";\r\n\r\nfunction getSteps() {\r\n return [\"Sign In\", \"Shipping\", \"Payment\", \"Place Order\"];\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n}));\r\n\r\nexport default function CheckoutStepper({ step }) {\r\n const classes = useStyles();\r\n const steps = getSteps();\r\n\r\n return (\r\n
\r\n }\r\n >\r\n {steps.map((label) => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n///////////////////////////////////////// MATERIAL UI ////////////////////////////////\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport { Avatar, Button } from \"@material-ui/core\";\r\n\r\n/////////////////////////////////////// MATERIAL UI ICONS ///////////////////////////////\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport EmailIcon from \"@material-ui/icons/Email\";\r\nimport PeopleIcon from \"@material-ui/icons/People\";\r\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\r\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\r\nimport LockIcon from \"@material-ui/icons/Lock\";\r\n\r\n//////////////////////////////////////// REDUX /////////////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { loginUser } from \"../redux/actions/userAction\";\r\n\r\n/////////////////////////////////////// CUSTOM STYLE /////////////////////////////////////\r\nimport { useStyle } from \"./customStyle/allFormsScreen\";\r\n\r\nimport CheckoutStepper from \"../components/CheckoutStepper\";\r\nimport Message from \"../components/Message\";\r\nimport Loader from \"../components/Loader\";\r\n\r\nconst LoginScreen = ({ history, location, API }) => {\r\n const classes = useStyle();\r\n\r\n const [email, setEmail] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [passwordVisibility, setPasswordVisibility] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const login = useSelector((state) => state.userLogin);\r\n const { loading, error, userInfo } = login;\r\n\r\n // FOR SHIPPING PAGE REDIRECT OR HOME //\r\n const redirect = location.search ? location.search.split(\"=\")[1] : \"/\";\r\n\r\n useEffect(() => {\r\n // if user logged in redirect to particular query ('register', 'cart', 'shipping')\r\n if (userInfo) {\r\n history.push(redirect);\r\n }\r\n }, [userInfo, history, redirect]);\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n //DISPATCH LOGIN\r\n dispatch(loginUser(API, email, password));\r\n };\r\n\r\n return (\r\n <>\r\n {redirect === \"shipping\" ? : null}\r\n \r\n \r\n \r\n \r\n \r\n Sign in\r\n \r\n\r\n {/*/////////////////////////////// LOADER /////////////////////////////////////////*/}\r\n {loading && }\r\n\r\n
\r\n \r\n Email\r\n setEmail(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={70}\r\n />\r\n \r\n\r\n \r\n \r\n Password\r\n \r\n setPassword(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n endAdornment={\r\n \r\n setPasswordVisibility(!passwordVisibility)}\r\n onMouseDown={(e) => e.preventDefault()}\r\n edge=\"end\"\r\n >\r\n {passwordVisibility ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n }\r\n labelWidth={70}\r\n />\r\n \r\n\r\n {/*////////////////////// VALIDATION ERROR MESSAGE ////////////////////////*/}\r\n {error && {error}}\r\n\r\n \r\n Sign In\r\n \r\n\r\n \r\n \r\n \r\n Haven't Registered yet?  \r\n \r\n Register\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LoginScreen;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n///////////////////////////////////////// MATERIAL UI ////////////////////////////////\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport { Avatar, Button } from \"@material-ui/core\";\r\n\r\n/////////////////////////////////////// MATERIAL UI ICONS ///////////////////////////////\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport EmailIcon from \"@material-ui/icons/Email\";\r\nimport PeopleIcon from \"@material-ui/icons/People\";\r\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\r\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\r\nimport LockIcon from \"@material-ui/icons/Lock\";\r\n\r\n//////////////////////////////////////// REDUX /////////////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { registerUser } from \"../redux/actions/userAction\";\r\n\r\n/////////////////////////////////////// CUSTOM STYLE /////////////////////////////////////\r\nimport { useStyle } from \"./customStyle/allFormsScreen\";\r\n\r\nimport Message from \"../components/Message\";\r\nimport Loader from \"../components/Loader\";\r\n\r\nconst RegisterScreen = ({ history, location, API }) => {\r\n const classes = useStyle();\r\n\r\n const [email, setEmail] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [name, setName] = useState(\"\");\r\n const [confirmPassword, setConfirmPassword] = useState(\"\");\r\n const [passwordVisibility, setPasswordVisibility] = useState(false);\r\n const [confirmPasswordVisibility, setConfirmPasswordVisibility] = useState(\r\n false\r\n );\r\n const [message, setMessage] = useState(null);\r\n\r\n const dispatch = useDispatch();\r\n const register = useSelector((state) => state.userRegister);\r\n const { loading, error, userInfo } = register;\r\n\r\n const redirect = location.search ? location.search.split(\"=\")[1] : \"/\";\r\n\r\n useEffect(() => {\r\n if (userInfo) {\r\n history.push(redirect);\r\n }\r\n }, [userInfo, history, redirect]);\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n\r\n //DISPATCH REGISTER\r\n if (password === confirmPassword) {\r\n dispatch(registerUser(API, name, email, password));\r\n } else {\r\n setMessage(\"Password does not match\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Sign Up\r\n \r\n\r\n {/*/////////////////////////////// LOADER /////////////////////////////////////////*/}\r\n {loading && }\r\n\r\n
\r\n \r\n Name\r\n setName(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={45}\r\n />\r\n \r\n\r\n \r\n Email\r\n setEmail(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={40}\r\n />\r\n \r\n\r\n \r\n \r\n Password\r\n \r\n setPassword(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n endAdornment={\r\n \r\n setPasswordVisibility(!passwordVisibility)}\r\n onMouseDown={(e) => e.preventDefault()}\r\n edge=\"end\"\r\n >\r\n {passwordVisibility ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n }\r\n labelWidth={70}\r\n />\r\n \r\n\r\n \r\n \r\n Confirm Password\r\n \r\n setConfirmPassword(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n endAdornment={\r\n \r\n \r\n setConfirmPasswordVisibility(!confirmPasswordVisibility)\r\n }\r\n onMouseDown={(e) => e.preventDefault()}\r\n edge=\"end\"\r\n >\r\n {confirmPasswordVisibility ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n }\r\n labelWidth={135}\r\n />\r\n \r\n\r\n {/*////////////////////// VALIDATION ERROR MESSAGE ////////////////////////*/}\r\n\r\n {error && {error}}\r\n {message && {message}}\r\n\r\n \r\n Register\r\n \r\n\r\n \r\n \r\n \r\n Already Registered?  \r\n \r\n Login\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default RegisterScreen;\r\n","import {\r\n CREATE_ORDER_REQUEST,\r\n CREATE_ORDER_SUCCESS,\r\n CREATE_ORDER_FAILED,\r\n ORDER_DETAILS_REQUEST,\r\n ORDER_DETAILS_SUCCESS,\r\n ORDER_DETAILS_FAILED,\r\n ORDER_PAY_REQUEST,\r\n ORDER_PAY_SUCCESS,\r\n ORDER_PAY_FAILED,\r\n LIST_MY_ORDER_REQUEST,\r\n LIST_MY_ORDER_SUCCESS,\r\n LIST_MY_ORDER_FAILED,\r\n} from \"../actionTypes/orderConstants\";\r\n\r\nimport axios from \"axios\";\r\n////////////////////////////// ACTIONS ///////////////////////////////\r\n\r\n///////////// ORDER CREATE ///////////////\r\nconst reqOrder = () => ({\r\n type: CREATE_ORDER_REQUEST,\r\n});\r\n\r\nconst addOrder = (order) => ({\r\n type: CREATE_ORDER_SUCCESS,\r\n payload: order,\r\n});\r\n\r\nconst orderFailed = (error) => ({\r\n type: CREATE_ORDER_FAILED,\r\n payload: error,\r\n});\r\n\r\n///////////// Order Details ///////////////\r\nconst reqOrderDetails = () => ({\r\n type: ORDER_DETAILS_REQUEST,\r\n});\r\n\r\nconst addOrderDetails = (order) => ({\r\n type: ORDER_DETAILS_SUCCESS,\r\n payload: order,\r\n});\r\n\r\nconst orderDetailsFailed = (error) => ({\r\n type: ORDER_DETAILS_FAILED,\r\n payload: error,\r\n});\r\n\r\n// ///////////// PAY Order ///////////////\r\nconst reqPayOrder = () => ({\r\n type: ORDER_PAY_REQUEST,\r\n});\r\n\r\nconst addPayOrder = (order) => ({\r\n type: ORDER_PAY_SUCCESS,\r\n payload: order,\r\n});\r\n\r\nconst payOrderFailed = (error) => ({\r\n type: ORDER_PAY_FAILED,\r\n payload: error,\r\n});\r\n\r\n///////////// MY ORDERS ///////////////\r\nconst reqMyOrders = () => ({\r\n type: LIST_MY_ORDER_REQUEST,\r\n});\r\n\r\nconst addMyOrders = (order) => ({\r\n type: LIST_MY_ORDER_SUCCESS,\r\n payload: order,\r\n});\r\n\r\nconst myOrdersFailed = (error) => ({\r\n type: LIST_MY_ORDER_FAILED,\r\n payload: error,\r\n});\r\n\r\n///////////////////////////// ACTION CREATOR ///////////////////////////\r\n\r\n////////////// ORDER CREATE ///////////////\r\nexport const createOrder = (API, order) => async (dispatch, getState) => {\r\n try {\r\n dispatch(reqOrder());\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.post(`${API}/orders`, order, config);\r\n\r\n dispatch(addOrder(data));\r\n } catch (error) {\r\n orderFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n );\r\n }\r\n};\r\n\r\n////////////// ORDER DETAILS ///////////////\r\nexport const getOrderDetails = (API, id) => async (dispatch, getState) => {\r\n try {\r\n dispatch(reqOrderDetails());\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.get(`${API}/orders/${id}`, config);\r\n\r\n dispatch(addOrderDetails(data));\r\n } catch (error) {\r\n orderDetailsFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n );\r\n }\r\n};\r\n\r\n// ////////////// PAY ORDER AND UPDATE ORDER TO PAID ///////////////\r\nexport const payOrder = (API, orderId, paymentResult) => async (\r\n dispatch,\r\n getState\r\n) => {\r\n try {\r\n dispatch(reqPayOrder());\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.put(\r\n `${API}/orders/${orderId}/payment`,\r\n paymentResult,\r\n config\r\n );\r\n\r\n dispatch(addPayOrder(data));\r\n } catch (error) {\r\n payOrderFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n );\r\n }\r\n};\r\n\r\n////////////// LIST MY ORDERS (PARTICULAR USER) ///////////////\r\nexport const listMyOrders = (API) => async (dispatch, getState) => {\r\n try {\r\n dispatch(reqMyOrders());\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.get(`${API}/orders/myorders`, config);\r\n\r\n dispatch(addMyOrders(data));\r\n } catch (error) {\r\n myOrdersFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n );\r\n }\r\n};\r\n","import { makeStyles, withStyles, createStyles } from \"@material-ui/core/styles\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\n\r\nexport const useStyles = makeStyles((theme) => ({\r\n form: {\r\n \"& .MuiTextField-root\": {\r\n margin: theme.spacing(1.4),\r\n width: \"76%\",\r\n },\r\n marginTop: \"1.4rem\",\r\n },\r\n\r\n heading: {\r\n // color: theme.palette.info.main,\r\n color: \"#2071E3\",\r\n fontWeight: \"550\",\r\n },\r\n button: {\r\n background: \"linear-gradient(45deg, #2196F3 30%, #21CBF3 90%)\",\r\n margin: theme.spacing(1.4),\r\n width: \"76%\",\r\n },\r\n\r\n table: {\r\n borderRadius: \".4rem\",\r\n marginTop: \"1.4rem\",\r\n },\r\n details: {\r\n boxShadow:\r\n \"rgba(0, 0, 0, 0.2) 0px 2px 1px -1px, rgba(0, 0, 0, 0.14) 0px 1px 1px 0px, rgba(0, 0, 0, 0.12) 0px 1px 3px 0px\",\r\n \"&:hover\": {\r\n border: \"none\",\r\n backgroundColor: \"#4EABDE\",\r\n color: theme.palette.common.white,\r\n },\r\n },\r\n}));\r\n\r\n///////////////////////// CUSTOM STYLE TextField ///////////////////////////\r\nexport const CssTextField = withStyles({\r\n root: {\r\n \"& label\": {\r\n color: \"green\",\r\n },\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n borderColor: \"green\",\r\n },\r\n },\r\n },\r\n})(TextField);\r\n\r\n///////////////////////// CUSTOM STYLE TABLE CELL ///////////////////////////\r\nexport const StyledTableCell = withStyles((theme) =>\r\n createStyles({\r\n head: {\r\n background: \"#2196F3\",\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 14,\r\n },\r\n })\r\n)(TableCell);\r\n\r\n///////////////////////// CUSTOM STYLE TABLE ROW ///////////////////////////\r\nexport const StyledTableRow = withStyles((theme) =>\r\n createStyles({\r\n root: {\r\n \"&:nth-of-type(odd)\": {\r\n backgroundColor: theme.palette.action.selected,\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n },\r\n })\r\n)(TableRow);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport { Button } from \"react-bootstrap\";\r\n\r\n//////////////////////////////// MATERIAL UI ////////////////////////////////////\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport MaterialButton from \"@material-ui/core/Button\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableContainer from \"@material-ui/core/TableContainer\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport DoneIcon from \"@material-ui/icons/Done\";\r\n\r\n///////////////////////////////// REDUX //////////////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { getUserDetails, updateUserProfile } from \"../redux/actions/userAction\";\r\nimport { listMyOrders } from \"../redux/actions/orderAction\";\r\n\r\n/////////////////////////////////// CUSTOM STYLE ///////////////////////////////\r\nimport {\r\n useStyles,\r\n CssTextField,\r\n StyledTableCell,\r\n StyledTableRow,\r\n} from \"./customStyle/ProfileScreen\";\r\n\r\nimport Message from \"../components/Message\";\r\nimport Loader from \"../components/Loader\";\r\n\r\nconst ProfileScreen = ({ history, API }) => {\r\n const classes = useStyles();\r\n\r\n const [email, setEmail] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [name, setName] = useState(\"\");\r\n const [confirmPassword, setConfirmPassword] = useState(\"\");\r\n const [message, setMessage] = useState(null);\r\n\r\n const dispatch = useDispatch();\r\n\r\n ////////////////////// LOGIN REDUCER ///////////////////\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n ////////////////////// USER PROFILE REDUCER /////////////////\r\n const userDetails = useSelector((state) => state.userDetails);\r\n const { loading, user, error } = userDetails;\r\n\r\n /////////////////// UPDATE USER PROFILE REDUCER ////////////////\r\n const updateProfile = useSelector((state) => state.userUpdateProfile);\r\n const { success } = updateProfile;\r\n\r\n /////////////////// MY ORDERS REDUCER ////////////////\r\n const myOrdersList = useSelector((state) => state.myOrders);\r\n const { loading: loadingOrders, error: errorOrders, orders } = myOrdersList;\r\n\r\n // redirect to login page if not logged in and set name & email field in form\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n } else if (user) {\r\n setName(user.name);\r\n setEmail(user.email);\r\n }\r\n }, [userInfo, user, history]);\r\n\r\n // fetch user details (even after update) and fetch all orders\r\n useEffect(() => {\r\n dispatch(getUserDetails(API, \"profile\"));\r\n dispatch(listMyOrders(API));\r\n }, [dispatch, API]);\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n if (password !== confirmPassword) {\r\n setMessage(\"Password does not match\");\r\n } else {\r\n //DISPATCH UPDATE\r\n dispatch(updateUserProfile(API, { id: user._id, name, email, password }));\r\n }\r\n };\r\n\r\n //////////////////// GO BACK //////////////////////////////////\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n return (\r\n <>\r\n \r\n\r\n \r\n\r\n {/*////////////////////////////////////// GRID ////////////////////////////////////// */}\r\n\r\n \r\n \r\n

PROFILE

\r\n {loading && }\r\n
\r\n setName(e.target.value)}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n />\r\n\r\n setEmail(e.target.value)}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n />\r\n setPassword(e.target.value)}\r\n placeholder=\"Password\"\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n />\r\n setConfirmPassword(e.target.value)}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n />\r\n\r\n {/*////////////////////// VALIDATION ERROR MESSAGE ////////////////////////*/}\r\n\r\n {error && {error}}\r\n {message && {message}}\r\n\r\n {success && (\r\n Profile Updated Successfully\r\n )}\r\n \r\n Update\r\n \r\n \r\n
\r\n\r\n \r\n

MY ORDERS

\r\n {loadingOrders ? (\r\n \r\n ) : errorOrders ? (\r\n {errorOrders}\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n ORDER ID\r\n DATE\r\n TOTAL\r\n PAID\r\n \r\n DELIVERED\r\n \r\n \r\n \r\n \r\n \r\n {orders &&\r\n orders.map((order) => (\r\n \r\n \r\n {order._id}\r\n \r\n \r\n {order.createdAt.substring(0, 10)}\r\n \r\n \r\n {order.totalPrice}\r\n \r\n \r\n {order.isPaid ? (\r\n
\r\n \r\n    \r\n {order.paidAt.substring(0, 10)}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n {order.isDelivered ? (\r\n order.deliveredAt.substring(0, 10)\r\n ) : (\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n DETAILS\r\n \r\n \r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProfileScreen;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n///////////////////////////////////////// MATERIAL UI ////////////////////////////////\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport { Avatar, Button } from \"@material-ui/core\";\r\n\r\n/////////////////////////////////////// MATERIAL UI ICONS ///////////////////////////////\r\nimport LocalShippingIcon from \"@material-ui/icons/LocalShipping\";\r\nimport LocationOnIcon from \"@material-ui/icons/LocationOn\";\r\nimport LocationCityIcon from \"@material-ui/icons/LocationCity\";\r\nimport FiberPinIcon from \"@material-ui/icons/FiberPin\";\r\nimport LanguageIcon from \"@material-ui/icons/Language\";\r\nimport ArrowBackIosIcon from \"@material-ui/icons/ArrowBackIos\";\r\n\r\n//////////////////////////////////////// REDUX /////////////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { addShippingAddress } from \"../redux/actions/cartAction\";\r\n\r\nimport CheckoutStepper from \"../components/CheckoutStepper\";\r\n\r\n/////////////////////////////////////// CUSTOM STYLE /////////////////////////////////////\r\nimport { useStyle } from \"./customStyle/allFormsScreen\";\r\n\r\nconst ShippingScreen = ({ history }) => {\r\n const classes = useStyle();\r\n\r\n //////////////////// REDUX REDUCER ////////////////////\r\n const shippingAdd = useSelector((state) => state.cart);\r\n const { shippingAddress } = shippingAdd;\r\n\r\n //////////////////// SHIPPING ADDRESS STATE (DEFAULT: FROM LOCAL STORAGE) ////////////////////////\r\n const [address, setAddress] = useState(shippingAddress.address);\r\n const [city, setCity] = useState(shippingAddress.city);\r\n const [postalCode, setPostalCode] = useState(shippingAddress.postalCode);\r\n const [country, setCountry] = useState(shippingAddress.country);\r\n\r\n const dispatch = useDispatch();\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n // Redirect to loginScreen on logout\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n }\r\n }, [history, userInfo]);\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n //DISPATCH SHIPPING ADDRESS\r\n dispatch(addShippingAddress({ address, city, postalCode, country }));\r\n history.push(\"/paymentMethod\");\r\n };\r\n\r\n ///////////////////// GO BACK ////////////////////////\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Shipping Address\r\n \r\n\r\n
\r\n \r\n \r\n Address\r\n \r\n setAddress(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={60}\r\n />\r\n \r\n\r\n \r\n City\r\n setCity(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={30}\r\n />\r\n \r\n\r\n \r\n \r\n Postal Code\r\n \r\n setPostalCode(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={90}\r\n />\r\n \r\n\r\n \r\n \r\n Country\r\n \r\n setCountry(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={58}\r\n />\r\n \r\n\r\n \r\n CONTINUE\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ShippingScreen;\r\n","import React, { useState, useEffect } from \"react\";\r\n\r\n///////////////////////////////////////// MATERIAL UI ////////////////////////////////\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport { Avatar, Button } from \"@material-ui/core\";\r\nimport AccountBalanceIcon from \"@material-ui/icons/AccountBalance\";\r\nimport ArrowBackIosIcon from \"@material-ui/icons/ArrowBackIos\";\r\n\r\nimport CheckoutStepper from \"../components/CheckoutStepper\";\r\n\r\n//////////////////////////////////////// REDUX /////////////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { addPaymentMethod } from \"../redux/actions/cartAction\";\r\n\r\n/////////////////////////////////////// CUSTOM STYLE /////////////////////////////////////\r\nimport { useStyle } from \"./customStyle/allFormsScreen\";\r\n\r\nconst PaymentMethodScreen = ({ history }) => {\r\n const classes = useStyle();\r\n\r\n //////////////////// REDUX REDUCER of Shipping Address ////////////////////\r\n const shippingAdd = useSelector((state) => state.cart);\r\n const { shippingAddress } = shippingAdd;\r\n\r\n if (!shippingAddress) {\r\n history.push(\"/shipping\");\r\n }\r\n\r\n const [paymentMethod, setPaymentMethod] = useState(\"\");\r\n\r\n const dispatch = useDispatch();\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n // Redirect to loginScreen on logout\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n }\r\n }, [history, userInfo]);\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n ///////////////////////// DISPATCH PAYMENT METHOD and push to /placeorder ////////////////\r\n dispatch(addPaymentMethod(paymentMethod));\r\n history.push(\"/placeorder\");\r\n };\r\n\r\n ///////////////////// GO BACK ////////////////////////\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Payment Method\r\n \r\n\r\n
\r\n \r\n {/* \r\n Select Method\r\n */}\r\n setPaymentMethod(e.target.value)}\r\n >\r\n }\r\n label=\"PayPal\"\r\n />\r\n }\r\n label=\"Stripe\"\r\n />\r\n \r\n \r\n\r\n \r\n CONTINUE\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PaymentMethodScreen;\r\n","import { createStyles, makeStyles } from \"@material-ui/core/styles\";\r\n\r\n// MOBILE BREAKPOINT\r\nconst isMobile = window.innerWidth <= 768;\r\nexport const useStyles = makeStyles((theme) =>\r\n createStyles({\r\n root: {\r\n width: \"100%\",\r\n maxWidth: \"36ch\",\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n inline: {\r\n display: \"inline\",\r\n },\r\n\r\n divider: {\r\n marginBottom: \"0.5rem\",\r\n marginTop: \"0.3rem\",\r\n },\r\n avatar: {\r\n width: isMobile ? \"3.9rem\" : \"6.5rem\",\r\n height: isMobile ? \"3.9rem\" : \"6.5rem\",\r\n marginRight: \"1rem\",\r\n },\r\n paper: {\r\n marginBottom: \"1.8rem\",\r\n padding: \"0.4rem 1rem 1rem 0\",\r\n },\r\n list_item: {\r\n paddingLeft: \"1.2rem\",\r\n paddingRight: \"1rem\",\r\n paddingBottom: \"1.4rem\",\r\n },\r\n order_summary: {\r\n fontSize: \"1.6rem\",\r\n margin: \"auto\",\r\n },\r\n\r\n order_link: {\r\n textDecoration: \"none\",\r\n },\r\n\r\n message: {\r\n paddingLeft: \"2rem\",\r\n marginTop: \"0.8rem\",\r\n width: \"100%\",\r\n },\r\n\r\n shipping: {\r\n marginRight: \"2rem\",\r\n },\r\n\r\n email: {\r\n color: \"#000\",\r\n textDecoration: \"none\",\r\n },\r\n\r\n qty: {\r\n fontSize: \"1.3rem\",\r\n fontWeight: \"450\",\r\n },\r\n })\r\n);\r\n","import React, { useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n/////////////////////////// MATERIAL UI ////////////////////////////////\r\n\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nimport ErrMess from \"../components/Message\";\r\n\r\n/////////////////////////// REDUX ///////////////////////////////\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { removeFromCart } from \"../redux/actions/cartAction\";\r\nimport { createOrder } from \"../redux/actions/orderAction\";\r\nimport { CREATE_ORDER_RESET } from \"../redux/actionTypes/orderConstants\";\r\n\r\nimport CheckoutStepper from \"../components/CheckoutStepper\";\r\nimport { Button } from \"react-bootstrap\";\r\nimport { Container } from \"@material-ui/core\";\r\n\r\n/////////////////////////// CUSTOM STYLES ///////////////////////////////\r\nimport { useStyles } from \"./customStyle/PlaceOrderScreen\";\r\n\r\nconst PlaceOrderScreen = ({ history, API, isMobile }) => {\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n // cart details\r\n const cart = useSelector((state) => state.cart);\r\n const { cartItems, shippingAddress, paymentMethod } = cart;\r\n\r\n ///////////////////// Items Price ////////////////////\r\n cart.itemsPrice = cartItems\r\n .reduce((acc, item) => acc + item.qty * item.price, 0)\r\n .toFixed(2);\r\n\r\n //////////////////// Shipping Price /////////////////////////////\r\n cart.shippingPrice = (cart.itemsPrice > 150 ? 100 : 0).toFixed(2);\r\n\r\n ////////////////////// Tax Price /////////////////////////////\r\n cart.taxPrice = ((cart.itemsPrice * 25) / 100).toFixed(2);\r\n\r\n ///////////////////// TOTAL PRICE /////////////////////////////\r\n cart.totalPrice = (\r\n Number(cart.itemsPrice) +\r\n Number(cart.shippingPrice) +\r\n Number(cart.taxPrice)\r\n ).toFixed(2);\r\n\r\n ///////////////// REMOVE ORDER FROM CART //////////////\r\n const removeCartHandler = (id) => {\r\n dispatch(removeFromCart(id));\r\n };\r\n\r\n const placeOrder = useSelector((state) => state.order);\r\n const { order, success } = placeOrder;\r\n\r\n ////////////////// PLACE ORDER //////////////////////\r\n const placeOrderHandler = () => {\r\n dispatch(\r\n createOrder(API, {\r\n orderItems: cartItems,\r\n shippingAddress: shippingAddress,\r\n paymentMethod: paymentMethod,\r\n itemsPrice: cart.itemsPrice,\r\n shippingPrice: cart.shippingPrice,\r\n taxPrice: cart.taxPrice,\r\n totalPrice: cart.totalPrice,\r\n })\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n }\r\n if (success) {\r\n history.push(`/orders/${order._id}`);\r\n dispatch({ type: CREATE_ORDER_RESET });\r\n }\r\n }, [dispatch, history, order, success, userInfo, API]);\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n {/*///////////////////// LEFT SIDE ///////////////////////////////////*/}\r\n \r\n \r\n \r\n \r\n \r\n SHIPPING DETAILS\r\n \r\n \r\n \r\n \r\n {shippingAddress.address},\r\n
\r\n {shippingAddress.city},\r\n
\r\n {shippingAddress.country},\r\n
\r\n {shippingAddress.postalCode}\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n PAYMENT METHOD\r\n \r\n \r\n \r\n \r\n {paymentMethod}\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n ORDER DETAILS\r\n \r\n \r\n \r\n\r\n {!cartItems.length ? (\r\n \r\n \r\n Your Cart Is Empty Keep Shopping\r\n \r\n \r\n ) : (\r\n \r\n {cartItems.map((item, index) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.qty} x {item.price} ={\" \"}\r\n {(item.qty * item.price).toFixed(2)}\r\n \r\n }\r\n />\r\n \r\n \r\n removeCartHandler(item.product)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n\r\n {/*///////////////////// RIGHT SIDE ///////////////////////////////////*/}\r\n \r\n \r\n \r\n \r\n \r\n ORDER SUMMARY\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Items\r\n \r\n \r\n \r\n \r\n ${cart.itemsPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Shipping\r\n \r\n \r\n \r\n \r\n ${cart.shippingPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Tax\r\n \r\n \r\n \r\n \r\n ${cart.taxPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n \r\n \r\n ${cart.totalPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n PLACE ORDER\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PlaceOrderScreen;\r\n","import { Button } from \"@material-ui/core\";\r\nimport React, { useEffect } from \"react\";\r\nimport StripeCheckoutButton from \"react-stripe-checkout\";\r\n\r\n// REDUX\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { payOrder } from \"../redux/actions/orderAction\";\r\nimport { emptyCart } from \"../redux/actions/cartAction\";\r\nimport { ORDER_PAY_RESET } from \"../redux/actionTypes/orderConstants\";\r\n\r\nimport Loader from \"./Loader\";\r\nimport axios from \"axios\";\r\n\r\nexport const StripeCheckout = ({ orderId, API }) => {\r\n const dispatch = useDispatch();\r\n\r\n // Order details\r\n const orderDetails = useSelector((state) => state.orderDetails);\r\n const { orders } = orderDetails;\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n // Updated Order after paid\r\n const orderPay = useSelector((state) => state.orderPay);\r\n const { loading: loadingPay, success: successPay } = orderPay;\r\n\r\n // if paid successfully reset\r\n useEffect(() => {\r\n if (successPay) {\r\n dispatch({ type: ORDER_PAY_RESET });\r\n // empty cart items\r\n dispatch(emptyCart());\r\n }\r\n }, [dispatch, successPay]);\r\n\r\n // make payment through stripe by post request data to backend\r\n const makePayment = async (token) => {\r\n console.log(token);\r\n try {\r\n const { data } = await axios.post(\r\n `${API}/payment/stripe`,\r\n { token, orderId },\r\n {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n }\r\n );\r\n console.log(data);\r\n if (data) {\r\n dispatch(payOrder(API, orderId, data));\r\n alert(\r\n \"Transaction completed by \" + orders.user.name + \" through stripe\"\r\n );\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {loadingPay ? (\r\n \r\n ) : (\r\n \r\n \r\n Pay With Stripe\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { PayPalButton } from \"react-paypal-button-v2\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { payOrder } from \"../redux/actions/orderAction\";\r\nimport { emptyCart } from \"../redux/actions/cartAction\";\r\nimport { ORDER_PAY_RESET } from \"../redux/actionTypes/orderConstants\";\r\n\r\nimport axios from \"axios\";\r\nimport Loader from \"./Loader\";\r\n\r\nexport const PayPalCheckout = ({ orderId, API }) => {\r\n const dispatch = useDispatch();\r\n\r\n const orderDetails = useSelector((state) => state.orderDetails);\r\n const { orders } = orderDetails;\r\n\r\n // PAYPAL PAYMENT INTEGRATION\r\n const orderPay = useSelector((state) => state.orderPay);\r\n const { loading: loadingPay, success: successPay } = orderPay;\r\n\r\n const [sdkReady, setSdkReady] = useState(false);\r\n\r\n //paypal script\r\n const addPayPalScript = async () => {\r\n const { data: clientId } = await axios.get(`${API}/config/paypal`);\r\n console.log(clientId);\r\n const script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.src = `https://www.paypal.com/sdk/js?client-id=${clientId}`;\r\n script.async = true;\r\n script.onload = () => {\r\n setSdkReady(true);\r\n };\r\n document.body.appendChild(script);\r\n };\r\n\r\n // if paid successfully reset order_pay and add paypal script if order not paid and paypal is configured previously\r\n useEffect(() => {\r\n if (successPay) {\r\n dispatch({ type: ORDER_PAY_RESET });\r\n //empty cart\r\n dispatch(emptyCart());\r\n } else if (orders && !orders.isPaid) {\r\n if (!window.paypal) {\r\n addPayPalScript();\r\n } else {\r\n setSdkReady(true);\r\n }\r\n }\r\n }, [dispatch, orders, successPay]);\r\n\r\n // On payment successfully completed\r\n const successPaymentHandler = (paymentResult) => {\r\n console.log(paymentResult);\r\n dispatch(payOrder(API, orderId, paymentResult));\r\n // alert(\"Transaction completed by \" + paymentResult.payer.name.given_name);\r\n alert(\"Transaction completed by \" + orders.user.name + \" through paypal\");\r\n };\r\n\r\n // Error handling in payment\r\n const errorPaymentHandler = (err) => {\r\n console.log(err);\r\n alert(err);\r\n };\r\n\r\n // On cancel of payment\r\n const cancelPaymentHandler = (msg) => {\r\n alert(\"Order \" + msg.orderID + \" Cancelled\");\r\n };\r\n\r\n return (\r\n <>\r\n {loadingPay ? (\r\n \r\n ) : !sdkReady ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nimport { Grid } from \"@material-ui/core\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\n\r\nconst OrderScreenSkeleton = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default OrderScreenSkeleton;\r\n","import React, { useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n/////////////////////////// MATERIAL UI ////////////////////////////////\r\n\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Container } from \"@material-ui/core\";\r\n\r\n////////////////////////////// / Components ////////////////////////\r\nimport Message from \"../components/Message\";\r\nimport { StripeCheckout } from \"../components/StripeCheckout\";\r\nimport { PayPalCheckout } from \"../components/PayPalCheckout\";\r\n\r\n/////////////////////////// REDUX ///////////////////////////////\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getOrderDetails } from \"../redux/actions/orderAction\";\r\n\r\n/////////////////////////// CUSTOM STYLES ///////////////////////////////\r\nimport { useStyles } from \"./customStyle/PlaceOrderScreen\";\r\nimport OrderScreenSkeleton from \"./skeletons/OrderScreenSkeleton\";\r\n\r\nconst OrderScreen = ({ match, history, API, isMobile }) => {\r\n const classes = useStyles();\r\n const orderId = match.params.id;\r\n\r\n const dispatch = useDispatch();\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n // Order details\r\n const orderDetails = useSelector((state) => state.orderDetails);\r\n const { loading, orders, error } = orderDetails;\r\n\r\n // PAYPAL PAYMENT INTEGRATION\r\n const orderPay = useSelector((state) => state.orderPay);\r\n const { success: successPay } = orderPay;\r\n\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n } else {\r\n dispatch(getOrderDetails(API, orderId));\r\n }\r\n }, [dispatch, orderId, successPay, userInfo, history, API]);\r\n\r\n return loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n <>\r\n
\r\n \r\n \r\n ORDER\r\n {\" \"}\r\n {orders._id}\r\n \r\n
\r\n
\r\n \r\n {/*///////////////////// LEFT SIDE ///////////////////////////////////*/}\r\n \r\n \r\n \r\n \r\n \r\n SHIPPING DETAILS\r\n \r\n \r\n \r\n\r\n \r\n \r\n Name: \r\n {orders.user.name}\r\n
\r\n
\r\n Email: \r\n \r\n {orders.user.email}\r\n \r\n
\r\n
\r\n Address: \r\n {orders.shippingAddress.address}\r\n
\r\n \r\n {orders.shippingAddress.city}\r\n \r\n\r\n
\r\n \r\n {orders.shippingAddress.country},\r\n \r\n\r\n
\r\n \r\n {orders.shippingAddress.postalCode}\r\n \r\n
\r\n
\r\n
\r\n {orders.isDelivered ? (\r\n \r\n Delivered at {orders.deliveredAt}\r\n \r\n ) : (\r\n Not Delivered\r\n )}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n PAYMENT METHOD\r\n \r\n \r\n \r\n\r\n \r\n \r\n {orders.paymentMethod}\r\n \r\n \r\n
\r\n {orders.isPaid ? (\r\n \r\n Paid on {orders.paidAt.substring(0, 10)}\r\n \r\n ) : (\r\n Not Paid\r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n ORDER DETAILS\r\n \r\n \r\n \r\n\r\n {!orders.orderItems.length ? (\r\n \r\n \r\n No order Keep Shopping\r\n \r\n \r\n ) : (\r\n \r\n {orders.orderItems.map((item, index) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.qty} x {item.price} ={\" \"}\r\n {(item.qty * item.price).toFixed(2)}\r\n \r\n }\r\n />\r\n \r\n {!isMobile ? (\r\n \r\n Qty: {item.qty}\r\n \r\n ) : null}\r\n \r\n \r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n\r\n {/*///////////////////// RIGHT SIDE ///////////////////////////////////*/}\r\n \r\n \r\n \r\n \r\n \r\n ORDER SUMMARY\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Items Price\r\n \r\n \r\n \r\n \r\n ${orders.itemsPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Delivery Charge\r\n \r\n \r\n \r\n \r\n ${orders.shippingPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Tax Price\r\n \r\n \r\n \r\n \r\n ${orders.taxPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Total Price\r\n \r\n \r\n \r\n \r\n ${orders.totalPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n {/*/// PAYPAL BUTTON or STRIPE BUTTON showed if order is not paid ///*/}\r\n {!orders.isPaid ? (\r\n \r\n \r\n {orders.paymentMethod === \"PayPal\" ? (\r\n \r\n ) : orders.paymentMethod === \"Stripe\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n ) : (\r\n Payment Done Successfully\r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default OrderScreen;\r\n","import { BrowserRouter as Router, Route } from \"react-router-dom\";\r\nimport Header from \"./components/Header\";\r\nimport Footer from \"./components/Footer\";\r\nimport Home from \"./screen/HomeScreen\";\r\nimport \"./index.css\";\r\nimport ProductScreen from \"./screen/ProductScreen\";\r\nimport CartScreen from \"./screen/CartScreen\";\r\nimport LoginScreen from \"./screen/LoginScreen\";\r\nimport RegisterScreen from \"./screen/RegisterScreen\";\r\nimport ProfileScreen from \"./screen/ProfileScreen\";\r\nimport ShippingScreen from \"./screen/ShippingScreen\";\r\nimport PaymentMethod from \"./screen/PaymentMethod\";\r\nimport PlaceOrderScreen from \"./screen/PlaceOrderScreen\";\r\nimport OrderScreen from \"./screen/OrderScreen\";\r\n\r\nfunction App() {\r\n // MOBILE BREAKPOINT\r\n const isMobile = window.innerWidth <= 768;\r\n const API = process.env.REACT_APP_API;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n exact\r\n />\r\n
\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport store from \"./redux/store\";\r\n\r\nimport \"./index.css\";\r\nimport \"./bootstrap.min.css\";\r\n\r\nimport App from \"./App\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/frontend/build/static/js/main.03fa8896.chunk.js b/frontend/build/static/js/main.1c948026.chunk.js similarity index 76% rename from frontend/build/static/js/main.03fa8896.chunk.js rename to frontend/build/static/js/main.1c948026.chunk.js index c5c35f0..90fef35 100644 --- a/frontend/build/static/js/main.03fa8896.chunk.js +++ b/frontend/build/static/js/main.1c948026.chunk.js @@ -1,2 +1,2 @@ -(this.webpackJsonpfrontend=this.webpackJsonpfrontend||[]).push([[0],{117:function(e,t,a){},173:function(e,t,a){},198:function(e,t,a){},199:function(e,t,a){},204:function(e,t,a){},205:function(e,t,a){},207:function(e,t,a){},208:function(e,t,a){"use strict";a.r(t);var r=a(1),n=a(0),c=a(18),s=a.n(c),i=a(8),o=a(60),l=a(128),j=a(129),d="PRODUCT_LIST_REQUEST",u="PRODUCT_LIST_SUCCESS",b="PRODUCT_LIST_FAILED",h="PRODUCT_DETAILS_REQUEST",m="PRODUCT_DETAILS_SUCCESS",p="PRODUCT_DETAILS_FAILED",O="PRODUCT_CREATE_REVIEW_REQUEST",x="PRODUCT_CREATE_REVIEW_SUCCESS",g="PRODUCT_CREATE_REVIEW_FAILED",f="PRODUCT_CREATE_REVIEW_RESET",v=a(64),y=a(15),_="CART_ITEM_ADD",N="CART_ITEM_REMOVE",I="CART_ITEM_RESET",S="CART_SAVE_SHIPPING_ADDRESS",E="CART_SAVE_PAYMENT_METHOD",w="USER_LOGIN_REQUEST",P="USER_LOGIN_SUCCESS",C="USER_LOGIN_FAILED",R="USER_LOGOUT",k="USER_REGISTER_REQUEST",A="USER_REGISTER_SUCCESS",T="USER_REGISTER_FAILED",D="USER_DETAILS_REQUEST",L="USER_DETAILS_SUCCESS",F="USER_DETAILS_FAILED",U="USER_DETAILS_RESET",M="USER_UPDATE_PROFILE_REQUEST",B="USER_UPDATE_PROFILE_SUCCESS",W="USER_UPDATE_PROFILE_FAILED",z="CREATE_ORDER_REQUEST",q="CREATE_ORDER_SUCCESS",Y="CREATE_ORDER_FAILED",G="CREATE_ORDER_RESET",H="ORDER_DETAILS_REQUEST",$="ORDER_DETAILS_SUCCESS",Q="ORDER_DETAILS_FAILED",V="ORDER_DETAILS_RESET",J="ORDER_PAY_REQUEST",K="ORDER_PAY_SUCCESS",X="ORDER_PAY_FAILED",Z="ORDER_PAY_RESET",ee="LIST_MY_ORDER_REQUEST",te="LIST_MY_ORDER_SUCCESS",ae="LIST_MY_ORDER_FAILED",re="LIST_MY_ORDER_RESET",ne=Object(o.combineReducers)({productList:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,products:[],error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case d:return{loading:!0,products:[],error:null};case u:return{loading:!1,products:t.payload,error:null};case b:return{loading:!1,products:[],error:t.payload};default:return e}},productDetails:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,product:{},error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case h:return{loading:!0,product:{},error:null};case m:return{loading:!1,product:t.payload,error:null};case p:return{loading:!1,product:{},error:t.payload};default:return e}},cart:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{cartItems:[],shippingAddress:{},paymentMethod:""},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case _:var a=t.payload,r=e.cartItems.find((function(e){return e.product===a.product}));return r?Object(y.a)(Object(y.a)({},e),{},{cartItems:e.cartItems.map((function(e){return e.product===r.product?a:e}))}):Object(y.a)(Object(y.a)({},e),{},{cartItems:[].concat(Object(v.a)(e.cartItems),[a])});case N:return Object(y.a)(Object(y.a)({},e),{},{cartItems:e.cartItems.filter((function(e){return e.product!==t.payload}))});case S:return Object(y.a)(Object(y.a)({},e),{},{shippingAddress:t.payload});case E:return Object(y.a)(Object(y.a)({},e),{},{paymentMethod:t.payload});case I:return Object(y.a)(Object(y.a)({},e),{},{cartItems:[]});default:return e}},userLogin:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,isAuthenticated:!1,userInfo:null,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case w:return{loading:!0,error:null};case P:return{loading:!1,isAuthenticated:!0,userInfo:t.payload};case C:return{loading:!1,isAuthenticated:!1,error:t.payload};case R:return{isAuthenticated:!1};default:return e}},userRegister:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,isAuthenticated:!1,userInfo:null,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case k:return{loading:!0,error:null};case A:return{loading:!1,isAuthenticated:!0,userInfo:t.payload};case T:return{loading:!1,isAuthenticated:!1,error:t.payload};case R:return{isAuthenticated:!1};default:return e}},userDetails:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,user:null,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case D:return{loading:!0};case L:return{loading:!1,user:t.payload};case F:return{loading:!1,error:t.payload};case U:return{user:null};default:return e}},userUpdateProfile:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,userInfo:null,error:null,success:!1},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case M:return{loading:!0};case B:return{loading:!1,userInfo:t.payload,success:!0};case W:return{loading:!1,error:t.payload};default:return e}},order:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,success:!1,error:null,order:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case z:return{loading:!0};case q:return{loading:!1,order:t.payload,success:!0};case Y:return{loading:!1,error:t.payload};case G:return{};default:return e}},orderDetails:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!0,orders:null,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case H:return Object(y.a)(Object(y.a)({},e),{},{loading:!0});case $:return{loading:!1,orders:t.payload};case Q:return{loading:!1,error:t.payload};case V:return{orders:[]};default:return e}},orderPay:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case J:return{loading:!0};case K:return{loading:!1,success:!0};case X:return{loading:!1,error:t.payload};case Z:return{};default:return e}},myOrders:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,orders:null,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ee:return{loading:!0};case te:return{loading:!1,orders:t.payload};case ae:return{loading:!1,error:t.payload};case re:return{orders:[]};default:return e}},productCreateReview:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case O:return{loading:!0};case x:return{loading:!1,success:!0};case g:return{loading:!1,error:t.payload};case f:return{};default:return e}}}),ce={cart:{cartItems:localStorage.getItem("cartItems")?JSON.parse(localStorage.getItem("cartItems")):[],shippingAddress:localStorage.getItem("shippingAddress")?JSON.parse(localStorage.getItem("shippingAddress")):{}},userLogin:{userInfo:localStorage.getItem("userInfo")?JSON.parse(localStorage.getItem("userInfo")):null}},se=[j.a],ie=Object(o.createStore)(ne,ce,Object(l.composeWithDevTools)(o.applyMiddleware.apply(void 0,se))),oe=(a(117),a(173),a(17)),le=a(21),je=a(12),de=a(262),ue=a(263),be=a(68),he=a(268),me=a(146),pe=a(265),Oe=a(267),xe=a(305),ge=a(266),fe=a(209),ve=a(269),ye=a(270),_e=a(264),Ne=a(134),Ie=a.n(Ne),Se=a(107),Ee=a.n(Se),we=a(109),Pe=a.n(we),Ce=a(110),Re=a.n(Ce),ke=a(108),Ae=a.n(ke),Te=a(135),De=a.n(Te),Le=a(311),Fe=a(133),Ue=a.n(Fe),Me=a(31),Be=a(258),We=a(19),ze=Object(Be.a)((function(e){return{root:{flexGrow:1},appbar:{padding:"0.4rem",background:"linear-gradient(45deg, #0267B5, 30%, #2196f3 90%)"},menu:{},menuButton:Object(Me.a)({marginRight:e.spacing(2)},e.breakpoints.up("md"),{display:"none"}),title:{flexGrow:1},search:Object(Me.a)({position:"relative",borderRadius:e.shape.borderRadius,backgroundColor:Object(We.b)(e.palette.common.white,.15),"&:hover":{backgroundColor:Object(We.b)(e.palette.common.white,.25)},marginLeft:0,width:"80%"},e.breakpoints.up("sm"),{marginLeft:e.spacing(1),width:"auto"}),searchIcon:{padding:e.spacing(0,2),height:"100%",position:"absolute",pointerEvents:"none",display:"flex",alignItems:"center",justifyContent:"center"},inputRoot:{color:"inherit"},inputInput:Object(Me.a)({padding:e.spacing(1,1,1,0),paddingLeft:"calc(1em + ".concat(e.spacing(4),"px)"),transition:e.transitions.create("width"),width:"100%"},e.breakpoints.up("sm"),{width:"12ch","&:focus":{width:"20ch"}}),drawer:{width:240,flexShrink:0},drawerPaper:{width:240},drawerHeader:Object(y.a)(Object(y.a)({display:"flex",alignItems:"center",padding:e.spacing(0,1)},e.mixins.toolbar),{},{justifyContent:"flex-end"}),link_brand:{color:"inherit","&:hover":{textDecoration:"none",color:"inherit"}},link_menu_item:{color:"black",textDecoration:"none","&:hover":{textDecoration:"none"}},link:Object(Me.a)({color:"inherit","&:hover":{textDecoration:"none",color:"inherit"}},e.breakpoints.down("sm"),{display:"none"}),link_drawer:{"&:hover":{textDecoration:"none",color:e.palette.primary},textDecoration:"none"}}}));function qe(e){var t=e.history,a=ze(),c=Object(n.useState)(""),s=Object(je.a)(c,2),i=s[0],o=s[1];Object(n.useEffect)((function(){"/"===window.location.pathname||window.location.pathname.includes("/search")?i.trim()?t.push("/search?name=".concat(i)):t.push("/"):o("")}),[i,t]);return Object(r.jsx)(r.Fragment,{children:Object(r.jsxs)("div",{className:a.search,children:[Object(r.jsx)("div",{className:a.searchIcon,children:Object(r.jsx)(Ue.a,{})}),Object(r.jsx)(Le.a,{value:i,onChange:function(e){o(e.target.value)},placeholder:"Search\u2026",classes:{root:a.inputRoot,input:a.inputInput},inputProps:{"aria-label":"search"}})]})})}var Ye=a(14),Ge=a.n(Ye),He=a(22),$e=a(23),Qe=a.n($e),Ve=function(e){return{type:P,payload:e}},Je=function(e){return{type:B,payload:e}};function Ke(e){var t=e.isMobile,a=ze(),c=Object(n.useState)(null),s=Object(je.a)(c,2),o=s[0],l=s[1],j=Boolean(o),d=Object(n.useState)(!1),u=Object(je.a)(d,2),b=u[0],h=u[1],m=Object(i.b)(),p=Object(i.c)((function(e){return e.userLogin})).userInfo,O=function(){m((function(e){localStorage.removeItem("userInfo"),e({type:R}),e({type:re}),e({type:U})})),l(null)},x=function(){l(null)};return Object(r.jsxs)("header",{className:a.root,children:[Object(r.jsx)(de.a,{position:"sticky",elevation:10,className:a.appbar,children:Object(r.jsxs)(ue.a,{children:[Object(r.jsx)(_e.a,{edge:"start",className:a.menuButton,onClick:function(){return h(!0)},color:"inherit","aria-label":"menu",children:Object(r.jsx)(Ie.a,{})}),Object(r.jsx)(be.a,{variant:"h6",className:a.title,children:Object(r.jsx)(oe.b,{className:a.link_brand,to:"/",children:"eShop"})}),Object(r.jsx)(le.a,{render:function(e){var t=e.history;return Object(r.jsx)(qe,{history:t})}}),"\xa0 \xa0 \xa0 \xa0",Object(r.jsx)(oe.b,{className:a.link,to:p?"/cart":"/login?redirect=cart",children:Object(r.jsxs)(pe.a,{color:"inherit",children:[Object(r.jsx)(Ee.a,{}),"\xa0 Cart"]})}),p?Object(r.jsxs)("div",{children:[Object(r.jsxs)(_e.a,{"aria-label":"account of current user","aria-controls":"menu-appbar","aria-haspopup":"true",onClick:function(e){l(e.currentTarget)},color:"inherit",style:{fontSize:"1.25rem"},children:[Object(r.jsx)(Ae.a,{}),"\xa0",t?null:p.name.split(" ")[0]]}),Object(r.jsxs)(me.a,{id:"menu-appbar",className:a.menu,elevation:4,getContentAnchorEl:null,anchorEl:o,anchorOrigin:{vertical:"bottom",horizontal:"center"},keepMounted:!0,transformOrigin:{vertical:"top",horizontal:"center"},TransitionComponent:Oe.a,open:j,onClose:x,children:[t?Object(r.jsxs)(he.a,{onClick:x,children:[Object(r.jsx)(_e.a,{children:Object(r.jsx)(Ae.a,{})}),Object(r.jsx)(ve.a,{primary:p.name.split(" ")[0]})]}):null,Object(r.jsx)(oe.b,{to:"/profile",className:a.link_menu_item,children:Object(r.jsxs)(he.a,{onClick:x,children:[Object(r.jsx)(ye.a,{children:Object(r.jsx)(De.a,{})}),Object(r.jsx)(ve.a,{primary:"Profile"})]})}),Object(r.jsxs)(he.a,{onClick:O,className:a.link_menu_item,children:[Object(r.jsx)(ye.a,{children:Object(r.jsx)(Pe.a,{})}),Object(r.jsx)(ve.a,{primary:"Logout"})]})]})]}):Object(r.jsx)(oe.b,{className:a.link,to:"/login",children:Object(r.jsxs)(pe.a,{color:"inherit",children:[Object(r.jsx)(Re.a,{}),"\xa0 LOGIN"]})})]})}),Object(r.jsx)(xe.a,{anchor:"bottom",open:b,onClose:function(){return h(!1)},children:Object(r.jsxs)(ge.a,{children:[p?Object(r.jsxs)(fe.a,{button:!0,className:a.link_drawer,onClick:O,children:[Object(r.jsx)(ye.a,{children:Object(r.jsx)(Pe.a,{})}),Object(r.jsx)(ve.a,{primary:"Logout"})]}):Object(r.jsx)(oe.b,{className:a.link_drawer,to:"/login",children:Object(r.jsxs)(fe.a,{button:!0,children:[Object(r.jsx)(ye.a,{children:Object(r.jsx)(Re.a,{})}),Object(r.jsx)(ve.a,{primary:"Login"})]})}),Object(r.jsx)(oe.b,{className:a.link_drawer,to:p?"/cart":"/login?redirect=cart",children:Object(r.jsxs)(fe.a,{button:!0,children:[Object(r.jsx)(ye.a,{children:Object(r.jsx)(Ee.a,{})}),Object(r.jsx)(ve.a,{primary:"Cart"})]})})]})})]})}var Xe=a(271),Ze=a(272),et=a(136),tt=function(){return Object(r.jsx)("footer",{children:Object(r.jsx)(Xe.a,{children:Object(r.jsx)(Ze.a,{children:Object(r.jsx)(et.a,{children:Object(r.jsx)("p",{className:"text-center py-3",style:{opacity:.8},children:"Copyright \xa9 2020 by Shubham Dutta"})})})})})},at=a(303);a(198);function rt(e){var t=e.value,a=e.text,n=e.color;return Object(r.jsx)(r.Fragment,{children:Object(r.jsxs)("div",{className:"rating",children:[Object(r.jsx)("span",{children:Object(r.jsx)("i",{className:t>=1?"fas fa-star":t>=.5?"fas fa-star-half-alt":"far fa-star",style:{color:n}})}),Object(r.jsx)("span",{children:Object(r.jsx)("i",{className:t>=2?"fas fa-star":t>=1.5?"fas fa-star-half-alt":"far fa-star",style:{color:n}})}),Object(r.jsx)("span",{children:Object(r.jsx)("i",{className:t>=3?"fas fa-star":t>=2.5?"fas fa-star-half-alt":"far fa-star",style:{color:n}})}),Object(r.jsx)("span",{children:Object(r.jsx)("i",{className:t>=4?"fas fa-star":t>=3.5?"fas fa-star-half-alt":"far fa-star",style:{color:n}})}),Object(r.jsx)("span",{children:Object(r.jsx)("i",{className:t>=5?"fas fa-star":t>=4.5?"fas fa-star-half-alt":"far fa-star",style:{color:n}})}),Object(r.jsx)("span",{className:"ml-2",children:a})]})})}rt.defaultProps={color:"#FAAE20"};a(199);function nt(e){var t=e.product;e.path;return Object(r.jsx)(r.Fragment,{children:Object(r.jsxs)(at.a,{className:"card my-3 rounded",children:[Object(r.jsx)(oe.b,{to:"products/".concat(t.category,"/").concat(t._id),children:Object(r.jsx)("div",{className:"card_image_div",children:Object(r.jsx)("img",{className:"card_image",src:t.image,alt:t.image})})}),Object(r.jsxs)(at.a.Body,{children:[Object(r.jsx)(oe.b,{to:"products/".concat(t.category,"/").concat(t._id),children:Object(r.jsx)(at.a.Title,{as:"div",style:{fontSize:"16px",textDecoration:"none"},children:Object(r.jsx)("strong",{children:t.name})})}),Object(r.jsx)(at.a.Text,{as:"div",children:Object(r.jsx)("div",{className:"my-3",children:Object(r.jsx)(rt,{value:t.rating,text:"".concat(t.numReviews," rating")})})}),Object(r.jsxs)(at.a.Text,{as:"h3",children:["$",t.price]})]})]})})}var ct=a(67),st=a.n(ct),it=(a(202),a(203),function(){return{type:d}}),ot=function(e){return{type:u,payload:e}},lt=function(e){return{type:b,payload:e}},jt=a(273);function dt(){return Object(r.jsx)(jt.a,{animation:"border",variant:"primary",role:"status",style:{width:"60px",height:"60px",margin:"auto",display:"block"},children:Object(r.jsx)("span",{className:"sr-only",children:"Loading..."})})}var ut=a(302),bt=function(e){var t=e.varient,a=e.children;return Object(r.jsx)(ut.a,{className:"mb-3",severity:t,children:a})},ht=a(299),mt=Object(Be.a)((function(e){return{root:{"& > *":{marginTop:e.spacing(2),width:"70rem",display:"flex",justifyContent:"center"}},mobile:{marginTop:e.spacing(2),width:"100%",display:"flex",justifyContent:"center"}}}));function pt(e){var t=e.totalPage,a=e.setPaginate,n=e.isMobile,c=mt();return Object(r.jsx)("div",{className:n?c.mobile:c.root,children:Object(r.jsx)(ht.a,{className:c.paginate,count:t,onChange:function(e,t){a((function(e){return Object(y.a)(Object(y.a)({},e),{},{currentPage:t})})),n?window.scrollTo(0,2820):window.scrollTo(0,3e3)},shape:"rounded",color:"primary",size:n?"small":"large"})})}var Ot=[{image_desktop:"/assets/images/carousal/Landing_electronics.png",image_mobile:"/assets/images/carousal/Landing_electronics_phone.png",heading:"Electronics Accessories",para:"Lorem Ipsum is simply dummy text of the print and type setting industry.",id:"#electronics"},{image_desktop:"/assets/images/carousal/Landing_home.png",image_mobile:"/assets/images/carousal/Landing_home_phone.png",heading:"Home Appliances",para:"Lorem Ipsum is simply dummy text of the print and type setting industry.",id:"#home_appliances"},{image_desktop:"/assets/images/carousal/Landing_mens.png",image_mobile:"/assets/images/carousal/Landing_mens_phone.png",heading:"Mens Accessories",para:"Lorem Ipsum is simply dummy text of the print and type setting industry.",id:"#mens_accessories"},{image_desktop:"/assets/images/carousal/Landing_womens.png",image_mobile:"/assets/images/carousal/Landing_womens_phone.png",heading:"Womens Accessories",para:"Lorem Ipsum is simply dummy text of the print and type setting industry.",id:"#womens_accessories"}];a(204);function xt(e){var t=e.location,a=e.API,c=e.isMobile,s={loop:!1,dots:!1,margin:10,nav:!0,navText:["",""],responsive:{320:{items:1},768:{items:3},1e3:{items:4}}},o=Object(i.b)(),l=Object(i.c)((function(e){return e.productList})),j=l.loading,d=l.products,u=l.error,b=Object(n.useState)({allProducts:[],currentPage:1,allProductsPerPage:c?1:6}),h=Object(je.a)(b,2),m=h[0],p=h[1];Object(n.useEffect)((function(){p((function(e){return Object(y.a)(Object(y.a)({},e),{},{allProducts:d})})),window.scrollTo(0,0)}),[j,d]);var O=m.allProducts,x=m.currentPage,g=m.allProductsPerPage,f=x*g,v=f-g,_=O.slice(v,f),N=Math.ceil(O.length/g),I=Object(n.useState)(!1),S=Object(je.a)(I,2),E=S[0],w=S[1],P=new URLSearchParams(t.search).get("name")||"";Object(n.useEffect)((function(){w(!!P),o(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return function(){var a=Object(He.a)(Ge.a.mark((function a(r){var n,c;return Ge.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,r(it()),a.next=4,Qe.a.get("".concat(t,"/products?keyword=").concat(e));case 4:n=a.sent,c=n.data,r(ot(c)),console.log(c),a.next=13;break;case 10:a.prev=10,a.t0=a.catch(0),r(lt(a.t0.response&&a.t0.response.data.message?a.t0.response.data.message:a.t0.message));case 13:case"end":return a.stop()}}),a,null,[[0,10]])})));return function(e){return a.apply(this,arguments)}}()}(P,a))}),[o,P,a]);var C=Object(n.useRef)(null),R=Object(n.useRef)(null),k=Object(n.useRef)(null),A=Object(n.useRef)(null);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)(st.a,Object(y.a)(Object(y.a)({className:"owl-carousel owl-theme"},{loop:!0,margin:100,nav:!0,autoplay:!0,autoplayTimeout:4e3,lazyLoad:!0,smartSpeed:1e3,items:1}),{},{children:Ot.map((function(e,t){return Object(r.jsx)(et.a,{children:Object(r.jsxs)("div",{className:c?"carousal_phone":"carousal",style:c?{background:"url(".concat(e.image_mobile,")"),backgroundPosition:"-30px",backgroundSize:"cover",backgroundRepeat:"no-repeat"}:{background:"url(".concat(e.image_desktop,")"),backgroundPosition:"center",backgroundSize:"cover",backgroundRepeat:"no-repeat"},children:[Object(r.jsx)("h1",{className:c?"carousal_heading_phone":"carousal_heading",children:e.heading}),Object(r.jsx)("h2",{className:c?"carousal_para_phone":"carousal_para",children:e.para}),Object(r.jsx)("button",{onClick:function(){var t;"#electronics"===(t=e.id)?C.current.scrollIntoView({behavior:"smooth"}):"#home_appliances"===t?R.current.scrollIntoView({behavior:"smooth"}):"#mens_accessories"===t?k.current.scrollIntoView({behavior:"smooth"}):"#womens_accessories"===t&&A.current.scrollIntoView({behavior:"smooth"})},className:c?"carousal_button_phone":"carousal_button",children:"SHOP NOW"})]})},t)}))}),d.length),Object(r.jsxs)("div",{className:c?"products_section_phone":"products_section",children:[E?null:Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)("h1",{ref:C,className:c?"category_heading_phone pt-5 mt-4":" category_heading pt-5 mt-5",children:"Electronics Accessories"}),Object(r.jsx)(Ze.a,{children:j?Object(r.jsx)(dt,{}):u?Object(r.jsx)(bt,{varient:"#FC308B",children:u}):d&&Object(r.jsx)(st.a,Object(y.a)(Object(y.a)({className:"owl-theme"},s),{},{children:d.filter((function(e){return"electronics"===e.category})).map((function(e,t){return Object(r.jsx)(et.a,{children:Object(r.jsx)(nt,{product:e})},t)}))}),d.length)}),Object(r.jsx)("h1",{ref:R,className:c?"category_heading_phone pt-5 mt-4":"category_heading pt-5 mt-5",children:"Home Appliances"}),Object(r.jsx)(Ze.a,{children:j?Object(r.jsx)(dt,{}):u?Object(r.jsx)(bt,{varient:"#FC308B",children:u}):d&&Object(r.jsx)(st.a,Object(y.a)(Object(y.a)({className:"owl-theme"},s),{},{children:d.filter((function(e){return"home_appliances"===e.category})).map((function(e,t){return Object(r.jsx)(et.a,{children:Object(r.jsx)(nt,{product:e})},t)}))}),d.length)}),Object(r.jsx)("h1",{ref:k,className:c?"category_heading_phone pt-5 mt-4":"category_heading pt-5 mt-5",children:"Men's Accessories"}),Object(r.jsx)(Ze.a,{children:j?Object(r.jsx)(dt,{}):u?Object(r.jsx)(bt,{varient:"#FC308B",children:u}):d&&Object(r.jsx)(st.a,Object(y.a)(Object(y.a)({className:"owl-theme"},s),{},{children:d.filter((function(e){return"mens_accessories"===e.category})).map((function(e,t){return Object(r.jsx)(et.a,{children:Object(r.jsx)(nt,{product:e})},t)}))}),d.length)}),Object(r.jsx)("h1",{ref:A,className:c?"category_heading_phone pt-5 mt-4":"category_heading pt-5 mt-5",children:"Women's Accessories"}),Object(r.jsx)(Ze.a,{children:j?Object(r.jsx)(dt,{}):u?Object(r.jsx)(bt,{varient:"#FC308B",children:u}):d&&Object(r.jsx)(st.a,Object(y.a)(Object(y.a)({className:"owl-theme"},s),{},{children:d.filter((function(e){return"womens_accessories"===e.category})).map((function(e,t){return Object(r.jsx)(et.a,{children:Object(r.jsx)(nt,{product:e})},t)}))}),d.length)})]}),Object(r.jsx)("h1",{className:c?"category_heading_phone pt-5 mt-4":"category_heading pt-5 mt-4",children:"Latest Products"}),Object(r.jsxs)(Ze.a,{children:[j?Object(r.jsx)(dt,{}):u?Object(r.jsx)(bt,{varient:"#FC308B",children:u}):_.map((function(e,t){return Object(r.jsx)(et.a,{md:4,lg:3,children:Object(r.jsx)(nt,{product:e})},t)})),Object(r.jsx)(pt,{totalPage:N,currentPage:x,setPaginate:p,isMobile:c})]})]})]})}var gt=a(306),ft=a(275),vt=a(296),yt=a(297),_t=a(274),Nt=function(){return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{md:6,children:Object(r.jsx)(_t.a,{animation:"wave",variant:"rect",height:440})}),Object(r.jsx)(et.a,{md:3,children:Object(r.jsx)(_t.a,{variant:"rect",height:320})}),Object(r.jsx)(et.a,{md:3,children:Object(r.jsx)(_t.a,{variant:"rect",height:200})})]}),Object(r.jsx)("br",{}),Object(r.jsx)(Ze.a,{children:Object(r.jsxs)(et.a,{md:6,children:[Object(r.jsx)(_t.a,{variant:"text",height:60,width:360}),Object(r.jsx)(_t.a,{variant:"rect",height:16,width:180}),Object(r.jsxs)("div",{className:"mt-4 ml-4 mb-3",children:[Object(r.jsx)(_t.a,{variant:"text",height:30,width:180}),Object(r.jsx)(_t.a,{variant:"text",height:16,width:190}),Object(r.jsx)(_t.a,{variant:"text",height:24,width:300})]}),Object(r.jsx)(_t.a,{variant:"text",height:60,width:360}),Object(r.jsx)(_t.a,{variant:"rect",height:30,width:500})]})})]})};a(205);function It(e){var t=e.history,a=e.match,c=e.API,s=e.isMobile,o=Object(n.useState)(1),l=Object(je.a)(o,2),j=l[0],d=l[1],u=Object(n.useState)(0),b=Object(je.a)(u,2),y=b[0],_=b[1],N=Object(n.useState)(""),I=Object(je.a)(N,2),S=I[0],E=I[1],w=Object(i.b)(),P=Object(i.c)((function(e){return e.productDetails})),C=P.loading,R=P.product,k=P.error,A=Object(i.c)((function(e){return e.productCreateReview})),T=A.success,D=A.error,L=Object(i.c)((function(e){return e.userLogin})).userInfo;Object(n.useEffect)((function(){window.scrollTo(0,0)}),[C]),Object(n.useEffect)((function(){T&&(w({type:f}),alert("Review Submitted Successfully"),_(0),E("")),w(function(e,t,a){return function(){var r=Object(He.a)(Ge.a.mark((function r(n){var c,s;return Ge.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,n({type:h}),r.next=4,Qe.a.get("".concat(e,"/products/").concat(t,"/").concat(a));case 4:c=r.sent,s=c.data,n({type:m,payload:s}),r.next=12;break;case 9:r.prev=9,r.t0=r.catch(0),n((i=r.t0.response&&r.t0.response.data.message?r.t0.response.data.message:r.t0.message,{type:p,payload:i}));case 12:case"end":return r.stop()}var i}),r,null,[[0,9]])})));return function(e){return r.apply(this,arguments)}}()}(c,a.params.category,a.params.id))}),[w,a,T,c]),console.log(R.reviews);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)("nav",{"aria-label":"breadcrumb",children:Object(r.jsxs)("ol",{className:"breadcrumb",children:[Object(r.jsx)("li",{className:"breadcrumb-item",children:Object(r.jsx)(oe.b,{to:"/",children:"Home"})}),Object(r.jsx)("li",{className:"breadcrumb-item active",children:R.category}),s?null:Object(r.jsx)("li",{className:"breadcrumb-item active","aria-current":"page",children:R.name})]})}),Object(r.jsx)(gt.a,{onClick:function(){t.goBack()},className:"btn btn-light my-3",children:"Go Back"}),C?Object(r.jsx)(Nt,{}):k?Object(r.jsx)(bt,{varient:"#FC308B",children:k}):Object(r.jsxs)(r.Fragment,{children:[Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{md:6,children:Object(r.jsx)(ft.a,{className:"shadow",src:R.image,alt:R.name,fluid:!0})}),Object(r.jsx)(et.a,{md:3,children:Object(r.jsxs)(vt.a,{className:"shadow",varient:"flush",children:[Object(r.jsx)(vt.a.Item,{children:Object(r.jsx)("h3",{className:"font-weight-bold text-primary",children:R.name})}),Object(r.jsxs)(vt.a.Item,{children:[Object(r.jsx)("strong",{children:Object(r.jsx)("h5",{className:"font-weight-bold text-secondary",children:"Price:"})}),Object(r.jsx)("span",{children:R.price})]}),Object(r.jsxs)(vt.a.Item,{children:[Object(r.jsx)("strong",{children:Object(r.jsx)("h5",{className:"font-weight-bold text-secondary",children:"Description:"})}),Object(r.jsx)("p",{children:R.description})]}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsx)(rt,{value:R.rating,text:"".concat(R.numReviews," reviews")})})]})}),Object(r.jsx)(et.a,{md:3,children:Object(r.jsx)(at.a,{children:Object(r.jsxs)(vt.a,{varient:"flush",children:[Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:"Price: "}),Object(r.jsx)(et.a,{children:Object(r.jsxs)("strong",{children:["$",R.price]})})]})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:"Status: "}),Object(r.jsx)(et.a,{children:Object(r.jsxs)("strong",{children:["$",R.countInStock?"In Stock":"Out Of Stock"]})})]})}),R.countInStock>0&&Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:"Quantity: "}),Object(r.jsx)(et.a,{children:Object(r.jsx)(yt.a.Control,{as:"select",value:j,onChange:function(e){return d(e.target.value)},children:Object(v.a)(Array(R.countInStock).keys()).map((function(e){return Object(r.jsx)("option",{value:e+1,children:e+1},e+1)}))})})]})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsx)(gt.a,{className:0===R.countInStock?"btn-block p-3 disabled":"btn-block p-3",onClick:function(){t.push("/cart/".concat(a.params.category,"/").concat(a.params.id,"?qty=").concat(j))},type:"button",disabled:0===R.countInStock,children:"ADD TO CART"})})]})})})]}),Object(r.jsx)(Ze.a,{children:Object(r.jsxs)(et.a,{sm:12,md:9,children:[Object(r.jsx)("h2",{className:"mt-5 font-weight-bolder text-primary display-5",style:s?{fontSize:"2rem"}:{fontSize:"3rem"},children:"Product Reviews"}),Object(r.jsx)(rt,{value:R.rating}),R.reviews&&0===R.reviews.length&&Object(r.jsx)(bt,{children:"No Reviews"}),Object(r.jsx)(vt.a,{className:"pt-3",variant:"flush",children:R.reviews&&R.reviews.map((function(e){return Object(r.jsxs)(vt.a.Item,{children:[Object(r.jsxs)("div",{children:[Object(r.jsx)("h4",{children:Object(r.jsx)("strong",{children:e.name})})," ",Object(r.jsx)(rt,{value:e.rating})]}),Object(r.jsxs)("div",{children:[Object(r.jsxs)("strong",{children:[e.createdAt.substring(0,10)," "]}),Object(r.jsxs)("span",{className:"pl-3",children:[" ",e.comment]})]})]},e._id)}))}),Object(r.jsx)(vt.a,{varient:"flush",children:Object(r.jsxs)(vt.a.Item,{className:"pt-2 mt-4",children:[Object(r.jsx)("h2",{className:"font-weight-bold pb-2 text-primary",style:s?{fontSize:"1.5rem"}:{fontSize:"2.3rem"},children:"Write Your Review"}),D&&Object(r.jsx)(bt,{varient:"error",children:D}),L?Object(r.jsxs)(yt.a,{children:[Object(r.jsxs)(yt.a.Group,{controlId:"rating",children:[Object(r.jsx)(yt.a.Label,{style:s?{fontSize:"1.3rem"}:{},className:"review_form_label text-primary",children:"Rating"}),Object(r.jsxs)(yt.a.Control,{as:"select",value:y,onChange:function(e){return _(e.target.value)},children:[Object(r.jsx)("option",{children:"Select Rating..."}),Object(r.jsx)("option",{value:"1",children:"1 - Very Bad"}),Object(r.jsx)("option",{value:"2",children:"2 - Not too Bad"}),Object(r.jsx)("option",{value:"3",children:"3 - Noice"}),Object(r.jsx)("option",{value:"4",children:"4 - Loved it"}),Object(r.jsx)("option",{value:"5",children:"5 - WoW Amazing"})]})]}),Object(r.jsxs)(yt.a.Group,{controlId:"comment",children:[Object(r.jsx)(yt.a.Label,{style:s?{fontSize:"1.3rem"}:{},className:"review_form_label text-primary",children:"Your Comment"}),Object(r.jsx)(yt.a.Control,{as:"textarea",row:"8",value:S,onChange:function(e){return E(e.target.value)}})]}),Object(r.jsx)(gt.a,{className:"review_submit",onClick:function(e){e.preventDefault(),w(function(e,t,a,r){return function(){var n=Object(He.a)(Ge.a.mark((function n(c,s){var i,o,l;return Ge.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,c({type:O}),i=s(),o=i.userLogin.userInfo,l={"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(o.token)}},n.next=6,Qe.a.post("".concat(e,"/products/").concat(t,"/").concat(a,"/reviews"),r,l);case 6:c({type:x}),n.next=12;break;case 9:n.prev=9,n.t0=n.catch(0),c((j=n.t0.response&&n.t0.response.data.message?n.t0.response.data.message:n.t0.message,{type:g,payload:j}));case 12:case"end":return n.stop()}var j}),n,null,[[0,9]])})));return function(e,t){return n.apply(this,arguments)}}()}(c,a.params.category,a.params.id,{rating:y,comment:S}))},type:"submit",variant:"primary",children:"Submit"})]}):Object(r.jsxs)(bt,{children:["Please ",Object(r.jsx)(oe.b,{to:"/login",children:"sign in"})," to write a review"]})]})})]})})]})]})}var St=function(e,t){return{type:_,payload:{product:e._id,name:e.name,image:e.image,price:e.price,category:e.category,countInStock:e.countInStock,qty:t}}},Et=function(e,t,a,r){return function(){var n=Object(He.a)(Ge.a.mark((function n(c,s){var i,o;return Ge.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Qe.a.get("".concat(e,"/products/").concat(a,"/").concat(t));case 2:i=n.sent,o=i.data,c(St(o,r)),localStorage.setItem("cartItems",JSON.stringify(s().cart.cartItems));case 6:case"end":return n.stop()}}),n)})));return function(e,t){return n.apply(this,arguments)}}()},wt=function(e){return function(t,a){t(function(e){return{type:N,payload:e}}(e)),localStorage.setItem("cartItems",JSON.stringify(a().cart.cartItems))}},Pt=function(e){return function(t){t(function(e){return{type:S,payload:e}}(e)),localStorage.setItem("shippingAddress",JSON.stringify(e))}},Ct=function(e){return function(t){t(function(e){return{type:E,payload:e}}(e)),localStorage.setItem("paymentMethod",JSON.stringify(e))}},Rt=function(){return function(e){e({type:I}),localStorage.removeItem("cartItems")}},kt=(a(207),function(e){var t=e.match,a=e.location,c=e.history,s=e.isMobile,o=e.API,l=t.params.id,j=t.params.category,d=a.search?Number(a.search.split("=")[1]):1,u=Object(i.b)(),b=Object(i.c)((function(e){return e.userLogin})).userInfo,h=Object(i.c)((function(e){return e.cart})).cartItems;Object(n.useEffect)((function(){b?l&&u(Et(o,l,j,d)):c.push("/login")}),[u,l,d,j,b,c,o]);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)("nav",{"aria-label":"breadcrumb",children:Object(r.jsxs)("ol",{className:"breadcrumb",children:[Object(r.jsx)("li",{className:"breadcrumb-item",children:Object(r.jsx)(oe.b,{to:"/",children:"Home"})}),Object(r.jsx)("li",{className:"breadcrumb-item active","aria-current":"page",children:"CART"})]})}),Object(r.jsx)(gt.a,{onClick:function(){c.goBack()},className:"btn btn-light mt-2",children:"Go Back"}),Object(r.jsxs)(Ze.a,{className:"mt-4",children:[Object(r.jsxs)(et.a,{md:8,children:[Object(r.jsxs)("h1",{className:"cart__name ",children:["YOUR CART (",h&&h.length,")",Object(r.jsx)("span",{className:"cart__name__span",children:" ITEM"})]}),Object(r.jsx)("br",{}),0===h.length?Object(r.jsxs)(bt,{varient:"info",children:[Object(r.jsx)("span",{className:"cart__empty",children:"Your cart is empty "}),Object(r.jsx)(oe.b,{to:"/",children:"Keep Shopping"})]}):Object(r.jsxs)(vt.a,{varient:"flush",className:"shadow-lg",children:[s?null:Object(r.jsx)(vt.a.Item,{className:"cart__left__heading",children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{sm:3,children:Object(r.jsx)("h3",{children:"Image"})}),Object(r.jsx)(et.a,{sm:3,children:Object(r.jsx)("h3",{children:"Name"})}),Object(r.jsx)(et.a,{sm:2,children:Object(r.jsx)("h3",{children:"Price"})}),Object(r.jsx)(et.a,{sm:2,children:Object(r.jsx)("h3",{children:"Quantity"})})]})}),h.map((function(e){return Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{sm:3,children:Object(r.jsx)(ft.a,{className:"cart__left__item__image",width:s?"360":"200",src:e.image,alt:e.name,fluid:!0,rounded:!0})}),Object(r.jsx)(et.a,{className:"mt-4",sm:3,children:Object(r.jsx)(oe.b,{className:"cart__left__item__name",to:"/products/".concat(e.category,"/").concat(e.product),children:e.name})}),Object(r.jsxs)(et.a,{sm:2,className:"cart__left__item__price",children:["$",e.price]}),Object(r.jsx)(et.a,{className:s?"mt-3":"",sm:2,children:Object(r.jsx)(yt.a.Control,{as:"select",style:{border:"none",outline:"none"},value:e.qty,onChange:function(t){return u(Et(e.product,e.category,Number(t.target.value)))},children:Object(v.a)(Array(e.countInStock).keys()).map((function(e){return Object(r.jsx)("option",{value:e+1,children:e+1},e+1)}))})}),Object(r.jsx)(et.a,{className:s?"mt-3 mb-2":"",sm:2,children:Object(r.jsx)(gt.a,{className:"cart__left__item__remove",type:"button",variant:"light",onClick:function(){return function(e){console.log(e),u(wt(e))}(e.product)},children:Object(r.jsx)("i",{className:"fas fa-trash"})})})]})},e.product)}))]})]}),Object(r.jsx)(et.a,{md:4,children:Object(r.jsx)(at.a,{children:Object(r.jsxs)(vt.a,{children:[Object(r.jsx)(vt.a.Item,{className:s?"pt-4":"pb-4",children:Object(r.jsx)(gt.a,{className:"btn-block p-2 cart__right__checkout",disabled:0===h.length,onClick:function(){c.push("/login?redirect=shipping"),console.log("CHECKOUT")},children:"PROCEED TO PAY"})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsx)("h4",{className:"cart__right__order__heading",children:Object(r.jsx)("strong",{children:"ORDER SUMMARY"})})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:Object(r.jsx)("h4",{className:"cart__right__subtotal",children:"Subtotal:"})}),Object(r.jsx)(et.a,{children:Object(r.jsxs)("h5",{className:"cart__right__subtotal--value",children:["(",h.reduce((function(e,t){return e+t.qty}),0),")"]})})]})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:Object(r.jsx)("h4",{className:"cart__right__price",children:"Price:"})}),Object(r.jsx)(et.a,{children:Object(r.jsxs)("h5",{className:"cart__right__price--value",children:["$",h.reduce((function(e,t){return e+t.qty*t.price}),0).toFixed(2)]})})]})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:Object(r.jsx)("h4",{className:"cart__right__delivery",children:"Delivery:"})}),Object(r.jsx)(et.a,{children:Object(r.jsx)("h5",{className:"cart__right__delivery--value",children:"Free"})})]})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:Object(r.jsx)("h4",{className:"cart__right__total__price",children:"Total:"})}),Object(r.jsx)(et.a,{children:Object(r.jsxs)("h5",{className:"cart__right__total__price--value",children:["$",h.reduce((function(e,t){return e+t.qty*t.price}),0).toFixed(2)]})})]})})]})})})]})]})}),At=a(284),Tt=a(149),Dt=a(308),Lt=a(309),Ft=a(282),Ut=a(283),Mt=a(307),Bt=a(90),Wt=a.n(Bt),zt=a(74),qt=a.n(zt),Yt=a(76),Gt=a.n(Yt),Ht=a(77),$t=a.n(Ht),Qt=a(75),Vt=a.n(Qt),Jt=Object(Be.a)((function(e){return{form:{padding:e.spacing(2.6),display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},paper:Object(Me.a)({width:"50%",margin:"auto",marginTop:"0.4rem",paddingTop:e.spacing(2.4)},e.breakpoints.down("sm"),{width:"100%"}),avatar:{width:"3.1rem",height:"3.1rem",marginLeft:"50%",marginBottom:"0.8rem",transform:"translateX(-50%)",backgroundImage:"linear-gradient(45deg, #2196f3, 70%, #045694 90%)"},heading:Object(Me.a)({display:"flex",flexDirection:"row",justifyContent:"center",marginBottom:"0.6rem",marginTop:"0.6rem",color:"#1853F3",fontSize:"1.7rem"},e.breakpoints.down("xs"),{fontSize:"1.4rem"}),input:Object(Me.a)({"& label":{color:e.palette.info.main,fontWeight:"550"},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"#46BFE0"}},paddingBottom:e.spacing(2.8),width:"80%"},e.breakpoints.down("xs"),{width:"100%"}),button:Object(Me.a)({background:"linear-gradient(45deg, #2196F3 30%, #21CBF3 90%)",width:"80%",marginBottom:"0.8rem"},e.breakpoints.down("xs"),{width:"100%"}),icon:{width:"1.2rem"},register:Object(Me.a)({paddingTop:e.spacing(2.8),marginLeft:"6rem"},e.breakpoints.down("xs"),{marginLeft:"auto"}),login:Object(Me.a)({paddingTop:e.spacing(2.8),marginLeft:"6rem"},e.breakpoints.down("xs"),{marginLeft:"auto"}),selectLabel:{fontSize:"1.4rem",textAlign:"center",color:"#1853F3"},back:{marginLeft:"0.6rem",width:"2rem",height:"2rem",marginBottom:"-1rem",backgroundImage:"linear-gradient(45deg, #2196f3, 70%, #045694 90%)",borderRadius:"2rem",padding:"0.3rem 0 0.3rem 0.5rem",color:"white",cursor:"pointer"}}})),Kt=a(280),Xt=a(281),Zt=a(304),ea=a(5),ta=a(210),aa=Object(ea.a)({alternativeLabel:{top:22},active:{"& $line":{backgroundImage:"linear-gradient(45deg, #2196f3, 30%, #045694 90%)"}},completed:{"& $line":{backgroundImage:"linear-gradient(45deg, #045694, 30%, #2196f3 90%)"}},line:{height:3,border:0,backgroundColor:"#eaeaf0",borderRadius:1}})(ta.a),ra=a(4),na=a(276),ca=a(277),sa=a(278),ia=a(279),oa=Object(Be.a)((function(e){return{root:Object(Me.a)({backgroundColor:"#ccc",zIndex:1,color:"#fff",width:"3.2rem",height:"3.2rem",display:"flex",borderRadius:"50%",justifyContent:"center",alignItems:"center"},e.breakpoints.down("xs"),{width:"2.4rem",height:"2.4rem"}),active:{backgroundImage:"linear-gradient(45deg, #045694, 30%, #2196f3 90%)",boxShadow:"0 8px 22px 0 rgba(0,0,0,.25)"},completed:{backgroundImage:"linear-gradient(45deg, #045694, 30%, #2196f3 90%)"}}}));function la(e){var t,a=oa(),n=e.active,c=e.completed,s={1:Object(r.jsx)(na.a,{fontSize:"small"}),2:Object(r.jsx)(ca.a,{fontSize:"small"}),3:Object(r.jsx)(sa.a,{fontSize:"small"}),4:Object(r.jsx)(ia.a,{fontSize:"small"})};return Object(r.jsx)("div",{className:Object(ra.a)(a.root,(t={},Object(Me.a)(t,a.active,n),Object(Me.a)(t,a.completed,c),t)),children:s[String(e.icon)]})}var ja=Object(Be.a)((function(){return{root:{display:"flex",justifyContent:"center"}}}));function da(e){var t=e.step,a=ja(),n=["Sign In","Shipping","Payment","Place Order"];return Object(r.jsx)("div",{children:Object(r.jsx)(Kt.a,{className:a.root,activeStep:t,alternativeLabel:!0,connector:Object(r.jsx)(aa,{}),children:n.map((function(e){return Object(r.jsx)(Xt.a,{children:Object(r.jsx)(Zt.a,{StepIconComponent:la,children:e})},e)}))})})}var ua=function(e){var t=e.history,a=e.location,c=e.API,s=Jt(),o=Object(n.useState)(""),l=Object(je.a)(o,2),j=l[0],d=l[1],u=Object(n.useState)(""),b=Object(je.a)(u,2),h=b[0],m=b[1],p=Object(n.useState)(!1),O=Object(je.a)(p,2),x=O[0],g=O[1],f=Object(i.b)(),v=Object(i.c)((function(e){return e.userLogin})),y=v.loading,_=v.error,N=v.userInfo,I=a.search?a.search.split("=")[1]:"/";Object(n.useEffect)((function(){N&&t.push(I)}),[N,t,I]);return Object(r.jsxs)(r.Fragment,{children:["shipping"===I?Object(r.jsx)(da,{step:0}):null,Object(r.jsxs)(Tt.a,{elevation:14,className:s.paper,children:[Object(r.jsx)(Mt.a,{className:s.avatar,children:Object(r.jsx)(qt.a,{})}),Object(r.jsx)(be.a,{className:s.heading,component:"h1",variant:"h5",children:"Sign in"}),y&&Object(r.jsx)(dt,{}),Object(r.jsxs)("form",{className:s.form,children:[Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-email",children:"Email"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-email",placeholder:"Email Address",required:!0,type:"text",value:j,onChange:function(e){return d(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Wt.a,{className:s.icon})}),labelWidth:70})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-password",children:"Password"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-password",placeholder:"Password",required:!0,type:x?"text":"password",value:h,onChange:function(e){return m(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Vt.a,{className:s.icon})}),endAdornment:Object(r.jsx)(Ut.a,{position:"end",children:Object(r.jsx)(_e.a,{"aria-label":"toggle password visibility",onClick:function(){return g(!x)},onMouseDown:function(e){return e.preventDefault()},edge:"end",children:x?Object(r.jsx)(Gt.a,{}):Object(r.jsx)($t.a,{})})}),labelWidth:70})]}),_&&Object(r.jsx)(bt,{varient:"error",children:_}),Object(r.jsx)(pe.a,{className:s.button,onClick:function(e){e.preventDefault(),f(function(e,t,a){return function(){var r=Object(He.a)(Ge.a.mark((function r(n){var c,s,i;return Ge.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,n({type:w}),c={"Content-Type":"application/json"},r.next=5,Qe.a.post("".concat(e,"/user/login"),{email:t,password:a},c);case 5:s=r.sent,i=s.data,n(Ve(i)),localStorage.setItem("userInfo",JSON.stringify(i)),setTimeout((function(){localStorage.removeItem("userInfo")}),36e5),r.next=15;break;case 12:r.prev=12,r.t0=r.catch(0),n((o=r.t0.response&&r.t0.response.data.message?r.t0.response.data.message:r.t0.message,{type:C,payload:o}));case 15:case"end":return r.stop()}var o}),r,null,[[0,12]])})));return function(e){return r.apply(this,arguments)}}()}(c,j,h))},size:"large",variant:"contained",color:"primary",children:"Sign In"}),Object(r.jsx)(At.a,{container:!0,children:Object(r.jsx)(At.a,{item:!0,children:Object(r.jsxs)(be.a,{component:"h5",className:s.register,children:["Haven't Registered yet? \xa0",Object(r.jsx)(oe.b,{to:I?"/register?redirect=".concat(I):"/register",variant:"body2",children:"Register"})]})})})]})]})]})},ba=function(e){var t=e.history,a=e.location,c=e.API,s=Jt(),o=Object(n.useState)(""),l=Object(je.a)(o,2),j=l[0],d=l[1],u=Object(n.useState)(""),b=Object(je.a)(u,2),h=b[0],m=b[1],p=Object(n.useState)(""),O=Object(je.a)(p,2),x=O[0],g=O[1],f=Object(n.useState)(""),v=Object(je.a)(f,2),y=v[0],_=v[1],N=Object(n.useState)(!1),I=Object(je.a)(N,2),S=I[0],E=I[1],w=Object(n.useState)(!1),P=Object(je.a)(w,2),C=P[0],R=P[1],D=Object(n.useState)(null),L=Object(je.a)(D,2),F=L[0],U=L[1],M=Object(i.b)(),B=Object(i.c)((function(e){return e.userRegister})),W=B.loading,z=B.error,q=B.userInfo,Y=a.search?a.search.split("=")[1]:"/";Object(n.useEffect)((function(){q&&t.push(Y)}),[q,t,Y]);return Object(r.jsxs)(Tt.a,{elevation:14,className:s.paper,children:[Object(r.jsx)(Mt.a,{className:s.avatar,children:Object(r.jsx)(qt.a,{})}),Object(r.jsx)(be.a,{className:s.heading,component:"h1",variant:"h5",children:"Sign Up"}),W&&Object(r.jsx)(dt,{}),Object(r.jsxs)("form",{className:s.form,children:[Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-name",children:"Name"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-name",placeholder:"Your Name",required:!0,type:"text",value:x,onChange:function(e){return g(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(qt.a,{className:s.icon})}),labelWidth:45})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-email",children:"Email"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-email",placeholder:"Email Address",required:!0,type:"text",value:j,onChange:function(e){return d(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Wt.a,{className:s.icon})}),labelWidth:40})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-password",children:"Password"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-password",placeholder:"Password",required:!0,type:S?"text":"password",value:h,onChange:function(e){return m(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Vt.a,{className:s.icon})}),endAdornment:Object(r.jsx)(Ut.a,{position:"end",children:Object(r.jsx)(_e.a,{"aria-label":"toggle password visibility",onClick:function(){return E(!S)},onMouseDown:function(e){return e.preventDefault()},edge:"end",children:S?Object(r.jsx)(Gt.a,{}):Object(r.jsx)($t.a,{})})}),labelWidth:70})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-confirmPassword",children:"Confirm Password"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-confirmPassword",placeholder:"Confirm Password",required:!0,type:C?"text":"password",value:y,onChange:function(e){return _(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Vt.a,{className:s.icon})}),endAdornment:Object(r.jsx)(Ut.a,{position:"end",children:Object(r.jsx)(_e.a,{"aria-label":"toggle password visibility",onClick:function(){return R(!C)},onMouseDown:function(e){return e.preventDefault()},edge:"end",children:C?Object(r.jsx)(Gt.a,{}):Object(r.jsx)($t.a,{})})}),labelWidth:135})]}),z&&Object(r.jsx)(bt,{varient:"error",children:z}),F&&Object(r.jsx)(bt,{varient:"error",children:F}),Object(r.jsx)(pe.a,{className:s.button,onClick:function(e){e.preventDefault(),h===y?M(function(e,t,a,r){return function(){var n=Object(He.a)(Ge.a.mark((function n(c){var s,i,o;return Ge.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,c({type:k}),s={"Content-Type":"application/json"},n.next=5,Qe.a.post("".concat(e,"/user/register"),{name:t,email:a,password:r},s);case 5:i=n.sent,o=i.data,c({type:A,payload:o}),c(Ve(o)),localStorage.setItem("userInfo",JSON.stringify(o)),setTimeout((function(){localStorage.removeItem("userInfo")}),36e5),n.next=16;break;case 13:n.prev=13,n.t0=n.catch(0),c((l=n.t0.response&&n.t0.response.data.message?n.t0.response.data.message:n.t0.message,{type:T,payload:l}));case 16:case"end":return n.stop()}var l}),n,null,[[0,13]])})));return function(e){return n.apply(this,arguments)}}()}(c,x,j,h)):U("Password does not match")},size:"large",variant:"contained",color:"primary",children:"Register"}),Object(r.jsx)(At.a,{container:!0,children:Object(r.jsx)(At.a,{item:!0,children:Object(r.jsxs)(be.a,{component:"h5",className:s.login,children:["Already Registered? \xa0",Object(r.jsx)(oe.b,{to:Y?"/login?redirect=".concat(Y):"/login",variant:"body2",children:"Login"})]})})})]})]})},ha=a(288),ma=a(290),pa=a(287),Oa=a(289),xa=a(286),ga=a(137),fa=a.n(ga),va=function(e){return{type:q,payload:e}},ya=function(e,t,a){return function(){var r=Object(He.a)(Ge.a.mark((function r(n,c){var s,i,o,l,j;return Ge.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,n({type:J}),s=c(),i=s.userLogin.userInfo,o={"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(i.token)}},r.next=6,Qe.a.put("".concat(e,"/orders/").concat(t,"/payment"),a,o);case 6:l=r.sent,j=l.data,n({type:K,payload:j}),r.next=14;break;case 11:r.prev=11,r.t0=r.catch(0),r.t0.response&&r.t0.response.data.message?r.t0.response.data.message:r.t0.message;case 14:case"end":return r.stop()}}),r,null,[[0,11]])})));return function(e,t){return r.apply(this,arguments)}}()},_a=a(312),Na=a(298),Ia=a(285),Sa=Object(Be.a)((function(e){return{form:{"& .MuiTextField-root":{margin:e.spacing(1.4),width:"76%"},marginTop:"1.4rem"},heading:{color:"#2071E3",fontWeight:"550"},button:{background:"linear-gradient(45deg, #2196F3 30%, #21CBF3 90%)",margin:e.spacing(1.4),width:"76%"},table:{borderRadius:".4rem",marginTop:"1.4rem"},details:{boxShadow:"rgba(0, 0, 0, 0.2) 0px 2px 1px -1px, rgba(0, 0, 0, 0.14) 0px 1px 1px 0px, rgba(0, 0, 0, 0.12) 0px 1px 3px 0px","&:hover":{border:"none",backgroundColor:"#4EABDE",color:e.palette.common.white}}}})),Ea=Object(ea.a)({root:{"& label":{color:"green"},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"green"}}}})(Na.a),wa=Object(ea.a)((function(e){return Object(_a.a)({head:{background:"#2196F3",color:e.palette.common.white},body:{fontSize:14}})}))(Ia.a),Pa=Object(ea.a)((function(e){return Object(_a.a)({root:{"&:nth-of-type(odd)":{backgroundColor:e.palette.action.selected,"&:hover":{backgroundColor:e.palette.action.hover}}}})}))(xa.a),Ca=function(e){var t=e.history,a=e.API,c=Sa(),s=Object(n.useState)(""),o=Object(je.a)(s,2),l=o[0],j=o[1],d=Object(n.useState)(""),u=Object(je.a)(d,2),b=u[0],h=u[1],m=Object(n.useState)(""),p=Object(je.a)(m,2),O=p[0],x=p[1],g=Object(n.useState)(""),f=Object(je.a)(g,2),v=f[0],y=f[1],_=Object(n.useState)(null),N=Object(je.a)(_,2),I=N[0],S=N[1],E=Object(i.b)(),w=Object(i.c)((function(e){return e.userLogin})).userInfo,P=Object(i.c)((function(e){return e.userDetails})),C=P.loading,R=P.user,k=P.error,A=Object(i.c)((function(e){return e.userUpdateProfile})).success,T=Object(i.c)((function(e){return e.myOrders})),U=T.loading,B=T.error,z=T.orders;Object(n.useEffect)((function(){w?R&&(x(R.name),j(R.email)):t.push("/login")}),[w,R,t]),Object(n.useEffect)((function(){E(function(e,t){return function(){var a=Object(He.a)(Ge.a.mark((function a(r,n){var c,s,i,o,l;return Ge.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,r({type:D}),c=n(),s=c.userLogin.userInfo,i={"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(s.token)}},a.next=6,Qe.a.get("".concat(e,"/user/").concat(t),i);case 6:o=a.sent,l=o.data,r({type:L,payload:l}),a.next=14;break;case 11:a.prev=11,a.t0=a.catch(0),r((j=a.t0.response&&a.t0.response.data.message?a.t0.response.data.message:a.t0.message,{type:F,payload:j}));case 14:case"end":return a.stop()}var j}),a,null,[[0,11]])})));return function(e,t){return a.apply(this,arguments)}}()}(a,"profile")),E(function(e){return function(){var t=Object(He.a)(Ge.a.mark((function t(a,r){var n,c,s,i,o;return Ge.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,a({type:ee}),n=r(),c=n.userLogin.userInfo,s={headers:{Authorization:"Bearer ".concat(c.token)}},t.next=6,Qe.a.get("".concat(e,"/orders/myorders"),s);case 6:i=t.sent,o=i.data,a({type:te,payload:o}),t.next=14;break;case 11:t.prev=11,t.t0=t.catch(0),t.t0.response&&t.t0.response.data.message?t.t0.response.data.message:t.t0.message;case 14:case"end":return t.stop()}}),t,null,[[0,11]])})));return function(e,a){return t.apply(this,arguments)}}()}(a))}),[E,a]);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)("nav",{"aria-label":"breadcrumb",children:Object(r.jsxs)("ol",{className:"breadcrumb",children:[Object(r.jsx)("li",{className:"breadcrumb-item",children:Object(r.jsx)(oe.b,{to:"/",children:"Home"})}),Object(r.jsx)("li",{className:"breadcrumb-item active","aria-current":"page",children:"PROFILE"})]})}),Object(r.jsx)(gt.a,{onClick:function(){t.goBack()},className:"btn btn-light mt-2 mb-4",children:"Go Back"}),Object(r.jsxs)(At.a,{container:!0,spacing:2,children:[Object(r.jsxs)(At.a,{item:!0,sm:4,xs:12,children:[Object(r.jsx)("h2",{className:c.heading,children:"PROFILE"}),C&&Object(r.jsx)(dt,{}),Object(r.jsxs)("form",{className:c.form,children:[Object(r.jsx)(Ea,{id:"outlined-name",label:"Name",value:O,multiline:!0,placeholder:"Name",onChange:function(e){return x(e.target.value)},variant:"outlined",InputLabelProps:{shrink:!0}}),Object(r.jsx)(Ea,{id:"outlined-email",label:"Email",value:l,multiline:!0,placeholder:"Email",onChange:function(e){return j(e.target.value)},variant:"outlined",InputLabelProps:{shrink:!0}}),Object(r.jsx)(Ea,{type:"password",autoComplete:"current-password",label:"Password",value:b,onChange:function(e){return h(e.target.value)},placeholder:"Password",variant:"outlined",InputLabelProps:{shrink:!0}}),Object(r.jsx)(Ea,{type:"password",autoComplete:"current-password",id:"outlined-password",required:!0,label:"Confirm Password",value:v,placeholder:"Confirm Password",onChange:function(e){return y(e.target.value)},variant:"outlined",InputLabelProps:{shrink:!0}}),k&&Object(r.jsx)(bt,{varient:"error",children:k}),I&&Object(r.jsx)(bt,{varient:"error",children:I}),A&&Object(r.jsx)(bt,{varient:"success",children:"Profile Updated Successfully"}),Object(r.jsx)(pe.a,{className:c.button,onClick:function(e){e.preventDefault(),b!==v?S("Password does not match"):E(function(e,t){return function(){var a=Object(He.a)(Ge.a.mark((function a(r,n){var c,s,i,o,l;return Ge.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,r({type:M}),c=n(),s=c.userLogin.userInfo,i={"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(s.token)}},a.next=6,Qe.a.put("".concat(e,"/user/profile"),t,i);case 6:o=a.sent,l=o.data,r(Je(l)),a.next=14;break;case 11:a.prev=11,a.t0=a.catch(0),r((j=a.t0.response&&a.t0.response.data.message?a.t0.response.data.message:a.t0.message,{type:W,payload:j}));case 14:case"end":return a.stop()}var j}),a,null,[[0,11]])})));return function(e,t){return a.apply(this,arguments)}}()}(a,{id:R._id,name:O,email:l,password:b}))},size:"large",variant:"contained",color:"primary",children:"Update"})]})]}),Object(r.jsxs)(At.a,{item:!0,sm:8,xs:12,children:[Object(r.jsx)("h2",{className:c.heading,children:"MY ORDERS"}),U?Object(r.jsx)(dt,{}):B?Object(r.jsx)(bt,{varient:"danger",children:B}):Object(r.jsx)(Tt.a,{elevation:8,className:c.table,children:Object(r.jsx)(pa.a,{className:c.table,children:Object(r.jsxs)(ha.a,{"aria-label":"customized table",children:[Object(r.jsx)(Oa.a,{children:Object(r.jsxs)(xa.a,{children:[Object(r.jsx)(wa,{align:"center",children:"ORDER ID"}),Object(r.jsx)(wa,{align:"center",children:"DATE"}),Object(r.jsx)(wa,{align:"center",children:"TOTAL"}),Object(r.jsx)(wa,{align:"center",children:"PAID"}),Object(r.jsx)(wa,{align:"center",children:"DELIVERED"}),Object(r.jsx)(wa,{align:"center"})]})}),Object(r.jsx)(ma.a,{children:z&&z.map((function(e){return Object(r.jsxs)(Pa,{children:[Object(r.jsx)(wa,{component:"th",scope:"row",children:e._id}),Object(r.jsx)(wa,{align:"center",children:e.createdAt.substring(0,10)}),Object(r.jsx)(wa,{align:"center",children:e.totalPrice}),Object(r.jsx)(wa,{align:"center",children:e.isPaid?Object(r.jsxs)("div",{children:[Object(r.jsx)(fa.a,{color:"primary"}),"\xa0 \xa0",Object(r.jsx)("span",{children:e.paidAt.substring(0,10)})]}):Object(r.jsx)("i",{className:"fa fa-times",style:{color:"#f44336"}})}),Object(r.jsx)(wa,{align:"center",children:e.isDelivered?e.deliveredAt.substring(0,10):Object(r.jsx)("i",{className:"fa fa-times",style:{color:"#f44336"}})}),Object(r.jsx)(wa,{align:"center",children:Object(r.jsx)(oe.b,{to:"/orders/".concat(e._id),children:Object(r.jsx)(pe.a,{className:c.details,variant:"outlined",color:"primary",children:"DETAILS"})})})]},e._id)}))})]})})})]})]})]})},Ra=a(138),ka=a.n(Ra),Aa=a(139),Ta=a.n(Aa),Da=a(140),La=a.n(Da),Fa=a(141),Ua=a.n(Fa),Ma=a(142),Ba=a.n(Ma),Wa=a(92),za=a.n(Wa),qa=function(e){var t=e.history,a=Jt(),c=Object(i.c)((function(e){return e.cart})).shippingAddress,s=Object(n.useState)(c.address),o=Object(je.a)(s,2),l=o[0],j=o[1],d=Object(n.useState)(c.city),u=Object(je.a)(d,2),b=u[0],h=u[1],m=Object(n.useState)(c.postalCode),p=Object(je.a)(m,2),O=p[0],x=p[1],g=Object(n.useState)(c.country),f=Object(je.a)(g,2),v=f[0],y=f[1],_=Object(i.b)(),N=Object(i.c)((function(e){return e.userLogin})).userInfo;Object(n.useEffect)((function(){N||t.push("/login")}),[t,N]);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)(da,{step:1}),Object(r.jsxs)(Tt.a,{elevation:14,className:a.paper,children:[Object(r.jsx)("div",{onClick:function(){t.goBack()},children:Object(r.jsx)(za.a,{className:a.back})}),Object(r.jsx)(Mt.a,{className:a.avatar,children:Object(r.jsx)(ka.a,{})}),Object(r.jsx)(be.a,{className:a.heading,component:"h1",variant:"h5",children:"Shipping Address"}),Object(r.jsxs)("form",{className:a.form,children:[Object(r.jsxs)(Ft.a,{variant:"outlined",className:a.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-address",children:"Address"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-address",placeholder:"Your Address",required:!0,type:"text",value:l,onChange:function(e){return j(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Ta.a,{className:a.icon})}),labelWidth:60})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:a.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-city",children:"City"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-city",placeholder:"Your City",required:!0,type:"text",value:b,onChange:function(e){return h(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(La.a,{className:a.icon})}),labelWidth:30})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:a.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-postalCode",children:"Postal Code"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-postalCode",placeholder:"Postal Code",required:!0,type:"text",value:O,onChange:function(e){return x(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Ua.a,{className:a.icon})}),labelWidth:90})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:a.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-confirmPassword",children:"Country"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-country",placeholder:"Your Country",required:!0,type:"text",value:v,onChange:function(e){return y(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Ba.a,{className:a.icon})}),labelWidth:58})]}),Object(r.jsx)(pe.a,{className:a.button,onClick:function(e){e.preventDefault(),_(Pt({address:l,city:b,postalCode:O,country:v})),t.push("/paymentMethod")},size:"large",variant:"contained",color:"primary",children:"CONTINUE"})]})]})]})},Ya=a(300),Ga=a(310),Ha=a(291),$a=a(143),Qa=a.n($a),Va=function(e){var t=e.history,a=Jt();Object(i.c)((function(e){return e.cart})).shippingAddress||t.push("/shipping");var c=Object(n.useState)(""),s=Object(je.a)(c,2),o=s[0],l=s[1],j=Object(i.b)(),d=Object(i.c)((function(e){return e.userLogin})).userInfo;Object(n.useEffect)((function(){d||t.push("/login")}),[t,d]);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)(da,{step:2}),Object(r.jsxs)(Tt.a,{elevation:14,className:a.paper,children:[Object(r.jsx)("div",{onClick:function(){t.goBack()},children:Object(r.jsx)(za.a,{className:a.back})}),Object(r.jsx)(Mt.a,{className:a.avatar,children:Object(r.jsx)(Qa.a,{})}),Object(r.jsx)(be.a,{className:a.heading,component:"h1",variant:"h5",children:"Payment Method"}),Object(r.jsxs)("form",{className:a.form,children:[Object(r.jsx)(Ft.a,{component:"fieldset",className:a.input,children:Object(r.jsxs)(Ga.a,{"aria-label":"payment method",name:"payment method",value:o,onChange:function(e){return l(e.target.value)},children:[Object(r.jsx)(Ha.a,{value:"PayPal",control:Object(r.jsx)(Ya.a,{required:!0}),label:"PayPal"}),Object(r.jsx)(Ha.a,{value:"Stripe",control:Object(r.jsx)(Ya.a,{required:!0}),label:"Stripe"})]})}),Object(r.jsx)(pe.a,{className:a.button,onClick:function(e){e.preventDefault(),j(Ct(o)),t.push("/placeorder")},size:"large",variant:"contained",color:"primary",children:"CONTINUE"})]})]})]})},Ja=a(295),Ka=a(292),Xa=a(294),Za=a(293),er=window.innerWidth<=768,tr=Object(Be.a)((function(e){return Object(_a.a)({root:{width:"100%",maxWidth:"36ch",backgroundColor:e.palette.background.paper},inline:{display:"inline"},divider:{marginBottom:"0.5rem",marginTop:"0.3rem"},avatar:{width:er?"3.9rem":"6.5rem",height:er?"3.9rem":"6.5rem",marginRight:"1rem"},paper:{marginBottom:"1.8rem",padding:"0.4rem 1rem 1rem 0"},list_item:{paddingLeft:"1.2rem",paddingRight:"1rem",paddingBottom:"1.4rem"},order_summary:{fontSize:"1.6rem",margin:"auto"},order_link:{textDecoration:"none"},message:{paddingLeft:"2rem",marginTop:"0.8rem",width:"100%"},shipping:{marginRight:"2rem"},email:{color:"#000",textDecoration:"none"},qty:{fontSize:"1.3rem",fontWeight:"450"}})})),ar=function(e){var t=e.history,a=e.API,c=e.isMobile,s=tr(),o=Object(i.b)(),l=Object(i.c)((function(e){return e.userLogin})).userInfo,j=Object(i.c)((function(e){return e.cart})),d=j.cartItems,u=j.shippingAddress,b=j.paymentMethod;j.itemsPrice=d.reduce((function(e,t){return e+t.qty*t.price}),0).toFixed(2),j.shippingPrice=(j.itemsPrice>150?100:0).toFixed(2),j.taxPrice=(25*j.itemsPrice/100).toFixed(2),j.totalPrice=(Number(j.itemsPrice)+Number(j.shippingPrice)+Number(j.taxPrice)).toFixed(2);var h=Object(i.c)((function(e){return e.order})),m=h.order,p=h.success;return Object(n.useEffect)((function(){l||t.push("/login"),p&&(t.push("/orders/".concat(m._id)),o({type:G}))}),[o,t,m,p,l,a]),Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)(da,{step:3}),Object(r.jsxs)(At.a,{container:!0,spacing:4,children:[Object(r.jsxs)(At.a,{item:!0,md:8,xs:12,children:[Object(r.jsxs)(Tt.a,{className:s.paper,elevation:6,children:[Object(r.jsxs)(ge.a,{className:s.list,children:[Object(r.jsx)(fe.a,{className:s.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:c?"h6":"h5",component:"h3",children:Object(r.jsx)("strong",{children:"SHIPPING DETAILS"})})}),Object(r.jsx)(fe.a,{className:s.list_item,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:[u.address,",",Object(r.jsx)("br",{}),u.city,",",Object(r.jsx)("br",{}),u.country,",",Object(r.jsx)("br",{}),u.postalCode]})})]}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:s.divider}),Object(r.jsxs)(ge.a,{className:s.list,children:[Object(r.jsx)(fe.a,{className:s.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:c?"h6":"h5",component:"h3",children:Object(r.jsx)("strong",{children:"PAYMENT METHOD"})})}),Object(r.jsx)(fe.a,{className:s.list_item,children:Object(r.jsx)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:b})})]})]}),Object(r.jsxs)(Tt.a,{className:s.paper,elevation:6,children:[Object(r.jsx)(ge.a,{className:s.list,children:Object(r.jsx)(fe.a,{className:s.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:"h5",component:"h3",children:Object(r.jsx)("strong",{children:"ORDER DETAILS"})})})}),d.length?Object(r.jsx)(ge.a,{children:d.map((function(e,t){return Object(r.jsxs)("div",{children:[Object(r.jsxs)(fe.a,{className:s.list_item,alignItems:"flex-start",children:[Object(r.jsx)(Xa.a,{children:Object(r.jsx)(Mt.a,{className:s.avatar,alt:e.name,variant:"square",src:e.image})}),Object(r.jsx)(oe.b,{className:s.order_link,to:"/products/".concat(e.category,"/").concat(e.product),children:Object(r.jsx)(ve.a,{primary:e.name,secondary:Object(r.jsxs)(be.a,{color:"primary",variant:c?"span":"body2",component:"span",children:[e.qty," x ",e.price," ="," ",(e.qty*e.price).toFixed(2)]})})}),Object(r.jsx)(Ja.a,{style:c?{marginTop:"2.2rem",marginRight:"-1.8rem"}:{},children:Object(r.jsx)(gt.a,{type:"button",variant:"light",onClick:function(){return t=e.product,void o(wt(t));var t},children:Object(r.jsx)("i",{className:"fas fa-trash"})})})]}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:s.divider,component:"li"})]},t)}))}):Object(r.jsx)(Za.a,{maxWidth:"md",children:Object(r.jsxs)(bt,{varient:"info",children:["Your Cart Is Empty ",Object(r.jsx)(oe.b,{to:"/",children:"Keep Shopping"})]})})]})]}),Object(r.jsx)(At.a,{item:!0,md:4,xs:12,children:Object(r.jsx)(Tt.a,{elevation:6,children:Object(r.jsxs)(ge.a,{children:[Object(r.jsx)(fe.a,{children:Object(r.jsx)(be.a,{className:s.order_summary,color:"primary",variant:"h4",component:"h3",children:Object(r.jsx)("strong",{children:"ORDER SUMMARY"})})}),Object(r.jsx)(Ka.a,{variant:"inset",component:"br"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Items"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",j.itemsPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:s.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Shipping"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",j.shippingPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:s.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Tax"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",j.taxPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:s.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Total"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",j.totalPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",component:"br"}),Object(r.jsx)(fe.a,{children:Object(r.jsx)(gt.a,{className:"btn-block p-2",disabled:0===d.length,onClick:function(){o(function(e,t){return function(){var a=Object(He.a)(Ge.a.mark((function a(r,n){var c,s,i,o,l;return Ge.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,r({type:z}),c=n(),s=c.userLogin.userInfo,i={"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(s.token)}},a.next=6,Qe.a.post("".concat(e,"/orders"),t,i);case 6:o=a.sent,l=o.data,r(va(l)),a.next=14;break;case 11:a.prev=11,a.t0=a.catch(0),a.t0.response&&a.t0.response.data.message?a.t0.response.data.message:a.t0.message;case 14:case"end":return a.stop()}}),a,null,[[0,11]])})));return function(e,t){return a.apply(this,arguments)}}()}(a,{orderItems:d,shippingAddress:u,paymentMethod:b,itemsPrice:j.itemsPrice,shippingPrice:j.shippingPrice,taxPrice:j.taxPrice,totalPrice:j.totalPrice}))},children:"PLACE ORDER"})})]})})})]})]})},rr=a(144),nr=a.n(rr),cr=function(e){var t=e.orderId,a=e.API,c=Object(i.b)(),s=Object(i.c)((function(e){return e.orderDetails})).orders,o=Object(i.c)((function(e){return e.userLogin})).userInfo,l=Object(i.c)((function(e){return e.orderPay})),j=l.loading,d=l.success;Object(n.useEffect)((function(){d&&(c({type:Z}),c(Rt()))}),[c,d]);var u=function(){var e=Object(He.a)(Ge.a.mark((function e(r){var n,i;return Ge.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.log(r),e.prev=1,e.next=4,Qe.a.post("".concat(a,"/payment/stripe"),{token:r,orderId:t},{"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(o.token)}});case 4:n=e.sent,i=n.data,console.log(i),i&&(c(ya(a,t,i)),alert("Transaction completed by "+s.user.name+" through stripe")),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),console.log(e.t0);case 13:case"end":return e.stop()}}),e,null,[[1,10]])})));return function(t){return e.apply(this,arguments)}}();return Object(r.jsx)(r.Fragment,{children:j?Object(r.jsx)(dt,{}):Object(r.jsx)(nr.a,{stripeKey:"pk_test_51I5RESIXupbB6992cGPzW6YHI1FZhP0WagDyo7sBv3cNCL1i5yVsDDQk8zqnyNiMvE7BBghdnZBA1ejNHfBdwaiS00gHyPOIaK",token:u,amount:100*s.totalPrice,currency:"USD",name:"Pay with Stripe",shippingAddress:!0,billingAddress:!0,children:Object(r.jsx)(pe.a,{style:{width:"100%"},variant:"contained",size:"large",color:"primary",children:"Pay With Stripe"})})})},sr=a(145),ir=function(e){var t=e.orderId,a=e.API,c=Object(i.b)(),s=Object(i.c)((function(e){return e.orderDetails})).orders,o=Object(i.c)((function(e){return e.orderPay})),l=o.loading,j=o.success,d=Object(n.useState)(!1),u=Object(je.a)(d,2),b=u[0],h=u[1],m=function(){var e=Object(He.a)(Ge.a.mark((function e(){var t,r,n;return Ge.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Qe.a.get("".concat(a,"/config/paypal"));case 2:t=e.sent,r=t.data,console.log(r),(n=document.createElement("script")).type="text/javascript",n.src="https://www.paypal.com/sdk/js?client-id=".concat(r),n.async=!0,n.onload=function(){h(!0)},document.body.appendChild(n);case 11:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();Object(n.useEffect)((function(){j?(c({type:Z}),c(Rt())):s&&!s.isPaid&&(window.paypal?h(!0):m())}),[c,s,j]);return Object(r.jsx)(r.Fragment,{children:l?Object(r.jsx)(dt,{}):b?Object(r.jsx)(sr.PayPalButton,{amount:"".concat(s.totalPrice),onSuccess:function(e){console.log(e),c(ya(a,t,e)),alert("Transaction completed by "+s.user.name+" through paypal")},onError:function(e){console.log(e),alert(e)},onCancel:function(e){alert("Order "+e.orderID+" Cancelled")}}):Object(r.jsx)(dt,{})})},or=function(){return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)(_t.a,{className:"mt-4",width:600,height:60,variant:"text",component:"h2"}),Object(r.jsxs)(At.a,{className:"mt-3",container:!0,spacing:4,children:[Object(r.jsxs)(At.a,{item:!0,md:8,xs:12,children:[Object(r.jsx)(_t.a,{variant:"rect",height:500}),Object(r.jsx)(_t.a,{className:"mt-4",variant:"rect",height:200})]}),Object(r.jsx)(At.a,{item:!0,md:4,xs:12,children:Object(r.jsx)(_t.a,{variant:"rect",height:360})})]})]})},lr=function(e){var t=e.match,a=e.history,c=e.API,s=e.isMobile,o=tr(),l=t.params.id,j=Object(i.b)(),d=Object(i.c)((function(e){return e.userLogin})).userInfo,u=Object(i.c)((function(e){return e.orderDetails})),b=u.loading,h=u.orders,m=u.error,p=Object(i.c)((function(e){return e.orderPay})).success;return Object(n.useEffect)((function(){d?j(function(e,t){return function(){var a=Object(He.a)(Ge.a.mark((function a(r,n){var c,s,i,o,l;return Ge.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,r({type:H}),c=n(),s=c.userLogin.userInfo,i={headers:{Authorization:"Bearer ".concat(s.token)}},a.next=6,Qe.a.get("".concat(e,"/orders/").concat(t),i);case 6:o=a.sent,l=o.data,r({type:$,payload:l}),a.next=14;break;case 11:a.prev=11,a.t0=a.catch(0),a.t0.response&&a.t0.response.data.message?a.t0.response.data.message:a.t0.message;case 14:case"end":return a.stop()}}),a,null,[[0,11]])})));return function(e,t){return a.apply(this,arguments)}}()}(c,l)):a.push("/login")}),[j,l,p,d,a,c]),b?Object(r.jsx)(or,{}):m?Object(r.jsx)(bt,{varient:"danger",children:m}):Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)("br",{}),Object(r.jsxs)(be.a,{variant:s?"h6":"h4",component:"h4",color:"textSecondary",children:[Object(r.jsx)("span",{style:s?{display:"flex",justifyContent:"center"}:{},children:"ORDER"})," ",h._id]}),Object(r.jsx)("br",{}),Object(r.jsx)("br",{}),Object(r.jsxs)(At.a,{container:!0,spacing:4,children:[Object(r.jsxs)(At.a,{item:!0,md:8,xs:12,children:[Object(r.jsxs)(Tt.a,{className:o.paper,elevation:6,children:[Object(r.jsxs)(ge.a,{className:o.list,children:[Object(r.jsx)(fe.a,{className:o.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:s?"h6":"h5",component:"h3",children:Object(r.jsx)("strong",{children:"SHIPPING DETAILS"})})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider}),Object(r.jsx)(fe.a,{className:o.list_item,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:[Object(r.jsx)("strong",{className:o.shipping,children:"Name: "}),h.user.name,Object(r.jsx)("br",{}),Object(r.jsx)("br",{}),Object(r.jsx)("strong",{className:o.shipping,children:"Email: "}),Object(r.jsx)("a",{rel:"noreferrer",className:o.email,href:h.user.email,target:"_blank",children:h.user.email}),Object(r.jsx)("br",{}),Object(r.jsx)("br",{}),Object(r.jsx)("strong",{children:"Address: "}),Object(r.jsx)("span",{className:"ml-2",children:h.shippingAddress.address}),Object(r.jsx)("br",{}),Object(r.jsx)("span",{className:"ml-4 pl-5",children:h.shippingAddress.city}),Object(r.jsx)("br",{}),Object(r.jsxs)("span",{className:"ml-4 pl-5",children:[h.shippingAddress.country,","]}),Object(r.jsx)("br",{}),Object(r.jsx)("span",{className:"ml-4 pl-5",children:h.shippingAddress.postalCode})]})}),Object(r.jsx)("div",{className:o.message,children:h.isDelivered?Object(r.jsxs)(bt,{varient:"success",children:["Delivered at ",h.deliveredAt]}):Object(r.jsx)(bt,{varient:"error",children:"Not Delivered"})})]}),Object(r.jsxs)(ge.a,{className:o.list,children:[Object(r.jsx)(fe.a,{className:o.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:s?"h6":"h5",component:"h3",children:Object(r.jsx)("strong",{children:"PAYMENT METHOD"})})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider}),Object(r.jsx)(fe.a,{className:o.list_item,children:Object(r.jsx)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:h.paymentMethod})}),Object(r.jsx)("div",{className:o.message,children:h.isPaid?Object(r.jsxs)(bt,{varient:"success",children:["Paid on ",h.paidAt.substring(0,10)]}):Object(r.jsx)(bt,{varient:"error",children:"Not Paid"})})]})]}),Object(r.jsxs)(Tt.a,{className:o.paper,elevation:6,children:[Object(r.jsx)(ge.a,{className:o.list,children:Object(r.jsx)(fe.a,{className:o.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:"h5",component:"h3",children:Object(r.jsx)("strong",{children:"ORDER DETAILS"})})})}),h.orderItems.length?Object(r.jsx)(ge.a,{children:h.orderItems.map((function(e,t){return Object(r.jsxs)("div",{children:[Object(r.jsxs)(fe.a,{className:o.list_item,alignItems:"flex-start",children:[Object(r.jsx)(Xa.a,{children:Object(r.jsx)(Mt.a,{className:o.avatar,alt:e.name,variant:"square",src:e.image})}),Object(r.jsx)(oe.b,{className:o.order_link,to:"/products/".concat(e.category,"/").concat(e.product),children:Object(r.jsx)(ve.a,{primary:e.name,secondary:Object(r.jsxs)(be.a,{color:"primary",variant:s?"span":"body2",component:"span",children:[e.qty," x ",e.price," ="," ",(e.qty*e.price).toFixed(2)]})})}),s?null:Object(r.jsxs)(Ja.a,{className:o.qty,children:["Qty: ",e.qty]})]}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider,component:"li"})]},t)}))}):Object(r.jsx)(Za.a,{maxWidth:"md",children:Object(r.jsxs)(bt,{varient:"info",children:["No order ",Object(r.jsx)(oe.b,{to:"/",children:" Keep Shopping"})]})})]})]}),Object(r.jsx)(At.a,{item:!0,md:4,xs:12,children:Object(r.jsx)(Tt.a,{elevation:6,children:Object(r.jsxs)(ge.a,{children:[Object(r.jsx)(fe.a,{children:Object(r.jsx)(be.a,{className:o.order_summary,color:"primary",variant:"h4",component:"h3",children:Object(r.jsx)("strong",{children:"ORDER SUMMARY"})})}),Object(r.jsx)(Ka.a,{variant:"inset",component:"br"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Items Price"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",h.itemsPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Delivery Charge"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",h.shippingPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Tax Price"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",h.taxPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Total Price"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",h.totalPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",component:"br"}),h.isPaid?Object(r.jsx)(bt,{children:"Payment Done Successfully"}):Object(r.jsx)(fe.a,{children:Object(r.jsx)(At.a,{item:!0,xs:12,children:"PayPal"===h.paymentMethod?Object(r.jsx)(ir,{orderId:l,API:c}):"Stripe"===h.paymentMethod?Object(r.jsx)(cr,{orderId:l,API:c}):null})})]})})})]})]})};var jr=function(){var e=window.innerWidth<=768,t="https://backend-eshop.herokuapp.com";return Object(r.jsx)(oe.a,{children:Object(r.jsxs)("div",{className:"body",children:[Object(r.jsx)(Ke,{isMobile:e}),Object(r.jsxs)("main",{children:[Object(r.jsx)(le.a,{path:"/search",render:function(a){var n=a.location;return Object(r.jsx)(xt,{location:n,API:t,isMobile:e})}}),Object(r.jsx)(le.a,{path:"/",render:function(a){var n=a.location;return Object(r.jsx)(xt,{location:n,API:t,isMobile:e})},exact:!0}),Object(r.jsxs)("div",{className:e?"mx-3 px-3 py-4":"mx-5 px-4 py-4",children:[Object(r.jsx)(le.a,{path:"/placeorder",render:function(a){var n=a.history;return Object(r.jsx)(ar,{history:n,API:t,isMobile:e})}}),Object(r.jsx)(le.a,{path:"/orders/:id",render:function(a){var n=a.history,c=a.match;return Object(r.jsx)(lr,{match:c,history:n,API:t,isMobile:e})}}),Object(r.jsx)(le.a,{path:"/shipping",component:qa}),Object(r.jsx)(le.a,{path:"/paymentMethod",component:Va}),Object(r.jsx)(le.a,{path:"/login",render:function(e){var a=e.location,n=e.history;return Object(r.jsx)(ua,{location:a,history:n,API:t})}}),Object(r.jsx)(le.a,{path:"/register",render:function(e){var a=e.location,n=e.history;return Object(r.jsx)(ba,{location:a,history:n,API:t})}}),Object(r.jsx)(le.a,{path:"/profile",render:function(e){var a=e.history;return Object(r.jsx)(Ca,{history:a,API:t})}}),Object(r.jsx)(le.a,{path:"/products/:category/:id",render:function(a){var n=a.history,c=a.match;return Object(r.jsx)(It,{history:n,API:t,match:c,isMobile:e})}}),Object(r.jsx)(le.a,{path:"/cart/:category?/:id?",component:function(a){var n=a.history,c=a.match,s=a.location;return Object(r.jsx)(kt,{history:n,match:c,isMobile:e,API:t,location:s})}})]})]}),Object(r.jsx)(tt,{})]})})},dr=function(e){e&&e instanceof Function&&a.e(3).then(a.bind(null,313)).then((function(t){var a=t.getCLS,r=t.getFID,n=t.getFCP,c=t.getLCP,s=t.getTTFB;a(e),r(e),n(e),c(e),s(e)}))};s.a.render(Object(r.jsx)(i.a,{store:ie,children:Object(r.jsx)(jr,{})}),document.getElementById("root")),dr()}},[[208,1,2]]]); -//# sourceMappingURL=main.03fa8896.chunk.js.map \ No newline at end of file +(this.webpackJsonpfrontend=this.webpackJsonpfrontend||[]).push([[0],{117:function(e,t,a){},173:function(e,t,a){},198:function(e,t,a){},199:function(e,t,a){},204:function(e,t,a){},205:function(e,t,a){},207:function(e,t,a){},208:function(e,t,a){"use strict";a.r(t);var r=a(1),n=a(0),c=a(18),s=a.n(c),i=a(8),o=a(60),l=a(128),j=a(129),d="PRODUCT_LIST_REQUEST",u="PRODUCT_LIST_SUCCESS",b="PRODUCT_LIST_FAILED",h="PRODUCT_DETAILS_REQUEST",m="PRODUCT_DETAILS_SUCCESS",p="PRODUCT_DETAILS_FAILED",O="PRODUCT_CREATE_REVIEW_REQUEST",x="PRODUCT_CREATE_REVIEW_SUCCESS",g="PRODUCT_CREATE_REVIEW_FAILED",f="PRODUCT_CREATE_REVIEW_RESET",v=a(64),y=a(15),_="CART_ITEM_ADD",N="CART_ITEM_REMOVE",I="CART_ITEM_RESET",S="CART_SAVE_SHIPPING_ADDRESS",E="CART_SAVE_PAYMENT_METHOD",w="USER_LOGIN_REQUEST",P="USER_LOGIN_SUCCESS",C="USER_LOGIN_FAILED",R="USER_LOGOUT",k="USER_REGISTER_REQUEST",A="USER_REGISTER_SUCCESS",T="USER_REGISTER_FAILED",D="USER_DETAILS_REQUEST",L="USER_DETAILS_SUCCESS",F="USER_DETAILS_FAILED",U="USER_DETAILS_RESET",M="USER_UPDATE_PROFILE_REQUEST",B="USER_UPDATE_PROFILE_SUCCESS",W="USER_UPDATE_PROFILE_FAILED",z="CREATE_ORDER_REQUEST",q="CREATE_ORDER_SUCCESS",Y="CREATE_ORDER_FAILED",G="CREATE_ORDER_RESET",H="ORDER_DETAILS_REQUEST",$="ORDER_DETAILS_SUCCESS",Q="ORDER_DETAILS_FAILED",V="ORDER_DETAILS_RESET",J="ORDER_PAY_REQUEST",K="ORDER_PAY_SUCCESS",X="ORDER_PAY_FAILED",Z="ORDER_PAY_RESET",ee="LIST_MY_ORDER_REQUEST",te="LIST_MY_ORDER_SUCCESS",ae="LIST_MY_ORDER_FAILED",re="LIST_MY_ORDER_RESET",ne=Object(o.combineReducers)({productList:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,products:[],error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case d:return{loading:!0,products:[],error:null};case u:return{loading:!1,products:t.payload,error:null};case b:return{loading:!1,products:[],error:t.payload};default:return e}},productDetails:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,product:{},error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case h:return{loading:!0,product:{},error:null};case m:return{loading:!1,product:t.payload,error:null};case p:return{loading:!1,product:{},error:t.payload};default:return e}},cart:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{cartItems:[],shippingAddress:{},paymentMethod:""},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case _:var a=t.payload,r=e.cartItems.find((function(e){return e.product===a.product}));return r?Object(y.a)(Object(y.a)({},e),{},{cartItems:e.cartItems.map((function(e){return e.product===r.product?a:e}))}):Object(y.a)(Object(y.a)({},e),{},{cartItems:[].concat(Object(v.a)(e.cartItems),[a])});case N:return Object(y.a)(Object(y.a)({},e),{},{cartItems:e.cartItems.filter((function(e){return e.product!==t.payload}))});case S:return Object(y.a)(Object(y.a)({},e),{},{shippingAddress:t.payload});case E:return Object(y.a)(Object(y.a)({},e),{},{paymentMethod:t.payload});case I:return Object(y.a)(Object(y.a)({},e),{},{cartItems:[]});default:return e}},userLogin:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,isAuthenticated:!1,userInfo:null,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case w:return{loading:!0,error:null};case P:return{loading:!1,isAuthenticated:!0,userInfo:t.payload};case C:return{loading:!1,isAuthenticated:!1,error:t.payload};case R:return{isAuthenticated:!1};default:return e}},userRegister:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,isAuthenticated:!1,userInfo:null,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case k:return{loading:!0,error:null};case A:return{loading:!1,isAuthenticated:!0,userInfo:t.payload};case T:return{loading:!1,isAuthenticated:!1,error:t.payload};case R:return{isAuthenticated:!1};default:return e}},userDetails:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,user:null,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case D:return{loading:!0};case L:return{loading:!1,user:t.payload};case F:return{loading:!1,error:t.payload};case U:return{user:null};default:return e}},userUpdateProfile:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,userInfo:null,error:null,success:!1},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case M:return{loading:!0};case B:return{loading:!1,userInfo:t.payload,success:!0};case W:return{loading:!1,error:t.payload};default:return e}},order:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,success:!1,error:null,order:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case z:return{loading:!0};case q:return{loading:!1,order:t.payload,success:!0};case Y:return{loading:!1,error:t.payload};case G:return{};default:return e}},orderDetails:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!0,orders:null,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case H:return Object(y.a)(Object(y.a)({},e),{},{loading:!0});case $:return{loading:!1,orders:t.payload};case Q:return{loading:!1,error:t.payload};case V:return{orders:[]};default:return e}},orderPay:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case J:return{loading:!0};case K:return{loading:!1,success:!0};case X:return{loading:!1,error:t.payload};case Z:return{};default:return e}},myOrders:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,orders:null,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ee:return{loading:!0};case te:return{loading:!1,orders:t.payload};case ae:return{loading:!1,error:t.payload};case re:return{orders:[]};default:return e}},productCreateReview:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case O:return{loading:!0};case x:return{loading:!1,success:!0};case g:return{loading:!1,error:t.payload};case f:return{};default:return e}}}),ce={cart:{cartItems:localStorage.getItem("cartItems")?JSON.parse(localStorage.getItem("cartItems")):[],shippingAddress:localStorage.getItem("shippingAddress")?JSON.parse(localStorage.getItem("shippingAddress")):{}},userLogin:{userInfo:localStorage.getItem("userInfo")?JSON.parse(localStorage.getItem("userInfo")):null}},se=[j.a],ie=Object(o.createStore)(ne,ce,Object(l.composeWithDevTools)(o.applyMiddleware.apply(void 0,se))),oe=(a(117),a(173),a(17)),le=a(21),je=a(12),de=a(262),ue=a(263),be=a(68),he=a(268),me=a(146),pe=a(265),Oe=a(267),xe=a(305),ge=a(266),fe=a(209),ve=a(269),ye=a(270),_e=a(264),Ne=a(134),Ie=a.n(Ne),Se=a(107),Ee=a.n(Se),we=a(109),Pe=a.n(we),Ce=a(110),Re=a.n(Ce),ke=a(108),Ae=a.n(ke),Te=a(135),De=a.n(Te),Le=a(311),Fe=a(133),Ue=a.n(Fe),Me=a(31),Be=a(258),We=a(19),ze=Object(Be.a)((function(e){return{root:{flexGrow:1},appbar:{padding:"0.4rem",background:"linear-gradient(45deg, #0267B5, 30%, #2196f3 90%)"},menu:{},menuButton:Object(Me.a)({marginRight:e.spacing(2)},e.breakpoints.up("md"),{display:"none"}),title:{flexGrow:1},search:Object(Me.a)({position:"relative",borderRadius:e.shape.borderRadius,backgroundColor:Object(We.b)(e.palette.common.white,.15),"&:hover":{backgroundColor:Object(We.b)(e.palette.common.white,.25)},marginLeft:0,width:"80%"},e.breakpoints.up("sm"),{marginLeft:e.spacing(1),width:"auto"}),searchIcon:{padding:e.spacing(0,2),height:"100%",position:"absolute",pointerEvents:"none",display:"flex",alignItems:"center",justifyContent:"center"},inputRoot:{color:"inherit"},inputInput:Object(Me.a)({padding:e.spacing(1,1,1,0),paddingLeft:"calc(1em + ".concat(e.spacing(4),"px)"),transition:e.transitions.create("width"),width:"100%"},e.breakpoints.up("sm"),{width:"12ch","&:focus":{width:"20ch"}}),drawer:{width:240,flexShrink:0},drawerPaper:{width:240},drawerHeader:Object(y.a)(Object(y.a)({display:"flex",alignItems:"center",padding:e.spacing(0,1)},e.mixins.toolbar),{},{justifyContent:"flex-end"}),link_brand:{color:"inherit","&:hover":{textDecoration:"none",color:"inherit"}},link_menu_item:{color:"black",textDecoration:"none","&:hover":{textDecoration:"none"}},link:Object(Me.a)({color:"inherit","&:hover":{textDecoration:"none",color:"inherit"}},e.breakpoints.down("sm"),{display:"none"}),link_drawer:{"&:hover":{textDecoration:"none",color:e.palette.primary},textDecoration:"none"}}}));function qe(e){var t=e.history,a=ze(),c=Object(n.useState)(""),s=Object(je.a)(c,2),i=s[0],o=s[1];Object(n.useEffect)((function(){"/"===window.location.pathname||window.location.pathname.includes("/search")?i.trim()?t.push("/search?name=".concat(i)):t.push("/"):o("")}),[i,t]);return Object(r.jsx)(r.Fragment,{children:Object(r.jsxs)("div",{className:a.search,children:[Object(r.jsx)("div",{className:a.searchIcon,children:Object(r.jsx)(Ue.a,{})}),Object(r.jsx)(Le.a,{value:i,onChange:function(e){o(e.target.value)},placeholder:"Search\u2026",classes:{root:a.inputRoot,input:a.inputInput},inputProps:{"aria-label":"search"}})]})})}var Ye=a(14),Ge=a.n(Ye),He=a(22),$e=a(23),Qe=a.n($e),Ve=function(e){return{type:P,payload:e}},Je=function(e){return{type:B,payload:e}};function Ke(e){var t=e.isMobile,a=ze(),c=Object(n.useState)(null),s=Object(je.a)(c,2),o=s[0],l=s[1],j=Boolean(o),d=Object(n.useState)(!1),u=Object(je.a)(d,2),b=u[0],h=u[1],m=Object(i.b)(),p=Object(i.c)((function(e){return e.userLogin})).userInfo,O=function(){m((function(e){localStorage.removeItem("userInfo"),e({type:R}),e({type:re}),e({type:U})})),l(null)},x=function(){l(null)};return Object(r.jsxs)("header",{className:a.root,children:[Object(r.jsx)(de.a,{position:"sticky",elevation:10,className:a.appbar,children:Object(r.jsxs)(ue.a,{children:[Object(r.jsx)(_e.a,{edge:"start",className:a.menuButton,onClick:function(){return h(!0)},color:"inherit","aria-label":"menu",children:Object(r.jsx)(Ie.a,{})}),Object(r.jsx)(be.a,{variant:"h6",className:a.title,children:Object(r.jsx)(oe.b,{className:a.link_brand,to:"/",children:"eShop"})}),Object(r.jsx)(le.a,{render:function(e){var t=e.history;return Object(r.jsx)(qe,{history:t})}}),"\xa0 \xa0 \xa0 \xa0",Object(r.jsx)(oe.b,{className:a.link,to:p?"/cart":"/login?redirect=cart",children:Object(r.jsxs)(pe.a,{color:"inherit",children:[Object(r.jsx)(Ee.a,{}),"\xa0 Cart"]})}),p?Object(r.jsxs)("div",{children:[Object(r.jsxs)(_e.a,{"aria-label":"account of current user","aria-controls":"menu-appbar","aria-haspopup":"true",onClick:function(e){l(e.currentTarget)},color:"inherit",style:{fontSize:"1.25rem"},children:[Object(r.jsx)(Ae.a,{}),"\xa0",t?null:p.name.split(" ")[0]]}),Object(r.jsxs)(me.a,{id:"menu-appbar",className:a.menu,elevation:4,getContentAnchorEl:null,anchorEl:o,anchorOrigin:{vertical:"bottom",horizontal:"center"},keepMounted:!0,transformOrigin:{vertical:"top",horizontal:"center"},TransitionComponent:Oe.a,open:j,onClose:x,children:[t?Object(r.jsxs)(he.a,{onClick:x,children:[Object(r.jsx)(_e.a,{children:Object(r.jsx)(Ae.a,{})}),Object(r.jsx)(ve.a,{primary:p.name.split(" ")[0]})]}):null,Object(r.jsx)(oe.b,{to:"/profile",className:a.link_menu_item,children:Object(r.jsxs)(he.a,{onClick:x,children:[Object(r.jsx)(ye.a,{children:Object(r.jsx)(De.a,{})}),Object(r.jsx)(ve.a,{primary:"Profile"})]})}),Object(r.jsxs)(he.a,{onClick:O,className:a.link_menu_item,children:[Object(r.jsx)(ye.a,{children:Object(r.jsx)(Pe.a,{})}),Object(r.jsx)(ve.a,{primary:"Logout"})]})]})]}):Object(r.jsx)(oe.b,{className:a.link,to:"/login",children:Object(r.jsxs)(pe.a,{color:"inherit",children:[Object(r.jsx)(Re.a,{}),"\xa0 LOGIN"]})})]})}),Object(r.jsx)(xe.a,{anchor:"bottom",open:b,onClose:function(){return h(!1)},children:Object(r.jsxs)(ge.a,{children:[p?Object(r.jsxs)(fe.a,{button:!0,className:a.link_drawer,onClick:O,children:[Object(r.jsx)(ye.a,{children:Object(r.jsx)(Pe.a,{})}),Object(r.jsx)(ve.a,{primary:"Logout"})]}):Object(r.jsx)(oe.b,{className:a.link_drawer,to:"/login",children:Object(r.jsxs)(fe.a,{button:!0,children:[Object(r.jsx)(ye.a,{children:Object(r.jsx)(Re.a,{})}),Object(r.jsx)(ve.a,{primary:"Login"})]})}),Object(r.jsx)(oe.b,{className:a.link_drawer,to:p?"/cart":"/login?redirect=cart",children:Object(r.jsxs)(fe.a,{button:!0,children:[Object(r.jsx)(ye.a,{children:Object(r.jsx)(Ee.a,{})}),Object(r.jsx)(ve.a,{primary:"Cart"})]})})]})})]})}var Xe=a(271),Ze=a(272),et=a(136),tt=function(){return Object(r.jsx)("footer",{children:Object(r.jsx)(Xe.a,{children:Object(r.jsx)(Ze.a,{children:Object(r.jsx)(et.a,{children:Object(r.jsx)("p",{className:"text-center py-3",style:{opacity:.8},children:"Copyright \xa9 2020 by Shubham Dutta"})})})})})},at=a(303);a(198);function rt(e){var t=e.value,a=e.text,n=e.color;return Object(r.jsx)(r.Fragment,{children:Object(r.jsxs)("div",{className:"rating",children:[Object(r.jsx)("span",{children:Object(r.jsx)("i",{className:t>=1?"fas fa-star":t>=.5?"fas fa-star-half-alt":"far fa-star",style:{color:n}})}),Object(r.jsx)("span",{children:Object(r.jsx)("i",{className:t>=2?"fas fa-star":t>=1.5?"fas fa-star-half-alt":"far fa-star",style:{color:n}})}),Object(r.jsx)("span",{children:Object(r.jsx)("i",{className:t>=3?"fas fa-star":t>=2.5?"fas fa-star-half-alt":"far fa-star",style:{color:n}})}),Object(r.jsx)("span",{children:Object(r.jsx)("i",{className:t>=4?"fas fa-star":t>=3.5?"fas fa-star-half-alt":"far fa-star",style:{color:n}})}),Object(r.jsx)("span",{children:Object(r.jsx)("i",{className:t>=5?"fas fa-star":t>=4.5?"fas fa-star-half-alt":"far fa-star",style:{color:n}})}),Object(r.jsx)("span",{className:"ml-2",children:a})]})})}rt.defaultProps={color:"#FAAE20"};a(199);function nt(e){var t=e.product;e.path;return Object(r.jsx)(r.Fragment,{children:Object(r.jsxs)(at.a,{className:"card my-3 rounded",children:[Object(r.jsx)(oe.b,{to:"products/".concat(t.category,"/").concat(t._id),children:Object(r.jsx)("div",{className:"card_image_div",children:Object(r.jsx)("img",{className:"card_image",src:t.image,alt:t.image})})}),Object(r.jsxs)(at.a.Body,{children:[Object(r.jsx)(oe.b,{to:"products/".concat(t.category,"/").concat(t._id),children:Object(r.jsx)(at.a.Title,{as:"div",style:{fontSize:"16px",textDecoration:"none"},children:Object(r.jsx)("strong",{children:t.name})})}),Object(r.jsx)(at.a.Text,{as:"div",children:Object(r.jsx)("div",{className:"my-3",children:Object(r.jsx)(rt,{value:t.rating,text:"".concat(t.numReviews," rating")})})}),Object(r.jsxs)(at.a.Text,{as:"h3",children:["$",t.price]})]})]})})}var ct=a(67),st=a.n(ct),it=(a(202),a(203),function(){return{type:d}}),ot=function(e){return{type:u,payload:e}},lt=function(e){return{type:b,payload:e}},jt=a(273);function dt(){return Object(r.jsx)(jt.a,{animation:"border",variant:"primary",role:"status",style:{width:"60px",height:"60px",margin:"auto",display:"block"},children:Object(r.jsx)("span",{className:"sr-only",children:"Loading..."})})}var ut=a(302),bt=function(e){var t=e.varient,a=e.children;return Object(r.jsx)(ut.a,{className:"mb-3",severity:t,children:a})},ht=a(299),mt=Object(Be.a)((function(e){return{root:{"& > *":{marginTop:e.spacing(2),width:"70rem",display:"flex",justifyContent:"center"}},mobile:{marginTop:e.spacing(2),width:"100%",display:"flex",justifyContent:"center"}}}));function pt(e){var t=e.totalPage,a=e.setPaginate,n=e.isMobile,c=mt();return Object(r.jsx)("div",{className:n?c.mobile:c.root,children:Object(r.jsx)(ht.a,{className:c.paginate,count:t,onChange:function(e,t){a((function(e){return Object(y.a)(Object(y.a)({},e),{},{currentPage:t})})),n?window.scrollTo(0,2820):window.scrollTo(0,3e3)},shape:"rounded",color:"primary",size:n?"small":"large"})})}var Ot=[{image_desktop:"/assets/images/carousal/Landing_electronics.png",image_mobile:"/assets/images/carousal/Landing_electronics_phone.png",heading:"Electronics Accessories",para:"Lorem Ipsum is simply dummy text of the print and type setting industry.",id:"#electronics"},{image_desktop:"/assets/images/carousal/Landing_home.png",image_mobile:"/assets/images/carousal/Landing_home_phone.png",heading:"Home Appliances",para:"Lorem Ipsum is simply dummy text of the print and type setting industry.",id:"#home_appliances"},{image_desktop:"/assets/images/carousal/Landing_mens.png",image_mobile:"/assets/images/carousal/Landing_mens_phone.png",heading:"Mens Accessories",para:"Lorem Ipsum is simply dummy text of the print and type setting industry.",id:"#mens_accessories"},{image_desktop:"/assets/images/carousal/Landing_womens.png",image_mobile:"/assets/images/carousal/Landing_womens_phone.png",heading:"Womens Accessories",para:"Lorem Ipsum is simply dummy text of the print and type setting industry.",id:"#womens_accessories"}];a(204);function xt(e){var t=e.location,a=e.API,c=e.isMobile,s={loop:!1,dots:!1,margin:10,nav:!0,navText:["",""],responsive:{320:{items:1},768:{items:3},1e3:{items:4}}},o=Object(i.b)(),l=Object(i.c)((function(e){return e.productList})),j=l.loading,d=l.products,u=l.error,b=Object(n.useState)({allProducts:[],currentPage:1,allProductsPerPage:c?1:6}),h=Object(je.a)(b,2),m=h[0],p=h[1];Object(n.useEffect)((function(){p((function(e){return Object(y.a)(Object(y.a)({},e),{},{allProducts:d})})),window.scrollTo(0,0)}),[j,d]);var O=m.allProducts,x=m.currentPage,g=m.allProductsPerPage,f=x*g,v=f-g,_=O.slice(v,f),N=Math.ceil(O.length/g),I=Object(n.useState)(!1),S=Object(je.a)(I,2),E=S[0],w=S[1],P=new URLSearchParams(t.search).get("name")||"";Object(n.useEffect)((function(){w(!!P),o(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return function(){var a=Object(He.a)(Ge.a.mark((function a(r){var n,c;return Ge.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,r(it()),a.next=4,Qe.a.get("".concat(t,"/products?keyword=").concat(e));case 4:n=a.sent,c=n.data,r(ot(c)),console.log(c),a.next=13;break;case 10:a.prev=10,a.t0=a.catch(0),r(lt(a.t0.response&&a.t0.response.data.message?a.t0.response.data.message:a.t0.message));case 13:case"end":return a.stop()}}),a,null,[[0,10]])})));return function(e){return a.apply(this,arguments)}}()}(P,a))}),[o,P,a]);var C=Object(n.useRef)(null),R=Object(n.useRef)(null),k=Object(n.useRef)(null),A=Object(n.useRef)(null);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)(st.a,Object(y.a)(Object(y.a)({className:"owl-carousel owl-theme"},{loop:!0,margin:100,nav:!0,autoplay:!0,autoplayTimeout:4e3,lazyLoad:!0,smartSpeed:1e3,items:1}),{},{children:Ot.map((function(e,t){return Object(r.jsx)(et.a,{children:Object(r.jsxs)("div",{className:c?"carousal_phone":"carousal",style:c?{background:"url(".concat(e.image_mobile,")"),backgroundPosition:"-30px",backgroundSize:"cover",backgroundRepeat:"no-repeat"}:{background:"url(".concat(e.image_desktop,")"),backgroundPosition:"center",backgroundSize:"cover",backgroundRepeat:"no-repeat"},children:[Object(r.jsx)("h1",{className:c?"carousal_heading_phone":"carousal_heading",children:e.heading}),Object(r.jsx)("h2",{className:c?"carousal_para_phone":"carousal_para",children:e.para}),Object(r.jsx)("button",{onClick:function(){var t;"#electronics"===(t=e.id)?C.current.scrollIntoView({behavior:"smooth"}):"#home_appliances"===t?R.current.scrollIntoView({behavior:"smooth"}):"#mens_accessories"===t?k.current.scrollIntoView({behavior:"smooth"}):"#womens_accessories"===t&&A.current.scrollIntoView({behavior:"smooth"})},className:c?"carousal_button_phone":"carousal_button",children:"SHOP NOW"})]})},t)}))}),d.length),Object(r.jsxs)("div",{className:c?"products_section_phone":"products_section",children:[E?null:Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)("h1",{ref:C,className:c?"category_heading_phone pt-5 mt-4":" category_heading pt-5 mt-5",children:"Electronics Accessories"}),Object(r.jsx)(Ze.a,{children:j?Object(r.jsx)(dt,{}):u?Object(r.jsx)(bt,{varient:"#FC308B",children:u}):d&&Object(r.jsx)(st.a,Object(y.a)(Object(y.a)({className:"owl-theme"},s),{},{children:d.filter((function(e){return"electronics"===e.category})).map((function(e,t){return Object(r.jsx)(et.a,{children:Object(r.jsx)(nt,{product:e})},t)}))}),d.length)}),Object(r.jsx)("h1",{ref:R,className:c?"category_heading_phone pt-5 mt-4":"category_heading pt-5 mt-5",children:"Home Appliances"}),Object(r.jsx)(Ze.a,{children:j?Object(r.jsx)(dt,{}):u?Object(r.jsx)(bt,{varient:"#FC308B",children:u}):d&&Object(r.jsx)(st.a,Object(y.a)(Object(y.a)({className:"owl-theme"},s),{},{children:d.filter((function(e){return"home_appliances"===e.category})).map((function(e,t){return Object(r.jsx)(et.a,{children:Object(r.jsx)(nt,{product:e})},t)}))}),d.length)}),Object(r.jsx)("h1",{ref:k,className:c?"category_heading_phone pt-5 mt-4":"category_heading pt-5 mt-5",children:"Men's Accessories"}),Object(r.jsx)(Ze.a,{children:j?Object(r.jsx)(dt,{}):u?Object(r.jsx)(bt,{varient:"#FC308B",children:u}):d&&Object(r.jsx)(st.a,Object(y.a)(Object(y.a)({className:"owl-theme"},s),{},{children:d.filter((function(e){return"mens_accessories"===e.category})).map((function(e,t){return Object(r.jsx)(et.a,{children:Object(r.jsx)(nt,{product:e})},t)}))}),d.length)}),Object(r.jsx)("h1",{ref:A,className:c?"category_heading_phone pt-5 mt-4":"category_heading pt-5 mt-5",children:"Women's Accessories"}),Object(r.jsx)(Ze.a,{children:j?Object(r.jsx)(dt,{}):u?Object(r.jsx)(bt,{varient:"#FC308B",children:u}):d&&Object(r.jsx)(st.a,Object(y.a)(Object(y.a)({className:"owl-theme"},s),{},{children:d.filter((function(e){return"womens_accessories"===e.category})).map((function(e,t){return Object(r.jsx)(et.a,{children:Object(r.jsx)(nt,{product:e})},t)}))}),d.length)})]}),Object(r.jsx)("h1",{className:c?"category_heading_phone pt-5 mt-4":"category_heading pt-5 mt-4",children:"Latest Products"}),Object(r.jsxs)(Ze.a,{children:[j?Object(r.jsx)(dt,{}):u?Object(r.jsx)(bt,{varient:"#FC308B",children:u}):_.map((function(e,t){return Object(r.jsx)(et.a,{md:4,lg:3,children:Object(r.jsx)(nt,{product:e})},t)})),Object(r.jsx)(pt,{totalPage:N,currentPage:x,setPaginate:p,isMobile:c})]})]})]})}var gt=a(306),ft=a(275),vt=a(296),yt=a(297),_t=a(274),Nt=function(){return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{md:6,children:Object(r.jsx)(_t.a,{animation:"wave",variant:"rect",height:440})}),Object(r.jsx)(et.a,{md:3,children:Object(r.jsx)(_t.a,{variant:"rect",height:320})}),Object(r.jsx)(et.a,{md:3,children:Object(r.jsx)(_t.a,{variant:"rect",height:200})})]}),Object(r.jsx)("br",{}),Object(r.jsx)(Ze.a,{children:Object(r.jsxs)(et.a,{md:6,children:[Object(r.jsx)(_t.a,{variant:"text",height:60,width:360}),Object(r.jsx)(_t.a,{variant:"rect",height:16,width:180}),Object(r.jsxs)("div",{className:"mt-4 ml-4 mb-3",children:[Object(r.jsx)(_t.a,{variant:"text",height:30,width:180}),Object(r.jsx)(_t.a,{variant:"text",height:16,width:190}),Object(r.jsx)(_t.a,{variant:"text",height:24,width:300})]}),Object(r.jsx)(_t.a,{variant:"text",height:60,width:360}),Object(r.jsx)(_t.a,{variant:"rect",height:30,width:500})]})})]})};a(205);function It(e){var t=e.history,a=e.match,c=e.API,s=e.isMobile,o=Object(n.useState)(1),l=Object(je.a)(o,2),j=l[0],d=l[1],u=Object(n.useState)(0),b=Object(je.a)(u,2),y=b[0],_=b[1],N=Object(n.useState)(""),I=Object(je.a)(N,2),S=I[0],E=I[1],w=Object(i.b)(),P=Object(i.c)((function(e){return e.productDetails})),C=P.loading,R=P.product,k=P.error,A=Object(i.c)((function(e){return e.productCreateReview})),T=A.success,D=A.error,L=Object(i.c)((function(e){return e.userLogin})).userInfo;Object(n.useEffect)((function(){window.scrollTo(0,0)}),[C]),Object(n.useEffect)((function(){T&&(w({type:f}),alert("Review Submitted Successfully"),_(0),E("")),w(function(e,t,a){return function(){var r=Object(He.a)(Ge.a.mark((function r(n){var c,s;return Ge.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,n({type:h}),r.next=4,Qe.a.get("".concat(e,"/products/").concat(t,"/").concat(a));case 4:c=r.sent,s=c.data,n({type:m,payload:s}),r.next=12;break;case 9:r.prev=9,r.t0=r.catch(0),n((i=r.t0.response&&r.t0.response.data.message?r.t0.response.data.message:r.t0.message,{type:p,payload:i}));case 12:case"end":return r.stop()}var i}),r,null,[[0,9]])})));return function(e){return r.apply(this,arguments)}}()}(c,a.params.category,a.params.id))}),[w,a,T,c]),console.log(R.reviews);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)("nav",{"aria-label":"breadcrumb",children:Object(r.jsxs)("ol",{className:"breadcrumb",children:[Object(r.jsx)("li",{className:"breadcrumb-item",children:Object(r.jsx)(oe.b,{to:"/",children:"Home"})}),Object(r.jsx)("li",{className:"breadcrumb-item active",children:R.category}),s?null:Object(r.jsx)("li",{className:"breadcrumb-item active","aria-current":"page",children:R.name})]})}),Object(r.jsx)(gt.a,{onClick:function(){t.goBack()},className:"btn btn-light my-3",children:"Go Back"}),C?Object(r.jsx)(Nt,{}):k?Object(r.jsx)(bt,{varient:"#FC308B",children:k}):Object(r.jsxs)(r.Fragment,{children:[Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{md:6,children:Object(r.jsx)(ft.a,{className:"shadow",src:R.image,alt:R.name,fluid:!0})}),Object(r.jsx)(et.a,{md:3,children:Object(r.jsxs)(vt.a,{className:"shadow",varient:"flush",children:[Object(r.jsx)(vt.a.Item,{children:Object(r.jsx)("h3",{className:"font-weight-bold text-primary",children:R.name})}),Object(r.jsxs)(vt.a.Item,{children:[Object(r.jsx)("strong",{children:Object(r.jsx)("h5",{className:"font-weight-bold text-secondary",children:"Price:"})}),Object(r.jsx)("span",{children:R.price})]}),Object(r.jsxs)(vt.a.Item,{children:[Object(r.jsx)("strong",{children:Object(r.jsx)("h5",{className:"font-weight-bold text-secondary",children:"Description:"})}),Object(r.jsx)("p",{children:R.description})]}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsx)(rt,{value:R.rating,text:"".concat(R.numReviews," reviews")})})]})}),Object(r.jsx)(et.a,{md:3,children:Object(r.jsx)(at.a,{children:Object(r.jsxs)(vt.a,{varient:"flush",children:[Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:"Price: "}),Object(r.jsx)(et.a,{children:Object(r.jsxs)("strong",{children:["$",R.price]})})]})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:"Status: "}),Object(r.jsx)(et.a,{children:Object(r.jsxs)("strong",{children:["$",R.countInStock?"In Stock":"Out Of Stock"]})})]})}),R.countInStock>0&&Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:"Quantity: "}),Object(r.jsx)(et.a,{children:Object(r.jsx)(yt.a.Control,{as:"select",value:j,onChange:function(e){return d(e.target.value)},children:Object(v.a)(Array(R.countInStock).keys()).map((function(e){return Object(r.jsx)("option",{value:e+1,children:e+1},e+1)}))})})]})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsx)(gt.a,{className:0===R.countInStock?"btn-block p-3 disabled":"btn-block p-3",onClick:function(){t.push("/cart/".concat(a.params.category,"/").concat(a.params.id,"?qty=").concat(j))},type:"button",disabled:0===R.countInStock,children:"ADD TO CART"})})]})})})]}),Object(r.jsx)(Ze.a,{children:Object(r.jsxs)(et.a,{sm:12,md:9,children:[Object(r.jsx)("h2",{className:"mt-5 font-weight-bolder text-primary display-5",style:s?{fontSize:"2rem"}:{fontSize:"3rem"},children:"Product Reviews"}),Object(r.jsx)(rt,{value:R.rating}),R.reviews&&0===R.reviews.length&&Object(r.jsx)(bt,{children:"No Reviews"}),Object(r.jsx)(vt.a,{className:"pt-3",variant:"flush",children:R.reviews&&R.reviews.map((function(e){return Object(r.jsxs)(vt.a.Item,{children:[Object(r.jsxs)("div",{children:[Object(r.jsx)("h4",{children:Object(r.jsx)("strong",{children:e.name})})," ",Object(r.jsx)(rt,{value:e.rating})]}),Object(r.jsxs)("div",{children:[Object(r.jsxs)("strong",{children:[e.createdAt.substring(0,10)," "]}),Object(r.jsxs)("span",{className:"pl-3",children:[" ",e.comment]})]})]},e._id)}))}),Object(r.jsx)(vt.a,{varient:"flush",children:Object(r.jsxs)(vt.a.Item,{className:"pt-2 mt-4",children:[Object(r.jsx)("h2",{className:"font-weight-bold pb-2 text-primary",style:s?{fontSize:"1.5rem"}:{fontSize:"2.3rem"},children:"Write Your Review"}),D&&Object(r.jsx)(bt,{varient:"error",children:D}),L?Object(r.jsxs)(yt.a,{children:[Object(r.jsxs)(yt.a.Group,{controlId:"rating",children:[Object(r.jsx)(yt.a.Label,{style:s?{fontSize:"1.3rem"}:{},className:"review_form_label text-primary",children:"Rating"}),Object(r.jsxs)(yt.a.Control,{as:"select",value:y,onChange:function(e){return _(e.target.value)},children:[Object(r.jsx)("option",{children:"Select Rating..."}),Object(r.jsx)("option",{value:"1",children:"1 - Very Bad"}),Object(r.jsx)("option",{value:"2",children:"2 - Not too Bad"}),Object(r.jsx)("option",{value:"3",children:"3 - Noice"}),Object(r.jsx)("option",{value:"4",children:"4 - Loved it"}),Object(r.jsx)("option",{value:"5",children:"5 - WoW Amazing"})]})]}),Object(r.jsxs)(yt.a.Group,{controlId:"comment",children:[Object(r.jsx)(yt.a.Label,{style:s?{fontSize:"1.3rem"}:{},className:"review_form_label text-primary",children:"Your Comment"}),Object(r.jsx)(yt.a.Control,{as:"textarea",row:"8",value:S,onChange:function(e){return E(e.target.value)}})]}),Object(r.jsx)(gt.a,{className:"review_submit",onClick:function(e){e.preventDefault(),w(function(e,t,a,r){return function(){var n=Object(He.a)(Ge.a.mark((function n(c,s){var i,o,l;return Ge.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,c({type:O}),i=s(),o=i.userLogin.userInfo,l={"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(o.token)}},n.next=6,Qe.a.post("".concat(e,"/products/").concat(t,"/").concat(a,"/reviews"),r,l);case 6:c({type:x}),n.next=12;break;case 9:n.prev=9,n.t0=n.catch(0),c((j=n.t0.response&&n.t0.response.data.message?n.t0.response.data.message:n.t0.message,{type:g,payload:j}));case 12:case"end":return n.stop()}var j}),n,null,[[0,9]])})));return function(e,t){return n.apply(this,arguments)}}()}(c,a.params.category,a.params.id,{rating:y,comment:S}))},type:"submit",variant:"primary",children:"Submit"})]}):Object(r.jsxs)(bt,{children:["Please ",Object(r.jsx)(oe.b,{to:"/login",children:"sign in"})," to write a review"]})]})})]})})]})]})}var St=function(e,t){return{type:_,payload:{product:e._id,name:e.name,image:e.image,price:e.price,category:e.category,countInStock:e.countInStock,qty:t}}},Et=function(e,t,a,r){return function(){var n=Object(He.a)(Ge.a.mark((function n(c,s){var i,o;return Ge.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Qe.a.get("".concat(e,"/products/").concat(a,"/").concat(t));case 2:i=n.sent,o=i.data,c(St(o,r)),localStorage.setItem("cartItems",JSON.stringify(s().cart.cartItems));case 6:case"end":return n.stop()}}),n)})));return function(e,t){return n.apply(this,arguments)}}()},wt=function(e){return function(t,a){t(function(e){return{type:N,payload:e}}(e)),localStorage.setItem("cartItems",JSON.stringify(a().cart.cartItems))}},Pt=function(e){return function(t){t(function(e){return{type:S,payload:e}}(e)),localStorage.setItem("shippingAddress",JSON.stringify(e))}},Ct=function(e){return function(t){t(function(e){return{type:E,payload:e}}(e)),localStorage.setItem("paymentMethod",JSON.stringify(e))}},Rt=function(){return function(e){e({type:I}),localStorage.removeItem("cartItems")}},kt=(a(207),function(e){var t=e.match,a=e.location,c=e.history,s=e.isMobile,o=e.API,l=t.params.id,j=t.params.category,d=a.search?Number(a.search.split("=")[1]):1,u=Object(i.b)(),b=Object(i.c)((function(e){return e.userLogin})).userInfo,h=Object(i.c)((function(e){return e.cart})).cartItems;Object(n.useEffect)((function(){b?l&&u(Et(o,l,j,d)):c.push("/login")}),[u,l,d,j,b,c,o]);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)("nav",{"aria-label":"breadcrumb",children:Object(r.jsxs)("ol",{className:"breadcrumb",children:[Object(r.jsx)("li",{className:"breadcrumb-item",children:Object(r.jsx)(oe.b,{to:"/",children:"Home"})}),Object(r.jsx)("li",{className:"breadcrumb-item active","aria-current":"page",children:"CART"})]})}),Object(r.jsx)(gt.a,{onClick:function(){c.goBack()},className:"btn btn-light mt-2",children:"Go Back"}),Object(r.jsxs)(Ze.a,{className:"mt-4",children:[Object(r.jsxs)(et.a,{md:8,children:[Object(r.jsxs)("h1",{className:"cart__name ",children:["YOUR CART (",h&&h.length,")",Object(r.jsx)("span",{className:"cart__name__span",children:" ITEM"})]}),Object(r.jsx)("br",{}),0===h.length?Object(r.jsxs)(bt,{varient:"info",children:[Object(r.jsx)("span",{className:"cart__empty",children:"Your cart is empty "}),Object(r.jsx)(oe.b,{to:"/",children:"Keep Shopping"})]}):Object(r.jsxs)(vt.a,{varient:"flush",className:"shadow-lg",children:[s?null:Object(r.jsx)(vt.a.Item,{className:"cart__left__heading",children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{sm:3,children:Object(r.jsx)("h3",{children:"Image"})}),Object(r.jsx)(et.a,{sm:3,children:Object(r.jsx)("h3",{children:"Name"})}),Object(r.jsx)(et.a,{sm:2,children:Object(r.jsx)("h3",{children:"Price"})}),Object(r.jsx)(et.a,{sm:2,children:Object(r.jsx)("h3",{children:"Quantity"})})]})}),h.map((function(e){return Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{sm:3,children:Object(r.jsx)(ft.a,{className:"cart__left__item__image",width:s?"360":"200",src:e.image,alt:e.name,fluid:!0,rounded:!0})}),Object(r.jsx)(et.a,{className:"mt-4",sm:3,children:Object(r.jsx)(oe.b,{className:"cart__left__item__name",to:"/products/".concat(e.category,"/").concat(e.product),children:e.name})}),Object(r.jsxs)(et.a,{sm:2,className:"cart__left__item__price",children:["$",e.price]}),Object(r.jsx)(et.a,{className:s?"mt-3":"",sm:2,children:Object(r.jsx)(yt.a.Control,{as:"select",style:{border:"none",outline:"none"},value:e.qty,onChange:function(t){return u(Et(e.product,e.category,Number(t.target.value)))},children:Object(v.a)(Array(e.countInStock).keys()).map((function(e){return Object(r.jsx)("option",{value:e+1,children:e+1},e+1)}))})}),Object(r.jsx)(et.a,{className:s?"mt-3 mb-2":"",sm:2,children:Object(r.jsx)(gt.a,{className:"cart__left__item__remove",type:"button",variant:"light",onClick:function(){return function(e){console.log(e),u(wt(e))}(e.product)},children:Object(r.jsx)("i",{className:"fas fa-trash"})})})]})},e.product)}))]})]}),Object(r.jsx)(et.a,{md:4,children:Object(r.jsx)(at.a,{children:Object(r.jsxs)(vt.a,{children:[Object(r.jsx)(vt.a.Item,{className:s?"pt-4":"pb-4",children:Object(r.jsx)(gt.a,{className:"btn-block p-2 cart__right__checkout",disabled:0===h.length,onClick:function(){c.push("/login?redirect=shipping"),console.log("CHECKOUT")},children:"PROCEED TO PAY"})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsx)("h4",{className:"cart__right__order__heading",children:Object(r.jsx)("strong",{children:"ORDER SUMMARY"})})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:Object(r.jsx)("h4",{className:"cart__right__subtotal",children:"Subtotal:"})}),Object(r.jsx)(et.a,{children:Object(r.jsxs)("h5",{className:"cart__right__subtotal--value",children:["(",h.reduce((function(e,t){return e+t.qty}),0),")"]})})]})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:Object(r.jsx)("h4",{className:"cart__right__price",children:"Price:"})}),Object(r.jsx)(et.a,{children:Object(r.jsxs)("h5",{className:"cart__right__price--value",children:["$",h.reduce((function(e,t){return e+t.qty*t.price}),0).toFixed(2)]})})]})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:Object(r.jsx)("h4",{className:"cart__right__delivery",children:"Delivery:"})}),Object(r.jsx)(et.a,{children:Object(r.jsx)("h5",{className:"cart__right__delivery--value",children:"Free"})})]})}),Object(r.jsx)(vt.a.Item,{children:Object(r.jsxs)(Ze.a,{children:[Object(r.jsx)(et.a,{children:Object(r.jsx)("h4",{className:"cart__right__total__price",children:"Total:"})}),Object(r.jsx)(et.a,{children:Object(r.jsxs)("h5",{className:"cart__right__total__price--value",children:["$",h.reduce((function(e,t){return e+t.qty*t.price}),0).toFixed(2)]})})]})})]})})})]})]})}),At=a(284),Tt=a(149),Dt=a(308),Lt=a(309),Ft=a(282),Ut=a(283),Mt=a(307),Bt=a(90),Wt=a.n(Bt),zt=a(74),qt=a.n(zt),Yt=a(76),Gt=a.n(Yt),Ht=a(77),$t=a.n(Ht),Qt=a(75),Vt=a.n(Qt),Jt=Object(Be.a)((function(e){return{form:{padding:e.spacing(2.6),display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},paper:Object(Me.a)({width:"50%",margin:"auto",marginTop:"0.4rem",paddingTop:e.spacing(2.4)},e.breakpoints.down("sm"),{width:"100%"}),avatar:{width:"3.1rem",height:"3.1rem",marginLeft:"50%",marginBottom:"0.8rem",transform:"translateX(-50%)",backgroundImage:"linear-gradient(45deg, #2196f3, 70%, #045694 90%)"},heading:Object(Me.a)({display:"flex",flexDirection:"row",justifyContent:"center",marginBottom:"0.6rem",marginTop:"0.6rem",color:"#1853F3",fontSize:"1.7rem"},e.breakpoints.down("xs"),{fontSize:"1.4rem"}),input:Object(Me.a)({"& label":{color:e.palette.info.main,fontWeight:"550"},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"#46BFE0"}},paddingBottom:e.spacing(2.8),width:"80%"},e.breakpoints.down("xs"),{width:"100%"}),button:Object(Me.a)({background:"linear-gradient(45deg, #2196F3 30%, #21CBF3 90%)",width:"80%",marginBottom:"0.8rem"},e.breakpoints.down("xs"),{width:"100%"}),icon:{width:"1.2rem"},register:Object(Me.a)({paddingTop:e.spacing(2.8),marginLeft:"6rem"},e.breakpoints.down("xs"),{marginLeft:"auto"}),login:Object(Me.a)({paddingTop:e.spacing(2.8),marginLeft:"6rem"},e.breakpoints.down("xs"),{marginLeft:"auto"}),selectLabel:{fontSize:"1.4rem",textAlign:"center",color:"#1853F3"},back:{marginLeft:"0.6rem",width:"2rem",height:"2rem",marginBottom:"-1rem",backgroundImage:"linear-gradient(45deg, #2196f3, 70%, #045694 90%)",borderRadius:"2rem",padding:"0.3rem 0 0.3rem 0.5rem",color:"white",cursor:"pointer"}}})),Kt=a(280),Xt=a(281),Zt=a(304),ea=a(5),ta=a(210),aa=Object(ea.a)({alternativeLabel:{top:22},active:{"& $line":{backgroundImage:"linear-gradient(45deg, #2196f3, 30%, #045694 90%)"}},completed:{"& $line":{backgroundImage:"linear-gradient(45deg, #045694, 30%, #2196f3 90%)"}},line:{height:3,border:0,backgroundColor:"#eaeaf0",borderRadius:1}})(ta.a),ra=a(4),na=a(276),ca=a(277),sa=a(278),ia=a(279),oa=Object(Be.a)((function(e){return{root:Object(Me.a)({backgroundColor:"#ccc",zIndex:1,color:"#fff",width:"3.2rem",height:"3.2rem",display:"flex",borderRadius:"50%",justifyContent:"center",alignItems:"center"},e.breakpoints.down("xs"),{width:"2.4rem",height:"2.4rem"}),active:{backgroundImage:"linear-gradient(45deg, #045694, 30%, #2196f3 90%)",boxShadow:"0 8px 22px 0 rgba(0,0,0,.25)"},completed:{backgroundImage:"linear-gradient(45deg, #045694, 30%, #2196f3 90%)"}}}));function la(e){var t,a=oa(),n=e.active,c=e.completed,s={1:Object(r.jsx)(na.a,{fontSize:"small"}),2:Object(r.jsx)(ca.a,{fontSize:"small"}),3:Object(r.jsx)(sa.a,{fontSize:"small"}),4:Object(r.jsx)(ia.a,{fontSize:"small"})};return Object(r.jsx)("div",{className:Object(ra.a)(a.root,(t={},Object(Me.a)(t,a.active,n),Object(Me.a)(t,a.completed,c),t)),children:s[String(e.icon)]})}var ja=Object(Be.a)((function(){return{root:{display:"flex",justifyContent:"center"}}}));function da(e){var t=e.step,a=ja(),n=["Sign In","Shipping","Payment","Place Order"];return Object(r.jsx)("div",{children:Object(r.jsx)(Kt.a,{className:a.root,activeStep:t,alternativeLabel:!0,connector:Object(r.jsx)(aa,{}),children:n.map((function(e){return Object(r.jsx)(Xt.a,{children:Object(r.jsx)(Zt.a,{StepIconComponent:la,children:e})},e)}))})})}var ua=function(e){var t=e.history,a=e.location,c=e.API,s=Jt(),o=Object(n.useState)(""),l=Object(je.a)(o,2),j=l[0],d=l[1],u=Object(n.useState)(""),b=Object(je.a)(u,2),h=b[0],m=b[1],p=Object(n.useState)(!1),O=Object(je.a)(p,2),x=O[0],g=O[1],f=Object(i.b)(),v=Object(i.c)((function(e){return e.userLogin})),y=v.loading,_=v.error,N=v.userInfo,I=a.search?a.search.split("=")[1]:"/";Object(n.useEffect)((function(){N&&t.push(I)}),[N,t,I]);return Object(r.jsxs)(r.Fragment,{children:["shipping"===I?Object(r.jsx)(da,{step:0}):null,Object(r.jsxs)(Tt.a,{elevation:14,className:s.paper,children:[Object(r.jsx)(Mt.a,{className:s.avatar,children:Object(r.jsx)(qt.a,{})}),Object(r.jsx)(be.a,{className:s.heading,component:"h1",variant:"h5",children:"Sign in"}),y&&Object(r.jsx)(dt,{}),Object(r.jsxs)("form",{className:s.form,children:[Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-email",children:"Email"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-email",placeholder:"Email Address",required:!0,type:"text",value:j,onChange:function(e){return d(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Wt.a,{className:s.icon})}),labelWidth:70})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-password",children:"Password"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-password",placeholder:"Password",required:!0,type:x?"text":"password",value:h,onChange:function(e){return m(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Vt.a,{className:s.icon})}),endAdornment:Object(r.jsx)(Ut.a,{position:"end",children:Object(r.jsx)(_e.a,{"aria-label":"toggle password visibility",onClick:function(){return g(!x)},onMouseDown:function(e){return e.preventDefault()},edge:"end",children:x?Object(r.jsx)(Gt.a,{}):Object(r.jsx)($t.a,{})})}),labelWidth:70})]}),_&&Object(r.jsx)(bt,{varient:"error",children:_}),Object(r.jsx)(pe.a,{className:s.button,onClick:function(e){e.preventDefault(),f(function(e,t,a){return function(){var r=Object(He.a)(Ge.a.mark((function r(n){var c,s,i;return Ge.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,n({type:w}),c={"Content-Type":"application/json"},r.next=5,Qe.a.post("".concat(e,"/user/login"),{email:t,password:a},c);case 5:s=r.sent,i=s.data,n(Ve(i)),localStorage.setItem("userInfo",JSON.stringify(i)),setTimeout((function(){localStorage.removeItem("userInfo")}),36e5),r.next=15;break;case 12:r.prev=12,r.t0=r.catch(0),n((o=r.t0.response&&r.t0.response.data.message?r.t0.response.data.message:r.t0.message,{type:C,payload:o}));case 15:case"end":return r.stop()}var o}),r,null,[[0,12]])})));return function(e){return r.apply(this,arguments)}}()}(c,j,h))},size:"large",variant:"contained",color:"primary",children:"Sign In"}),Object(r.jsx)(At.a,{container:!0,children:Object(r.jsx)(At.a,{item:!0,children:Object(r.jsxs)(be.a,{component:"h5",className:s.register,children:["Haven't Registered yet? \xa0",Object(r.jsx)(oe.b,{to:I?"/register?redirect=".concat(I):"/register",variant:"body2",children:"Register"})]})})})]})]})]})},ba=function(e){var t=e.history,a=e.location,c=e.API,s=Jt(),o=Object(n.useState)(""),l=Object(je.a)(o,2),j=l[0],d=l[1],u=Object(n.useState)(""),b=Object(je.a)(u,2),h=b[0],m=b[1],p=Object(n.useState)(""),O=Object(je.a)(p,2),x=O[0],g=O[1],f=Object(n.useState)(""),v=Object(je.a)(f,2),y=v[0],_=v[1],N=Object(n.useState)(!1),I=Object(je.a)(N,2),S=I[0],E=I[1],w=Object(n.useState)(!1),P=Object(je.a)(w,2),C=P[0],R=P[1],D=Object(n.useState)(null),L=Object(je.a)(D,2),F=L[0],U=L[1],M=Object(i.b)(),B=Object(i.c)((function(e){return e.userRegister})),W=B.loading,z=B.error,q=B.userInfo,Y=a.search?a.search.split("=")[1]:"/";Object(n.useEffect)((function(){q&&t.push(Y)}),[q,t,Y]);return Object(r.jsxs)(Tt.a,{elevation:14,className:s.paper,children:[Object(r.jsx)(Mt.a,{className:s.avatar,children:Object(r.jsx)(qt.a,{})}),Object(r.jsx)(be.a,{className:s.heading,component:"h1",variant:"h5",children:"Sign Up"}),W&&Object(r.jsx)(dt,{}),Object(r.jsxs)("form",{className:s.form,children:[Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-name",children:"Name"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-name",placeholder:"Your Name",required:!0,type:"text",value:x,onChange:function(e){return g(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(qt.a,{className:s.icon})}),labelWidth:45})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-email",children:"Email"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-email",placeholder:"Email Address",required:!0,type:"text",value:j,onChange:function(e){return d(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Wt.a,{className:s.icon})}),labelWidth:40})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-password",children:"Password"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-password",placeholder:"Password",required:!0,type:S?"text":"password",value:h,onChange:function(e){return m(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Vt.a,{className:s.icon})}),endAdornment:Object(r.jsx)(Ut.a,{position:"end",children:Object(r.jsx)(_e.a,{"aria-label":"toggle password visibility",onClick:function(){return E(!S)},onMouseDown:function(e){return e.preventDefault()},edge:"end",children:S?Object(r.jsx)(Gt.a,{}):Object(r.jsx)($t.a,{})})}),labelWidth:70})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:s.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-confirmPassword",children:"Confirm Password"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-confirmPassword",placeholder:"Confirm Password",required:!0,type:C?"text":"password",value:y,onChange:function(e){return _(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Vt.a,{className:s.icon})}),endAdornment:Object(r.jsx)(Ut.a,{position:"end",children:Object(r.jsx)(_e.a,{"aria-label":"toggle password visibility",onClick:function(){return R(!C)},onMouseDown:function(e){return e.preventDefault()},edge:"end",children:C?Object(r.jsx)(Gt.a,{}):Object(r.jsx)($t.a,{})})}),labelWidth:135})]}),z&&Object(r.jsx)(bt,{varient:"error",children:z}),F&&Object(r.jsx)(bt,{varient:"error",children:F}),Object(r.jsx)(pe.a,{className:s.button,onClick:function(e){e.preventDefault(),h===y?M(function(e,t,a,r){return function(){var n=Object(He.a)(Ge.a.mark((function n(c){var s,i,o;return Ge.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,c({type:k}),s={"Content-Type":"application/json"},n.next=5,Qe.a.post("".concat(e,"/user/register"),{name:t,email:a,password:r},s);case 5:i=n.sent,o=i.data,c({type:A,payload:o}),c(Ve(o)),localStorage.setItem("userInfo",JSON.stringify(o)),setTimeout((function(){localStorage.removeItem("userInfo")}),36e5),n.next=16;break;case 13:n.prev=13,n.t0=n.catch(0),c((l=n.t0.response&&n.t0.response.data.message?n.t0.response.data.message:n.t0.message,{type:T,payload:l}));case 16:case"end":return n.stop()}var l}),n,null,[[0,13]])})));return function(e){return n.apply(this,arguments)}}()}(c,x,j,h)):U("Password does not match")},size:"large",variant:"contained",color:"primary",children:"Register"}),Object(r.jsx)(At.a,{container:!0,children:Object(r.jsx)(At.a,{item:!0,children:Object(r.jsxs)(be.a,{component:"h5",className:s.login,children:["Already Registered? \xa0",Object(r.jsx)(oe.b,{to:Y?"/login?redirect=".concat(Y):"/login",variant:"body2",children:"Login"})]})})})]})]})},ha=a(288),ma=a(290),pa=a(287),Oa=a(289),xa=a(286),ga=a(137),fa=a.n(ga),va=function(e){return{type:q,payload:e}},ya=function(e,t,a){return function(){var r=Object(He.a)(Ge.a.mark((function r(n,c){var s,i,o,l,j;return Ge.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,n({type:J}),s=c(),i=s.userLogin.userInfo,o={"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(i.token)}},r.next=6,Qe.a.put("".concat(e,"/orders/").concat(t,"/payment"),a,o);case 6:l=r.sent,j=l.data,n({type:K,payload:j}),r.next=14;break;case 11:r.prev=11,r.t0=r.catch(0),r.t0.response&&r.t0.response.data.message?r.t0.response.data.message:r.t0.message;case 14:case"end":return r.stop()}}),r,null,[[0,11]])})));return function(e,t){return r.apply(this,arguments)}}()},_a=a(312),Na=a(298),Ia=a(285),Sa=Object(Be.a)((function(e){return{form:{"& .MuiTextField-root":{margin:e.spacing(1.4),width:"76%"},marginTop:"1.4rem"},heading:{color:"#2071E3",fontWeight:"550"},button:{background:"linear-gradient(45deg, #2196F3 30%, #21CBF3 90%)",margin:e.spacing(1.4),width:"76%"},table:{borderRadius:".4rem",marginTop:"1.4rem"},details:{boxShadow:"rgba(0, 0, 0, 0.2) 0px 2px 1px -1px, rgba(0, 0, 0, 0.14) 0px 1px 1px 0px, rgba(0, 0, 0, 0.12) 0px 1px 3px 0px","&:hover":{border:"none",backgroundColor:"#4EABDE",color:e.palette.common.white}}}})),Ea=Object(ea.a)({root:{"& label":{color:"green"},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"green"}}}})(Na.a),wa=Object(ea.a)((function(e){return Object(_a.a)({head:{background:"#2196F3",color:e.palette.common.white},body:{fontSize:14}})}))(Ia.a),Pa=Object(ea.a)((function(e){return Object(_a.a)({root:{"&:nth-of-type(odd)":{backgroundColor:e.palette.action.selected,"&:hover":{backgroundColor:e.palette.action.hover}}}})}))(xa.a),Ca=function(e){var t=e.history,a=e.API,c=Sa(),s=Object(n.useState)(""),o=Object(je.a)(s,2),l=o[0],j=o[1],d=Object(n.useState)(""),u=Object(je.a)(d,2),b=u[0],h=u[1],m=Object(n.useState)(""),p=Object(je.a)(m,2),O=p[0],x=p[1],g=Object(n.useState)(""),f=Object(je.a)(g,2),v=f[0],y=f[1],_=Object(n.useState)(null),N=Object(je.a)(_,2),I=N[0],S=N[1],E=Object(i.b)(),w=Object(i.c)((function(e){return e.userLogin})).userInfo,P=Object(i.c)((function(e){return e.userDetails})),C=P.loading,R=P.user,k=P.error,A=Object(i.c)((function(e){return e.userUpdateProfile})).success,T=Object(i.c)((function(e){return e.myOrders})),U=T.loading,B=T.error,z=T.orders;Object(n.useEffect)((function(){w?R&&(x(R.name),j(R.email)):t.push("/login")}),[w,R,t]),Object(n.useEffect)((function(){E(function(e,t){return function(){var a=Object(He.a)(Ge.a.mark((function a(r,n){var c,s,i,o,l;return Ge.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,r({type:D}),c=n(),s=c.userLogin.userInfo,i={"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(s.token)}},a.next=6,Qe.a.get("".concat(e,"/user/").concat(t),i);case 6:o=a.sent,l=o.data,r({type:L,payload:l}),a.next=14;break;case 11:a.prev=11,a.t0=a.catch(0),r((j=a.t0.response&&a.t0.response.data.message?a.t0.response.data.message:a.t0.message,{type:F,payload:j}));case 14:case"end":return a.stop()}var j}),a,null,[[0,11]])})));return function(e,t){return a.apply(this,arguments)}}()}(a,"profile")),E(function(e){return function(){var t=Object(He.a)(Ge.a.mark((function t(a,r){var n,c,s,i,o;return Ge.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,a({type:ee}),n=r(),c=n.userLogin.userInfo,s={headers:{Authorization:"Bearer ".concat(c.token)}},t.next=6,Qe.a.get("".concat(e,"/orders/myorders"),s);case 6:i=t.sent,o=i.data,a({type:te,payload:o}),t.next=14;break;case 11:t.prev=11,t.t0=t.catch(0),t.t0.response&&t.t0.response.data.message?t.t0.response.data.message:t.t0.message;case 14:case"end":return t.stop()}}),t,null,[[0,11]])})));return function(e,a){return t.apply(this,arguments)}}()}(a))}),[E,a]);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)("nav",{"aria-label":"breadcrumb",children:Object(r.jsxs)("ol",{className:"breadcrumb",children:[Object(r.jsx)("li",{className:"breadcrumb-item",children:Object(r.jsx)(oe.b,{to:"/",children:"Home"})}),Object(r.jsx)("li",{className:"breadcrumb-item active","aria-current":"page",children:"PROFILE"})]})}),Object(r.jsx)(gt.a,{onClick:function(){t.goBack()},className:"btn btn-light mt-2 mb-4",children:"Go Back"}),Object(r.jsxs)(At.a,{container:!0,spacing:2,children:[Object(r.jsxs)(At.a,{item:!0,sm:4,xs:12,children:[Object(r.jsx)("h2",{className:c.heading,children:"PROFILE"}),C&&Object(r.jsx)(dt,{}),Object(r.jsxs)("form",{className:c.form,children:[Object(r.jsx)(Ea,{id:"outlined-name",label:"Name",value:O,multiline:!0,placeholder:"Name",onChange:function(e){return x(e.target.value)},variant:"outlined",InputLabelProps:{shrink:!0}}),Object(r.jsx)(Ea,{id:"outlined-email",label:"Email",value:l,multiline:!0,placeholder:"Email",onChange:function(e){return j(e.target.value)},variant:"outlined",InputLabelProps:{shrink:!0}}),Object(r.jsx)(Ea,{type:"password",autoComplete:"current-password",label:"Password",value:b,onChange:function(e){return h(e.target.value)},placeholder:"Password",variant:"outlined",InputLabelProps:{shrink:!0}}),Object(r.jsx)(Ea,{type:"password",autoComplete:"current-password",id:"outlined-password",required:!0,label:"Confirm Password",value:v,placeholder:"Confirm Password",onChange:function(e){return y(e.target.value)},variant:"outlined",InputLabelProps:{shrink:!0}}),k&&Object(r.jsx)(bt,{varient:"error",children:k}),I&&Object(r.jsx)(bt,{varient:"error",children:I}),A&&Object(r.jsx)(bt,{varient:"success",children:"Profile Updated Successfully"}),Object(r.jsx)(pe.a,{className:c.button,onClick:function(e){e.preventDefault(),b!==v?S("Password does not match"):E(function(e,t){return function(){var a=Object(He.a)(Ge.a.mark((function a(r,n){var c,s,i,o,l;return Ge.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,r({type:M}),c=n(),s=c.userLogin.userInfo,i={"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(s.token)}},a.next=6,Qe.a.put("".concat(e,"/user/profile"),t,i);case 6:o=a.sent,l=o.data,r(Je(l)),a.next=14;break;case 11:a.prev=11,a.t0=a.catch(0),r((j=a.t0.response&&a.t0.response.data.message?a.t0.response.data.message:a.t0.message,{type:W,payload:j}));case 14:case"end":return a.stop()}var j}),a,null,[[0,11]])})));return function(e,t){return a.apply(this,arguments)}}()}(a,{id:R._id,name:O,email:l,password:b}))},size:"large",variant:"contained",color:"primary",children:"Update"})]})]}),Object(r.jsxs)(At.a,{item:!0,sm:8,xs:12,children:[Object(r.jsx)("h2",{className:c.heading,children:"MY ORDERS"}),U?Object(r.jsx)(dt,{}):B?Object(r.jsx)(bt,{varient:"danger",children:B}):Object(r.jsx)(Tt.a,{elevation:8,className:c.table,children:Object(r.jsx)(pa.a,{className:c.table,children:Object(r.jsxs)(ha.a,{"aria-label":"customized table",children:[Object(r.jsx)(Oa.a,{children:Object(r.jsxs)(xa.a,{children:[Object(r.jsx)(wa,{align:"center",children:"ORDER ID"}),Object(r.jsx)(wa,{align:"center",children:"DATE"}),Object(r.jsx)(wa,{align:"center",children:"TOTAL"}),Object(r.jsx)(wa,{align:"center",children:"PAID"}),Object(r.jsx)(wa,{align:"center",children:"DELIVERED"}),Object(r.jsx)(wa,{align:"center"})]})}),Object(r.jsx)(ma.a,{children:z&&z.map((function(e){return Object(r.jsxs)(Pa,{children:[Object(r.jsx)(wa,{component:"th",scope:"row",children:e._id}),Object(r.jsx)(wa,{align:"center",children:e.createdAt.substring(0,10)}),Object(r.jsx)(wa,{align:"center",children:e.totalPrice}),Object(r.jsx)(wa,{align:"center",children:e.isPaid?Object(r.jsxs)("div",{children:[Object(r.jsx)(fa.a,{color:"primary"}),"\xa0 \xa0",Object(r.jsx)("span",{children:e.paidAt.substring(0,10)})]}):Object(r.jsx)("i",{className:"fa fa-times",style:{color:"#f44336"}})}),Object(r.jsx)(wa,{align:"center",children:e.isDelivered?e.deliveredAt.substring(0,10):Object(r.jsx)("i",{className:"fa fa-times",style:{color:"#f44336"}})}),Object(r.jsx)(wa,{align:"center",children:Object(r.jsx)(oe.b,{to:"/orders/".concat(e._id),children:Object(r.jsx)(pe.a,{className:c.details,variant:"outlined",color:"primary",children:"DETAILS"})})})]},e._id)}))})]})})})]})]})]})},Ra=a(138),ka=a.n(Ra),Aa=a(139),Ta=a.n(Aa),Da=a(140),La=a.n(Da),Fa=a(141),Ua=a.n(Fa),Ma=a(142),Ba=a.n(Ma),Wa=a(92),za=a.n(Wa),qa=function(e){var t=e.history,a=Jt(),c=Object(i.c)((function(e){return e.cart})).shippingAddress,s=Object(n.useState)(c.address),o=Object(je.a)(s,2),l=o[0],j=o[1],d=Object(n.useState)(c.city),u=Object(je.a)(d,2),b=u[0],h=u[1],m=Object(n.useState)(c.postalCode),p=Object(je.a)(m,2),O=p[0],x=p[1],g=Object(n.useState)(c.country),f=Object(je.a)(g,2),v=f[0],y=f[1],_=Object(i.b)(),N=Object(i.c)((function(e){return e.userLogin})).userInfo;Object(n.useEffect)((function(){N||t.push("/login")}),[t,N]);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)(da,{step:1}),Object(r.jsxs)(Tt.a,{elevation:14,className:a.paper,children:[Object(r.jsx)("div",{onClick:function(){t.goBack()},children:Object(r.jsx)(za.a,{className:a.back})}),Object(r.jsx)(Mt.a,{className:a.avatar,children:Object(r.jsx)(ka.a,{})}),Object(r.jsx)(be.a,{className:a.heading,component:"h1",variant:"h5",children:"Shipping Address"}),Object(r.jsxs)("form",{className:a.form,children:[Object(r.jsxs)(Ft.a,{variant:"outlined",className:a.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-address",children:"Address"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-address",placeholder:"Your Address",required:!0,type:"text",value:l,onChange:function(e){return j(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Ta.a,{className:a.icon})}),labelWidth:60})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:a.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-city",children:"City"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-city",placeholder:"Your City",required:!0,type:"text",value:b,onChange:function(e){return h(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(La.a,{className:a.icon})}),labelWidth:30})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:a.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-postalCode",children:"Postal Code"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-postalCode",placeholder:"Postal Code",required:!0,type:"text",value:O,onChange:function(e){return x(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Ua.a,{className:a.icon})}),labelWidth:90})]}),Object(r.jsxs)(Ft.a,{variant:"outlined",className:a.input,children:[Object(r.jsx)(Dt.a,{htmlFor:"outlined-adornment-confirmPassword",children:"Country"}),Object(r.jsx)(Lt.a,{id:"outlined-adornment-country",placeholder:"Your Country",required:!0,type:"text",value:v,onChange:function(e){return y(e.target.value)},startAdornment:Object(r.jsx)(Ut.a,{position:"start",children:Object(r.jsx)(Ba.a,{className:a.icon})}),labelWidth:58})]}),Object(r.jsx)(pe.a,{className:a.button,onClick:function(e){e.preventDefault(),_(Pt({address:l,city:b,postalCode:O,country:v})),t.push("/paymentMethod")},size:"large",variant:"contained",color:"primary",children:"CONTINUE"})]})]})]})},Ya=a(300),Ga=a(310),Ha=a(291),$a=a(143),Qa=a.n($a),Va=function(e){var t=e.history,a=Jt();Object(i.c)((function(e){return e.cart})).shippingAddress||t.push("/shipping");var c=Object(n.useState)(""),s=Object(je.a)(c,2),o=s[0],l=s[1],j=Object(i.b)(),d=Object(i.c)((function(e){return e.userLogin})).userInfo;Object(n.useEffect)((function(){d||t.push("/login")}),[t,d]);return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)(da,{step:2}),Object(r.jsxs)(Tt.a,{elevation:14,className:a.paper,children:[Object(r.jsx)("div",{onClick:function(){t.goBack()},children:Object(r.jsx)(za.a,{className:a.back})}),Object(r.jsx)(Mt.a,{className:a.avatar,children:Object(r.jsx)(Qa.a,{})}),Object(r.jsx)(be.a,{className:a.heading,component:"h1",variant:"h5",children:"Payment Method"}),Object(r.jsxs)("form",{className:a.form,children:[Object(r.jsx)(Ft.a,{component:"fieldset",className:a.input,children:Object(r.jsxs)(Ga.a,{"aria-label":"payment method",name:"payment method",value:o,onChange:function(e){return l(e.target.value)},children:[Object(r.jsx)(Ha.a,{value:"PayPal",control:Object(r.jsx)(Ya.a,{required:!0}),label:"PayPal"}),Object(r.jsx)(Ha.a,{value:"Stripe",control:Object(r.jsx)(Ya.a,{required:!0}),label:"Stripe"})]})}),Object(r.jsx)(pe.a,{className:a.button,onClick:function(e){e.preventDefault(),j(Ct(o)),t.push("/placeorder")},size:"large",variant:"contained",color:"primary",children:"CONTINUE"})]})]})]})},Ja=a(295),Ka=a(292),Xa=a(294),Za=a(293),er=window.innerWidth<=768,tr=Object(Be.a)((function(e){return Object(_a.a)({root:{width:"100%",maxWidth:"36ch",backgroundColor:e.palette.background.paper},inline:{display:"inline"},divider:{marginBottom:"0.5rem",marginTop:"0.3rem"},avatar:{width:er?"3.9rem":"6.5rem",height:er?"3.9rem":"6.5rem",marginRight:"1rem"},paper:{marginBottom:"1.8rem",padding:"0.4rem 1rem 1rem 0"},list_item:{paddingLeft:er?"1.2rem":"3.4rem",paddingRight:"1rem",paddingBottom:"1.4rem"},order_summary:{fontSize:"1.6rem",margin:"auto"},order_link:{textDecoration:"none"},message:{paddingLeft:"2rem",marginTop:"0.8rem",width:"100%"},shipping:{marginRight:er?"1.8rem":"2.8rem"},email:{color:"#000"},qty:{fontSize:"1.3rem",fontWeight:"450"}})})),ar=function(e){var t=e.history,a=e.API,c=e.isMobile,s=tr(),o=Object(i.b)(),l=Object(i.c)((function(e){return e.userLogin})).userInfo,j=Object(i.c)((function(e){return e.cart})),d=j.cartItems,u=j.shippingAddress,b=j.paymentMethod;j.itemsPrice=d.reduce((function(e,t){return e+t.qty*t.price}),0).toFixed(2),j.shippingPrice=(j.itemsPrice>150?100:0).toFixed(2),j.taxPrice=(25*j.itemsPrice/100).toFixed(2),j.totalPrice=(Number(j.itemsPrice)+Number(j.shippingPrice)+Number(j.taxPrice)).toFixed(2);var h=Object(i.c)((function(e){return e.order})),m=h.order,p=h.success;return Object(n.useEffect)((function(){l||t.push("/login"),p&&(t.push("/orders/".concat(m._id)),o({type:G}))}),[o,t,m,p,l,a]),Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)(da,{step:3}),Object(r.jsxs)(At.a,{container:!0,spacing:4,children:[Object(r.jsxs)(At.a,{item:!0,md:8,xs:12,children:[Object(r.jsxs)(Tt.a,{className:s.paper,elevation:6,children:[Object(r.jsxs)(ge.a,{className:s.list,children:[Object(r.jsx)(fe.a,{className:s.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:c?"h6":"h5",component:"h3",children:Object(r.jsx)("strong",{children:"SHIPPING DETAILS"})})}),Object(r.jsx)(fe.a,{className:s.list_item,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:[u.address,",",Object(r.jsx)("br",{}),u.city,",",Object(r.jsx)("br",{}),u.country,",",Object(r.jsx)("br",{}),u.postalCode]})})]}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:s.divider}),Object(r.jsxs)(ge.a,{className:s.list,children:[Object(r.jsx)(fe.a,{className:s.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:c?"h6":"h5",component:"h3",children:Object(r.jsx)("strong",{children:"PAYMENT METHOD"})})}),Object(r.jsx)(fe.a,{className:s.list_item,children:Object(r.jsx)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:b})})]})]}),Object(r.jsxs)(Tt.a,{className:s.paper,elevation:6,children:[Object(r.jsx)(ge.a,{className:s.list,children:Object(r.jsx)(fe.a,{className:s.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:"h5",component:"h3",children:Object(r.jsx)("strong",{children:"ORDER DETAILS"})})})}),d.length?Object(r.jsx)(ge.a,{children:d.map((function(e,t){return Object(r.jsxs)("div",{children:[Object(r.jsxs)(fe.a,{className:s.list_item,alignItems:"flex-start",children:[Object(r.jsx)(Xa.a,{children:Object(r.jsx)(Mt.a,{className:s.avatar,alt:e.name,variant:"square",src:e.image})}),Object(r.jsx)(oe.b,{className:s.order_link,to:"/products/".concat(e.category,"/").concat(e.product),children:Object(r.jsx)(ve.a,{primary:e.name,secondary:Object(r.jsxs)(be.a,{color:"primary",variant:c?"span":"body2",component:"span",children:[e.qty," x ",e.price," ="," ",(e.qty*e.price).toFixed(2)]})})}),Object(r.jsx)(Ja.a,{style:c?{marginTop:"2.2rem",marginRight:"-1.8rem"}:{},children:Object(r.jsx)(gt.a,{type:"button",variant:"light",onClick:function(){return t=e.product,void o(wt(t));var t},children:Object(r.jsx)("i",{className:"fas fa-trash"})})})]}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:s.divider,component:"li"})]},t)}))}):Object(r.jsx)(Za.a,{maxWidth:"md",children:Object(r.jsxs)(bt,{varient:"info",children:["Your Cart Is Empty ",Object(r.jsx)(oe.b,{to:"/",children:"Keep Shopping"})]})})]})]}),Object(r.jsx)(At.a,{item:!0,md:4,xs:12,children:Object(r.jsx)(Tt.a,{elevation:6,children:Object(r.jsxs)(ge.a,{children:[Object(r.jsx)(fe.a,{children:Object(r.jsx)(be.a,{className:s.order_summary,color:"primary",variant:"h4",component:"h3",children:Object(r.jsx)("strong",{children:"ORDER SUMMARY"})})}),Object(r.jsx)(Ka.a,{variant:"inset",component:"br"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Items"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",j.itemsPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:s.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Shipping"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",j.shippingPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:s.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Tax"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",j.taxPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:s.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Total"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",j.totalPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",component:"br"}),Object(r.jsx)(fe.a,{children:Object(r.jsx)(gt.a,{className:"btn-block p-2",disabled:0===d.length,onClick:function(){o(function(e,t){return function(){var a=Object(He.a)(Ge.a.mark((function a(r,n){var c,s,i,o,l;return Ge.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,r({type:z}),c=n(),s=c.userLogin.userInfo,i={"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(s.token)}},a.next=6,Qe.a.post("".concat(e,"/orders"),t,i);case 6:o=a.sent,l=o.data,r(va(l)),a.next=14;break;case 11:a.prev=11,a.t0=a.catch(0),a.t0.response&&a.t0.response.data.message?a.t0.response.data.message:a.t0.message;case 14:case"end":return a.stop()}}),a,null,[[0,11]])})));return function(e,t){return a.apply(this,arguments)}}()}(a,{orderItems:d,shippingAddress:u,paymentMethod:b,itemsPrice:j.itemsPrice,shippingPrice:j.shippingPrice,taxPrice:j.taxPrice,totalPrice:j.totalPrice}))},children:"PLACE ORDER"})})]})})})]})]})},rr=a(144),nr=a.n(rr),cr=function(e){var t=e.orderId,a=e.API,c=Object(i.b)(),s=Object(i.c)((function(e){return e.orderDetails})).orders,o=Object(i.c)((function(e){return e.userLogin})).userInfo,l=Object(i.c)((function(e){return e.orderPay})),j=l.loading,d=l.success;Object(n.useEffect)((function(){d&&(c({type:Z}),c(Rt()))}),[c,d]);var u=function(){var e=Object(He.a)(Ge.a.mark((function e(r){var n,i;return Ge.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.log(r),e.prev=1,e.next=4,Qe.a.post("".concat(a,"/payment/stripe"),{token:r,orderId:t},{"Content-Type":"application/json",headers:{Authorization:"Bearer ".concat(o.token)}});case 4:n=e.sent,i=n.data,console.log(i),i&&(c(ya(a,t,i)),alert("Transaction completed by "+s.user.name+" through stripe")),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),console.log(e.t0);case 13:case"end":return e.stop()}}),e,null,[[1,10]])})));return function(t){return e.apply(this,arguments)}}();return Object(r.jsx)(r.Fragment,{children:j?Object(r.jsx)(dt,{}):Object(r.jsx)(nr.a,{stripeKey:"pk_test_51I5RESIXupbB6992cGPzW6YHI1FZhP0WagDyo7sBv3cNCL1i5yVsDDQk8zqnyNiMvE7BBghdnZBA1ejNHfBdwaiS00gHyPOIaK",token:u,amount:100*s.totalPrice,currency:"USD",name:"Pay with Stripe",shippingAddress:!0,billingAddress:!0,children:Object(r.jsx)(pe.a,{style:{width:"100%"},variant:"contained",size:"large",color:"primary",children:"Pay With Stripe"})})})},sr=a(145),ir=function(e){var t=e.orderId,a=e.API,c=Object(i.b)(),s=Object(i.c)((function(e){return e.orderDetails})).orders,o=Object(i.c)((function(e){return e.orderPay})),l=o.loading,j=o.success,d=Object(n.useState)(!1),u=Object(je.a)(d,2),b=u[0],h=u[1],m=function(){var e=Object(He.a)(Ge.a.mark((function e(){var t,r,n;return Ge.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Qe.a.get("".concat(a,"/config/paypal"));case 2:t=e.sent,r=t.data,console.log(r),(n=document.createElement("script")).type="text/javascript",n.src="https://www.paypal.com/sdk/js?client-id=".concat(r),n.async=!0,n.onload=function(){h(!0)},document.body.appendChild(n);case 11:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();Object(n.useEffect)((function(){j?(c({type:Z}),c(Rt())):s&&!s.isPaid&&(window.paypal?h(!0):m())}),[c,s,j]);return Object(r.jsx)(r.Fragment,{children:l?Object(r.jsx)(dt,{}):b?Object(r.jsx)(sr.PayPalButton,{amount:"".concat(s.totalPrice),onSuccess:function(e){console.log(e),c(ya(a,t,e)),alert("Transaction completed by "+s.user.name+" through paypal")},onError:function(e){console.log(e),alert(e)},onCancel:function(e){alert("Order "+e.orderID+" Cancelled")}}):Object(r.jsx)(dt,{})})},or=function(){return Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)(_t.a,{className:"mt-4",width:600,height:60,variant:"text",component:"h2"}),Object(r.jsxs)(At.a,{className:"mt-3",container:!0,spacing:4,children:[Object(r.jsxs)(At.a,{item:!0,md:8,xs:12,children:[Object(r.jsx)(_t.a,{variant:"rect",height:500}),Object(r.jsx)(_t.a,{className:"mt-4",variant:"rect",height:200})]}),Object(r.jsx)(At.a,{item:!0,md:4,xs:12,children:Object(r.jsx)(_t.a,{variant:"rect",height:360})})]})]})},lr=function(e){var t=e.match,a=e.history,c=e.API,s=e.isMobile,o=tr(),l=t.params.id,j=Object(i.b)(),d=Object(i.c)((function(e){return e.userLogin})).userInfo,u=Object(i.c)((function(e){return e.orderDetails})),b=u.loading,h=u.orders,m=u.error,p=Object(i.c)((function(e){return e.orderPay})).success;return Object(n.useEffect)((function(){d?j(function(e,t){return function(){var a=Object(He.a)(Ge.a.mark((function a(r,n){var c,s,i,o,l;return Ge.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,r({type:H}),c=n(),s=c.userLogin.userInfo,i={headers:{Authorization:"Bearer ".concat(s.token)}},a.next=6,Qe.a.get("".concat(e,"/orders/").concat(t),i);case 6:o=a.sent,l=o.data,r({type:$,payload:l}),a.next=14;break;case 11:a.prev=11,a.t0=a.catch(0),a.t0.response&&a.t0.response.data.message?a.t0.response.data.message:a.t0.message;case 14:case"end":return a.stop()}}),a,null,[[0,11]])})));return function(e,t){return a.apply(this,arguments)}}()}(c,l)):a.push("/login")}),[j,l,p,d,a,c]),b?Object(r.jsx)(or,{}):m?Object(r.jsx)(bt,{varient:"danger",children:m}):Object(r.jsxs)(r.Fragment,{children:[Object(r.jsx)("br",{}),Object(r.jsxs)(be.a,{variant:s?"h6":"h4",component:"h4",color:"textSecondary",children:[Object(r.jsx)("span",{style:s?{display:"flex",justifyContent:"center"}:{},children:"ORDER"})," ",h._id]}),Object(r.jsx)("br",{}),Object(r.jsx)("br",{}),Object(r.jsxs)(At.a,{container:!0,spacing:4,children:[Object(r.jsxs)(At.a,{item:!0,md:8,xs:12,children:[Object(r.jsxs)(Tt.a,{className:o.paper,elevation:6,children:[Object(r.jsxs)(ge.a,{className:o.list,children:[Object(r.jsx)(fe.a,{className:o.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:s?"h6":"h4",component:"h3",children:Object(r.jsx)("strong",{children:"SHIPPING DETAILS"})})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider}),Object(r.jsx)(fe.a,{className:o.list_item,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:[Object(r.jsx)("strong",{className:o.shipping,children:"Name: "}),h.user.name,Object(r.jsx)("br",{}),Object(r.jsx)("br",{}),Object(r.jsx)("strong",{className:o.shipping,children:"Email: "}),Object(r.jsx)("a",{rel:"noreferrer",className:o.email,href:h.user.email,target:"_blank",children:h.user.email}),Object(r.jsx)("br",{}),Object(r.jsx)("br",{}),Object(r.jsx)("strong",{children:"Address: "}),Object(r.jsx)("span",{className:"ml-4",children:h.shippingAddress.address}),Object(r.jsx)("br",{}),Object(r.jsx)("span",{className:"ml-5 pl-5",children:h.shippingAddress.city}),Object(r.jsx)("br",{}),Object(r.jsxs)("span",{className:"ml-5 pl-5",children:[h.shippingAddress.country,","]}),Object(r.jsx)("br",{}),Object(r.jsx)("span",{className:"ml-5 pl-5",children:h.shippingAddress.postalCode})]})}),Object(r.jsx)("div",{className:o.message,children:h.isDelivered?Object(r.jsxs)(bt,{varient:"success",children:["Delivered at ",h.deliveredAt]}):Object(r.jsx)(bt,{varient:"error",children:"Not Delivered"})})]}),Object(r.jsxs)(ge.a,{className:o.list,children:[Object(r.jsx)(fe.a,{className:o.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:s?"h6":"h4",component:"h3",children:Object(r.jsx)("strong",{children:"PAYMENT METHOD"})})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider}),Object(r.jsx)(fe.a,{className:o.list_item,children:Object(r.jsx)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:h.paymentMethod})}),Object(r.jsx)("div",{className:o.message,children:h.isPaid?Object(r.jsxs)(bt,{varient:"success",children:["Paid on ",h.paidAt.substring(0,10)]}):Object(r.jsx)(bt,{varient:"error",children:"Not Paid"})})]})]}),Object(r.jsxs)(Tt.a,{className:o.paper,elevation:6,children:[Object(r.jsx)(ge.a,{className:o.list,children:Object(r.jsx)(fe.a,{className:o.list_item,children:Object(r.jsx)(be.a,{color:"primary",variant:s?"h5":"h4",component:"h3",children:Object(r.jsx)("strong",{children:"ORDER DETAILS"})})})}),h.orderItems.length?Object(r.jsx)(ge.a,{children:h.orderItems.map((function(e,t){return Object(r.jsxs)("div",{children:[Object(r.jsxs)(fe.a,{className:o.list_item,alignItems:"flex-start",children:[Object(r.jsx)(Xa.a,{children:Object(r.jsx)(Mt.a,{className:o.avatar,alt:e.name,variant:"square",src:e.image})}),Object(r.jsx)(oe.b,{className:o.order_link,to:"/products/".concat(e.category,"/").concat(e.product),children:Object(r.jsx)(ve.a,{primary:e.name,secondary:Object(r.jsxs)(be.a,{color:"primary",variant:s?"span":"body2",component:"span",children:[e.qty," x ",e.price," ="," ",(e.qty*e.price).toFixed(2)]})})}),s?null:Object(r.jsxs)(Ja.a,{className:o.qty,children:["Qty: ",e.qty]})]}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider,component:"li"})]},t)}))}):Object(r.jsx)(Za.a,{maxWidth:"md",children:Object(r.jsxs)(bt,{varient:"info",children:["No order ",Object(r.jsx)(oe.b,{to:"/",children:" Keep Shopping"})]})})]})]}),Object(r.jsx)(At.a,{item:!0,md:4,xs:12,children:Object(r.jsx)(Tt.a,{elevation:6,children:Object(r.jsxs)(ge.a,{children:[Object(r.jsx)(fe.a,{children:Object(r.jsx)(be.a,{className:o.order_summary,color:"primary",variant:"h4",component:"h3",children:Object(r.jsx)("strong",{children:"ORDER SUMMARY"})})}),Object(r.jsx)(Ka.a,{variant:"inset",component:"br"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Items Price"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",h.itemsPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Delivery Charge"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",h.shippingPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Tax Price"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",h.taxPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",className:o.divider,component:"li"}),Object(r.jsx)(fe.a,{children:Object(r.jsxs)(At.a,{container:!0,children:[Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsx)(be.a,{color:"primary",varient:"h6",component:"h6",children:Object(r.jsx)("strong",{children:"Total Price"})})}),Object(r.jsx)(At.a,{item:!0,lg:6,xs:6,children:Object(r.jsxs)(be.a,{color:"textPrimary",varient:"p",component:"h6",children:["$",h.totalPrice]})})]})}),Object(r.jsx)(Ka.a,{variant:"fullWidth",component:"br"}),h.isPaid?Object(r.jsx)(bt,{children:"Payment Done Successfully"}):Object(r.jsx)(fe.a,{children:Object(r.jsx)(At.a,{item:!0,xs:12,children:"PayPal"===h.paymentMethod?Object(r.jsx)(ir,{orderId:l,API:c}):"Stripe"===h.paymentMethod?Object(r.jsx)(cr,{orderId:l,API:c}):null})})]})})})]})]})};var jr=function(){var e=window.innerWidth<=768,t="https://backend-eshop.herokuapp.com";return Object(r.jsx)(oe.a,{children:Object(r.jsxs)("div",{className:"body",children:[Object(r.jsx)(Ke,{isMobile:e}),Object(r.jsxs)("main",{children:[Object(r.jsx)(le.a,{path:"/search",render:function(a){var n=a.location;return Object(r.jsx)(xt,{location:n,API:t,isMobile:e})}}),Object(r.jsx)(le.a,{path:"/",render:function(a){var n=a.location;return Object(r.jsx)(xt,{location:n,API:t,isMobile:e})},exact:!0}),Object(r.jsxs)("div",{className:e?"mx-3 px-3 py-4":"mx-5 px-4 py-4",children:[Object(r.jsx)(le.a,{path:"/placeorder",render:function(a){var n=a.history;return Object(r.jsx)(ar,{history:n,API:t,isMobile:e})}}),Object(r.jsx)(le.a,{path:"/orders/:id",render:function(a){var n=a.history,c=a.match;return Object(r.jsx)(lr,{match:c,history:n,API:t,isMobile:e})}}),Object(r.jsx)(le.a,{path:"/shipping",component:qa}),Object(r.jsx)(le.a,{path:"/paymentMethod",component:Va}),Object(r.jsx)(le.a,{path:"/login",render:function(e){var a=e.location,n=e.history;return Object(r.jsx)(ua,{location:a,history:n,API:t})}}),Object(r.jsx)(le.a,{path:"/register",render:function(e){var a=e.location,n=e.history;return Object(r.jsx)(ba,{location:a,history:n,API:t})}}),Object(r.jsx)(le.a,{path:"/profile",render:function(e){var a=e.history;return Object(r.jsx)(Ca,{history:a,API:t})}}),Object(r.jsx)(le.a,{path:"/products/:category/:id",render:function(a){var n=a.history,c=a.match;return Object(r.jsx)(It,{history:n,API:t,match:c,isMobile:e})}}),Object(r.jsx)(le.a,{path:"/cart/:category?/:id?",component:function(a){var n=a.history,c=a.match,s=a.location;return Object(r.jsx)(kt,{history:n,match:c,isMobile:e,API:t,location:s})}})]})]}),Object(r.jsx)(tt,{})]})})},dr=function(e){e&&e instanceof Function&&a.e(3).then(a.bind(null,313)).then((function(t){var a=t.getCLS,r=t.getFID,n=t.getFCP,c=t.getLCP,s=t.getTTFB;a(e),r(e),n(e),c(e),s(e)}))};s.a.render(Object(r.jsx)(i.a,{store:ie,children:Object(r.jsx)(jr,{})}),document.getElementById("root")),dr()}},[[208,1,2]]]); +//# sourceMappingURL=main.1c948026.chunk.js.map \ No newline at end of file diff --git a/frontend/build/static/js/main.1c948026.chunk.js.map b/frontend/build/static/js/main.1c948026.chunk.js.map new file mode 100644 index 0000000..1105c95 --- /dev/null +++ b/frontend/build/static/js/main.1c948026.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["redux/actionTypes/productListConstants.js","redux/actionTypes/productDetailsConstants.js","redux/actionTypes/cartConstants.js","redux/actionTypes/userConstants.js","redux/actionTypes/orderConstants.js","redux/store.js","redux/reducers/productLists.js","redux/reducers/productDetails.js","redux/reducers/cart.js","redux/reducers/user.js","redux/reducers/order.js","components/CustomStyles/header.js","components/SearchProductBox.js","redux/actions/userAction.js","components/Header.js","components/Footer.js","components/Rating.js","components/Products.js","redux/actions/productListAction.js","components/Loader.js","components/Message.js","components/Paginate.js","utils/carousalData.js","screen/HomeScreen.js","screen/skeletons/ProductScreenSkeleton.js","screen/ProductScreen.js","redux/actions/productDetailsAction.js","redux/actions/cartAction.js","screen/CartScreen.js","screen/customStyle/allFormsScreen.js","components/CustomStyles/CheckoutStepper/StepConnector.js","components/CustomStyles/CheckoutStepper/StepIcon.js","components/CheckoutStepper.js","screen/LoginScreen.js","screen/RegisterScreen.js","redux/actions/orderAction.js","screen/customStyle/ProfileScreen.js","screen/ProfileScreen.js","screen/ShippingScreen.js","screen/PaymentMethod.js","screen/customStyle/PlaceOrderScreen.js","screen/PlaceOrderScreen.js","components/StripeCheckout.js","components/PayPalCheckout.js","screen/skeletons/OrderScreenSkeleton.js","screen/OrderScreen.js","App.js","reportWebVitals.js","index.js"],"names":["PRODUCT_LIST_REQUEST","PRODUCT_LIST_SUCCESS","PRODUCT_LIST_FAILED","PRODUCT_DETAILS_REQUEST","PRODUCT_DETAILS_SUCCESS","PRODUCT_DETAILS_FAILED","PRODUCT_CREATE_REVIEW_REQUEST","PRODUCT_CREATE_REVIEW_SUCCESS","PRODUCT_CREATE_REVIEW_FAILED","PRODUCT_CREATE_REVIEW_RESET","CART_ITEM_ADD","CART_ITEM_REMOVE","CART_ITEM_RESET","CART_SAVE_SHIPPING_ADDRESS","CART_SAVE_PAYMENT_METHOD","USER_LOGIN_REQUEST","USER_LOGIN_SUCCESS","USER_LOGIN_FAILED","USER_LOGOUT","USER_REGISTER_REQUEST","USER_REGISTER_SUCCESS","USER_REGISTER_FAILED","USER_DETAILS_REQUEST","USER_DETAILS_SUCCESS","USER_DETAILS_FAILED","USER_DETAILS_RESET","USER_UPDATE_PROFILE_REQUEST","USER_UPDATE_PROFILE_SUCCESS","USER_UPDATE_PROFILE_FAILED","CREATE_ORDER_REQUEST","CREATE_ORDER_SUCCESS","CREATE_ORDER_FAILED","CREATE_ORDER_RESET","ORDER_DETAILS_REQUEST","ORDER_DETAILS_SUCCESS","ORDER_DETAILS_FAILED","ORDER_DETAILS_RESET","ORDER_PAY_REQUEST","ORDER_PAY_SUCCESS","ORDER_PAY_FAILED","ORDER_PAY_RESET","LIST_MY_ORDER_REQUEST","LIST_MY_ORDER_SUCCESS","LIST_MY_ORDER_FAILED","LIST_MY_ORDER_RESET","reducer","combineReducers","productList","state","loading","products","error","action","type","payload","productDetails","product","cart","cartItems","shippingAddress","paymentMethod","existItem","find","p","map","filter","userLogin","isAuthenticated","userInfo","userRegister","userDetails","user","userUpdateProfile","success","order","orderDetails","orders","orderPay","myOrders","productCreateReview","initialState","localStorage","getItem","JSON","parse","middleware","thunk","store","createStore","composeWithDevTools","applyMiddleware","useStyles","makeStyles","theme","root","flexGrow","appbar","padding","background","menu","menuButton","marginRight","spacing","breakpoints","up","display","title","search","position","borderRadius","shape","backgroundColor","fade","palette","common","white","marginLeft","width","searchIcon","height","pointerEvents","alignItems","justifyContent","inputRoot","color","inputInput","paddingLeft","transition","transitions","create","drawer","flexShrink","drawerPaper","drawerHeader","mixins","toolbar","link_brand","textDecoration","link_menu_item","link","down","link_drawer","primary","SearchBox","history","classes","useState","keyword","setKeyword","useEffect","window","location","pathname","includes","trim","push","className","InputBase","value","onChange","e","target","placeholder","input","inputProps","addUser","updateProfile","Header","isMobile","anchorEl","setAnchorEl","openEl","Boolean","toggle","setToggle","dispatch","useDispatch","useSelector","logoutHandler","removeItem","handleClose","AppBar","elevation","Toolbar","IconButton","edge","onClick","aria-label","Typography","variant","to","render","Button","aria-controls","aria-haspopup","event","currentTarget","style","fontSize","name","split","Menu","id","getContentAnchorEl","anchorOrigin","vertical","horizontal","keepMounted","transformOrigin","TransitionComponent","Fade","open","onClose","MenuItem","ListItemText","ListItemIcon","Drawer","anchor","List","ListItem","button","Footer","Container","Row","Col","opacity","Rating","text","defaultProps","Products","path","Card","category","_id","src","image","alt","Body","Title","as","Text","rating","numReviews","price","reqProducts","addProducts","productsFailed","errMess","Loader","Spinner","animation","role","margin","Message","varient","children","Alert","severity","marginTop","mobile","BasicPagination","totalPage","setPaginate","Pagination","paginate","count","page","prev","currentPage","scrollTo","size","carousalData","image_desktop","image_mobile","heading","para","Home","API","options","loop","dots","nav","navText","responsive","320","items","768","1000","allProducts","allProductsPerPage","indexOfLastProduct","indexOfFirstProduct","currentProducts","slice","Math","ceil","length","isQuerying","setIsQuerying","URLSearchParams","get","a","axios","data","console","log","response","message","listProducts","electronicsRef","useRef","homeRef","mensRef","womensRef","autoplay","autoplayTimeout","lazyLoad","smartSpeed","index","backgroundPosition","backgroundSize","backgroundRepeat","current","scrollIntoView","behavior","ref","electronic","home_appliance","mens_accessory","womens_accessory","md","lg","ProductScreenSkeleton","Skeleton","ProductScreen","match","qty","setQty","setRating","comment","setComment","successProductReview","errorProductReview","alert","listProductDetails","params","reviews","aria-current","goBack","Image","fluid","ListGroup","Item","description","countInStock","Form","Control","Array","keys","q","disabled","sm","review","createdAt","substring","Group","controlId","Label","row","preventDefault","getState","config","headers","Authorization","token","post","createProductReview","addCart","addToCart","setItem","stringify","removeFromCart","removeCart","addShippingAddress","addPaymentMethod","emptyCart","CartScreen","productId","Number","item","rounded","border","outline","removecartHandler","reduce","acc","toFixed","useStyle","form","flexDirection","paper","paddingTop","avatar","marginBottom","transform","backgroundImage","info","main","fontWeight","borderColor","paddingBottom","icon","register","login","selectLabel","textAlign","back","cursor","CheckoutStepConnector","withStyles","alternativeLabel","top","active","completed","line","StepConnector","useStepIconStyles","zIndex","boxShadow","StepIcon","props","icons","1","PeopleAlt","2","LocalShipping","3","AccountBalance","4","ShoppingBasket","clsx","String","CheckoutStepper","step","steps","Stepper","activeStep","connector","label","Step","StepLabel","StepIconComponent","LoginScreen","email","setEmail","password","setPassword","passwordVisibility","setPasswordVisibility","redirect","Paper","Avatar","component","FormControl","InputLabel","htmlFor","OutlinedInput","required","startAdornment","InputAdornment","labelWidth","endAdornment","onMouseDown","setTimeout","err","loginUser","Grid","container","RegisterScreen","setName","confirmPassword","setConfirmPassword","confirmPasswordVisibility","setConfirmPasswordVisibility","setMessage","registerUser","addOrder","payOrder","orderId","paymentResult","put","table","details","CssTextField","TextField","StyledTableCell","createStyles","head","body","TableCell","StyledTableRow","selected","hover","TableRow","ProfileScreen","myOrdersList","loadingOrders","errorOrders","getUserDetails","listMyOrders","xs","multiline","InputLabelProps","shrink","autoComplete","updateUserProfile","TableContainer","Table","TableHead","align","TableBody","scope","totalPrice","isPaid","paidAt","isDelivered","deliveredAt","ShippingScreen","address","setAddress","city","setCity","postalCode","setPostalCode","country","setCountry","PaymentMethodScreen","setPaymentMethod","RadioGroup","FormControlLabel","control","Radio","innerWidth","maxWidth","inline","divider","list_item","paddingRight","order_summary","order_link","shipping","PlaceOrderScreen","itemsPrice","shippingPrice","taxPrice","placeOrder","list","Divider","ListItemAvatar","secondary","ListItemSecondaryAction","createOrder","orderItems","StripeCheckout","loadingPay","successPay","makePayment","stripeKey","process","amount","currency","billingAddress","PayPalCheckout","sdkReady","setSdkReady","addPayPalScript","clientId","script","document","createElement","async","onload","appendChild","paypal","onSuccess","onError","onCancel","msg","orderID","OrderScreenSkeleton","OrderScreen","getOrderDetails","rel","href","App","exact","PaymentMethod","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.1c948026.chunk.js","sourcesContent":["export const PRODUCT_LIST_REQUEST = \"PRODUCT_LIST_REQUEST\";\r\nexport const PRODUCT_LIST_SUCCESS = \"PRODUCT_LIST_SUCCESS\";\r\nexport const PRODUCT_LIST_FAILED = \"PRODUCT_LIST_FAILED\";\r\n","export const PRODUCT_DETAILS_REQUEST = \"PRODUCT_DETAILS_REQUEST\";\r\nexport const PRODUCT_DETAILS_SUCCESS = \"PRODUCT_DETAILS_SUCCESS\";\r\nexport const PRODUCT_DETAILS_FAILED = \"PRODUCT_DETAILS_FAILED\";\r\n\r\nexport const PRODUCT_CREATE_REVIEW_REQUEST = \"PRODUCT_CREATE_REVIEW_REQUEST\";\r\nexport const PRODUCT_CREATE_REVIEW_SUCCESS = \"PRODUCT_CREATE_REVIEW_SUCCESS\";\r\nexport const PRODUCT_CREATE_REVIEW_FAILED = \"PRODUCT_CREATE_REVIEW_FAILED\";\r\nexport const PRODUCT_CREATE_REVIEW_RESET = \"PRODUCT_CREATE_REVIEW_RESET\";\r\n","export const CART_ITEM_ADD = \"CART_ITEM_ADD\";\r\nexport const CART_ITEM_REMOVE = \"CART_ITEM_REMOVE\";\r\nexport const CART_ITEM_RESET = \"CART_ITEM_RESET\";\r\n\r\nexport const CART_SAVE_SHIPPING_ADDRESS = \"CART_SAVE_SHIPPING_ADDRESS\";\r\nexport const CART_SAVE_PAYMENT_METHOD = \"CART_SAVE_PAYMENT_METHOD\";\r\n","export const USER_LOGIN_REQUEST = \"USER_LOGIN_REQUEST\";\r\nexport const USER_LOGIN_SUCCESS = \"USER_LOGIN_SUCCESS\";\r\nexport const USER_LOGIN_FAILED = \"USER_LOGIN_FAILED\";\r\n\r\nexport const USER_LOGOUT = \"USER_LOGOUT\";\r\n\r\nexport const USER_REGISTER_REQUEST = \"USER_REGISTER_REQUEST\";\r\nexport const USER_REGISTER_SUCCESS = \"USER_REGISTER_SUCCESS\";\r\nexport const USER_REGISTER_FAILED = \"USER_REGISTER_FAILED\";\r\n\r\nexport const USER_DETAILS_REQUEST = \"USER_DETAILS_REQUEST\";\r\nexport const USER_DETAILS_SUCCESS = \"USER_DETAILS_SUCCESS\";\r\nexport const USER_DETAILS_FAILED = \"USER_DETAILS_FAILED\";\r\nexport const USER_DETAILS_RESET = \"USER_DETAILS_RESET\";\r\n\r\nexport const USER_UPDATE_PROFILE_REQUEST = \"USER_UPDATE_PROFILE_REQUEST\";\r\nexport const USER_UPDATE_PROFILE_SUCCESS = \"USER_UPDATE_PROFILE_SUCCESS\";\r\nexport const USER_UPDATE_PROFILE_FAILED = \"USER_UPDATE_PROFILE_FAILED\";\r\nexport const USER_UPDATE_PROFILE_RESET = \"USER_UPDATE_PROFILE_RESET \";\r\n","export const CREATE_ORDER_REQUEST = \"CREATE_ORDER_REQUEST\";\r\nexport const CREATE_ORDER_SUCCESS = \"CREATE_ORDER_SUCCESS\";\r\nexport const CREATE_ORDER_FAILED = \"CREATE_ORDER_FAILED\";\r\nexport const CREATE_ORDER_RESET = \"CREATE_ORDER_RESET\";\r\n\r\nexport const ORDER_DETAILS_REQUEST = \"ORDER_DETAILS_REQUEST\";\r\nexport const ORDER_DETAILS_SUCCESS = \"ORDER_DETAILS_SUCCESS\";\r\nexport const ORDER_DETAILS_FAILED = \"ORDER_DETAILS_FAILED\";\r\nexport const ORDER_DETAILS_RESET = \"ORDER_DETAILS_RESET\";\r\n\r\nexport const ORDER_PAY_REQUEST = \"ORDER_PAY_REQUEST\";\r\nexport const ORDER_PAY_SUCCESS = \"ORDER_PAY_SUCCESS\";\r\nexport const ORDER_PAY_FAILED = \"ORDER_PAY_FAILED\";\r\nexport const ORDER_PAY_RESET = \"ORDER_PAY_RESET\";\r\n\r\nexport const LIST_MY_ORDER_REQUEST = \"LIST_MY_ORDER_REQUEST\";\r\nexport const LIST_MY_ORDER_SUCCESS = \"LIST_MY_ORDER_SUCCESS\";\r\nexport const LIST_MY_ORDER_FAILED = \"LIST_MY_ORDER_FAILED\";\r\nexport const LIST_MY_ORDER_RESET = \"LIST_MY_ORDER_RESET\";\r\n","import { combineReducers, applyMiddleware, createStore } from \"redux\";\r\nimport { composeWithDevTools } from \"redux-devtools-extension\";\r\nimport thunk from \"redux-thunk\";\r\n\r\n//// Reducers\r\nimport { productListsReducer } from \"./reducers/productLists\";\r\nimport {\r\n productDetailsReducer,\r\n productCreateReviewReducer,\r\n} from \"./reducers/productDetails\";\r\nimport { cartReducer } from \"./reducers/cart\";\r\n\r\nimport {\r\n userDetailsReducer,\r\n userLoginReducer,\r\n userRegisterReducer,\r\n userUpdateProfileReducer,\r\n} from \"./reducers/user\";\r\n\r\nimport {\r\n createOrderReducer,\r\n orderDetailsReducer,\r\n orderPayReducer,\r\n myOrdersReducer,\r\n} from \"./reducers/order\";\r\n\r\nconst reducer = combineReducers({\r\n productList: productListsReducer,\r\n productDetails: productDetailsReducer,\r\n cart: cartReducer,\r\n userLogin: userLoginReducer,\r\n userRegister: userRegisterReducer,\r\n userDetails: userDetailsReducer,\r\n userUpdateProfile: userUpdateProfileReducer,\r\n order: createOrderReducer,\r\n orderDetails: orderDetailsReducer,\r\n orderPay: orderPayReducer,\r\n myOrders: myOrdersReducer,\r\n productCreateReview: productCreateReviewReducer,\r\n});\r\n\r\n// GET all cart Items from local Storage\r\nconst cartsFromLocalStorage = localStorage.getItem(\"cartItems\")\r\n ? JSON.parse(localStorage.getItem(\"cartItems\"))\r\n : [];\r\n\r\n// GET shippingAddress from local Storage\r\nconst shippingAddressFromLocalStorage = localStorage.getItem(\"shippingAddress\")\r\n ? JSON.parse(localStorage.getItem(\"shippingAddress\"))\r\n : {};\r\n\r\n// GET user info from local Storage\r\nconst userInfoFromLocalStorage = localStorage.getItem(\"userInfo\")\r\n ? JSON.parse(localStorage.getItem(\"userInfo\"))\r\n : null;\r\n\r\nconst initialState = {\r\n cart: {\r\n cartItems: cartsFromLocalStorage,\r\n shippingAddress: shippingAddressFromLocalStorage,\r\n },\r\n userLogin: { userInfo: userInfoFromLocalStorage },\r\n};\r\n\r\nconst middleware = [thunk];\r\n\r\nconst store = createStore(\r\n reducer,\r\n initialState,\r\n composeWithDevTools(applyMiddleware(...middleware))\r\n);\r\n\r\nexport default store;\r\n","import {\r\n PRODUCT_LIST_REQUEST,\r\n PRODUCT_LIST_SUCCESS,\r\n PRODUCT_LIST_FAILED,\r\n} from \"../actionTypes/productListConstants\";\r\n\r\nexport const productListsReducer = (\r\n state = { loading: false, products: [], error: null },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case PRODUCT_LIST_REQUEST:\r\n return { loading: true, products: [], error: null };\r\n\r\n case PRODUCT_LIST_SUCCESS:\r\n return {\r\n loading: false,\r\n products: action.payload,\r\n error: null,\r\n };\r\n\r\n case PRODUCT_LIST_FAILED:\r\n return { loading: false, products: [], error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n PRODUCT_DETAILS_REQUEST,\r\n PRODUCT_DETAILS_SUCCESS,\r\n PRODUCT_DETAILS_FAILED,\r\n PRODUCT_CREATE_REVIEW_REQUEST,\r\n PRODUCT_CREATE_REVIEW_FAILED,\r\n PRODUCT_CREATE_REVIEW_SUCCESS,\r\n PRODUCT_CREATE_REVIEW_RESET,\r\n} from \"../actionTypes/productDetailsConstants\";\r\n\r\nexport const productDetailsReducer = (\r\n state = { loading: false, product: {}, error: null },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case PRODUCT_DETAILS_REQUEST:\r\n return { loading: true, product: {}, error: null };\r\n case PRODUCT_DETAILS_SUCCESS:\r\n return { loading: false, product: action.payload, error: null };\r\n\r\n case PRODUCT_DETAILS_FAILED:\r\n return { loading: false, product: {}, error: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const productCreateReviewReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case PRODUCT_CREATE_REVIEW_REQUEST:\r\n return { loading: true };\r\n case PRODUCT_CREATE_REVIEW_SUCCESS:\r\n return { loading: false, success: true };\r\n case PRODUCT_CREATE_REVIEW_FAILED:\r\n return { loading: false, error: action.payload };\r\n case PRODUCT_CREATE_REVIEW_RESET:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n CART_ITEM_ADD,\r\n CART_ITEM_REMOVE,\r\n CART_SAVE_SHIPPING_ADDRESS,\r\n CART_SAVE_PAYMENT_METHOD,\r\n CART_ITEM_RESET,\r\n} from \"../actionTypes/cartConstants\";\r\n\r\n/////////////////////// CART ADD & REMOVE TO/FROM CART ///////////////////\r\nexport const cartReducer = (\r\n state = { cartItems: [], shippingAddress: {}, paymentMethod: \"\" },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case CART_ITEM_ADD:\r\n const { payload } = action;\r\n // check if cartItems exist or not\r\n const existItem = state.cartItems.find(\r\n (p) => p.product === payload.product\r\n );\r\n if (existItem) {\r\n return {\r\n ...state,\r\n cartItems: state.cartItems.map((p) =>\r\n p.product === existItem.product ? payload : p\r\n ),\r\n };\r\n } else {\r\n return { ...state, cartItems: [...state.cartItems, payload] };\r\n }\r\n\r\n case CART_ITEM_REMOVE:\r\n return {\r\n ...state,\r\n cartItems: state.cartItems.filter((p) => p.product !== action.payload),\r\n };\r\n\r\n case CART_SAVE_SHIPPING_ADDRESS:\r\n return {\r\n ...state,\r\n shippingAddress: action.payload,\r\n };\r\n\r\n case CART_SAVE_PAYMENT_METHOD:\r\n return {\r\n ...state,\r\n paymentMethod: action.payload,\r\n };\r\n\r\n case CART_ITEM_RESET:\r\n return { ...state, cartItems: [] };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n USER_LOGIN_FAILED,\r\n USER_LOGIN_REQUEST,\r\n USER_LOGIN_SUCCESS,\r\n USER_LOGOUT,\r\n USER_REGISTER_FAILED,\r\n USER_REGISTER_REQUEST,\r\n USER_REGISTER_SUCCESS,\r\n USER_DETAILS_FAILED,\r\n USER_DETAILS_REQUEST,\r\n USER_DETAILS_SUCCESS,\r\n USER_UPDATE_PROFILE_REQUEST,\r\n USER_UPDATE_PROFILE_SUCCESS,\r\n USER_UPDATE_PROFILE_FAILED,\r\n USER_DETAILS_RESET,\r\n} from \"../actionTypes/userConstants\";\r\n\r\n/////////////////////////// LOGIN REDUCER ///////////////////////////////\r\n\r\nexport const userLoginReducer = (\r\n state = {\r\n loading: false,\r\n isAuthenticated: false,\r\n userInfo: null,\r\n error: null,\r\n },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case USER_LOGIN_REQUEST:\r\n return { loading: true, error: null };\r\n case USER_LOGIN_SUCCESS:\r\n return {\r\n loading: false,\r\n isAuthenticated: true,\r\n userInfo: action.payload,\r\n };\r\n\r\n case USER_LOGIN_FAILED:\r\n return {\r\n loading: false,\r\n isAuthenticated: false,\r\n error: action.payload,\r\n };\r\n\r\n case USER_LOGOUT:\r\n return {\r\n isAuthenticated: false,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n/////////////////////////// REGISTER REDUCER ///////////////////////////////\r\n\r\nexport const userRegisterReducer = (\r\n state = {\r\n loading: false,\r\n isAuthenticated: false,\r\n userInfo: null,\r\n error: null,\r\n },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case USER_REGISTER_REQUEST:\r\n return { loading: true, error: null };\r\n case USER_REGISTER_SUCCESS:\r\n return {\r\n loading: false,\r\n isAuthenticated: true,\r\n userInfo: action.payload,\r\n };\r\n\r\n case USER_REGISTER_FAILED:\r\n return {\r\n loading: false,\r\n isAuthenticated: false,\r\n error: action.payload,\r\n };\r\n case USER_LOGOUT:\r\n return {\r\n isAuthenticated: false,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n///////////////////////////////////////// USER PROFILE DETAILS /////////////////////////////////\r\n\r\nexport const userDetailsReducer = (\r\n state = { loading: false, user: null, error: null },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case USER_DETAILS_REQUEST:\r\n return { loading: true };\r\n case USER_DETAILS_SUCCESS:\r\n return {\r\n loading: false,\r\n user: action.payload,\r\n };\r\n\r\n case USER_DETAILS_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n\r\n case USER_DETAILS_RESET:\r\n return {\r\n user: null,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n///////////////////////////////////////// UPDATE USER PROFILE DETAILS /////////////////////////////////\r\n\r\nexport const userUpdateProfileReducer = (\r\n state = { loading: false, userInfo: null, error: null, success: false },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case USER_UPDATE_PROFILE_REQUEST:\r\n return { loading: true };\r\n case USER_UPDATE_PROFILE_SUCCESS:\r\n return {\r\n loading: false,\r\n userInfo: action.payload,\r\n success: true,\r\n };\r\n\r\n case USER_UPDATE_PROFILE_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n CREATE_ORDER_REQUEST,\r\n CREATE_ORDER_SUCCESS,\r\n CREATE_ORDER_FAILED,\r\n CREATE_ORDER_RESET,\r\n ORDER_DETAILS_REQUEST,\r\n ORDER_DETAILS_SUCCESS,\r\n ORDER_DETAILS_FAILED,\r\n ORDER_DETAILS_RESET,\r\n ORDER_PAY_REQUEST,\r\n ORDER_PAY_SUCCESS,\r\n ORDER_PAY_FAILED,\r\n ORDER_PAY_RESET,\r\n LIST_MY_ORDER_REQUEST,\r\n LIST_MY_ORDER_SUCCESS,\r\n LIST_MY_ORDER_FAILED,\r\n LIST_MY_ORDER_RESET,\r\n} from \"../actionTypes/orderConstants\";\r\n\r\nexport const createOrderReducer = (\r\n state = {\r\n loading: false,\r\n success: false,\r\n error: null,\r\n order: null,\r\n },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case CREATE_ORDER_REQUEST:\r\n return { loading: true };\r\n\r\n case CREATE_ORDER_SUCCESS:\r\n return {\r\n loading: false,\r\n order: action.payload,\r\n success: true,\r\n };\r\n\r\n case CREATE_ORDER_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n case CREATE_ORDER_RESET:\r\n return {};\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\nexport const orderDetailsReducer = (\r\n state = {\r\n loading: true,\r\n orders: null,\r\n error: null,\r\n },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case ORDER_DETAILS_REQUEST:\r\n return { ...state, loading: true };\r\n\r\n case ORDER_DETAILS_SUCCESS:\r\n return {\r\n loading: false,\r\n orders: action.payload,\r\n };\r\n\r\n case ORDER_DETAILS_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n\r\n case ORDER_DETAILS_RESET:\r\n return {\r\n orders: [],\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const orderPayReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case ORDER_PAY_REQUEST:\r\n return { loading: true };\r\n\r\n case ORDER_PAY_SUCCESS:\r\n return {\r\n loading: false,\r\n success: true,\r\n };\r\n\r\n case ORDER_PAY_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n\r\n case ORDER_PAY_RESET:\r\n return {};\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const myOrdersReducer = (\r\n state = { loading: false, orders: null, error: null },\r\n action\r\n) => {\r\n switch (action.type) {\r\n case LIST_MY_ORDER_REQUEST:\r\n return { loading: true };\r\n\r\n case LIST_MY_ORDER_SUCCESS:\r\n return {\r\n loading: false,\r\n orders: action.payload,\r\n };\r\n\r\n case LIST_MY_ORDER_FAILED:\r\n return {\r\n loading: false,\r\n error: action.payload,\r\n };\r\n\r\n case LIST_MY_ORDER_RESET:\r\n return {\r\n orders: [],\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { fade, makeStyles } from \"@material-ui/core/styles\";\r\n\r\n/////////////////////// Custom Style //////////////////////////\r\nconst drawerWidth = 240;\r\n\r\nexport const useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n\r\n appbar: {\r\n padding: \"0.4rem\",\r\n background: \"linear-gradient(45deg, #0267B5, 30%, #2196f3 90%)\",\r\n },\r\n\r\n menu: {},\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n\r\n search: {\r\n position: \"relative\",\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: fade(theme.palette.common.white, 0.15),\r\n \"&:hover\": {\r\n backgroundColor: fade(theme.palette.common.white, 0.25),\r\n },\r\n marginLeft: 0,\r\n width: \"80%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: theme.spacing(1),\r\n width: \"auto\",\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"12ch\",\r\n \"&:focus\": {\r\n width: \"20ch\",\r\n },\r\n },\r\n },\r\n\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n drawerHeader: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: theme.spacing(0, 1),\r\n // necessary for content to be below app bar\r\n ...theme.mixins.toolbar,\r\n justifyContent: \"flex-end\",\r\n },\r\n\r\n link_brand: {\r\n color: \"inherit\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n color: \"inherit\",\r\n },\r\n },\r\n link_menu_item: {\r\n color: \"black\",\r\n textDecoration: \"none\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n },\r\n },\r\n link: {\r\n color: \"inherit\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n color: \"inherit\",\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n\r\n link_drawer: {\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n color: theme.palette.primary,\r\n },\r\n textDecoration: \"none\",\r\n },\r\n}));\r\n","import React, { useEffect, useState } from \"react\";\r\nimport InputBase from \"@material-ui/core/InputBase\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport { useStyles } from \"./CustomStyles/header\";\r\n\r\nexport default function SearchBox({ history }) {\r\n const classes = useStyles();\r\n\r\n const [keyword, setKeyword] = useState(\"\");\r\n useEffect(() => {\r\n // console.log(window.location.pathname);\r\n if (\r\n window.location.pathname === \"/\" ||\r\n window.location.pathname.includes(\"/search\")\r\n ) {\r\n if (keyword.trim()) {\r\n history.push(`/search?name=${keyword}`);\r\n } else {\r\n history.push(\"/\");\r\n }\r\n } else {\r\n setKeyword(\"\");\r\n }\r\n }, [keyword, history]);\r\n\r\n const handleSearchChange = (e) => {\r\n setKeyword(e.target.value);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n}\r\n","import axios from \"axios\";\r\nimport {\r\n USER_LOGIN_FAILED,\r\n USER_LOGIN_REQUEST,\r\n USER_LOGIN_SUCCESS,\r\n USER_LOGOUT,\r\n USER_REGISTER_FAILED,\r\n USER_REGISTER_REQUEST,\r\n USER_REGISTER_SUCCESS,\r\n USER_DETAILS_REQUEST,\r\n USER_DETAILS_SUCCESS,\r\n USER_DETAILS_FAILED,\r\n USER_DETAILS_RESET,\r\n USER_UPDATE_PROFILE_REQUEST,\r\n USER_UPDATE_PROFILE_SUCCESS,\r\n USER_UPDATE_PROFILE_FAILED,\r\n} from \"../actionTypes/userConstants\";\r\n\r\nimport { LIST_MY_ORDER_RESET } from \"../actionTypes/orderConstants\";\r\n\r\n///////////////////////////////////////////// ACTION ///////////////////////////////////////////////\r\n\r\n/////////// LOGIN ////////////////\r\n\r\nconst loginReq = () => ({\r\n type: USER_LOGIN_REQUEST,\r\n});\r\n\r\nconst addUser = (user) => ({\r\n type: USER_LOGIN_SUCCESS,\r\n payload: user,\r\n});\r\n\r\nconst loginFailed = (err) => ({\r\n type: USER_LOGIN_FAILED,\r\n payload: err,\r\n});\r\n\r\n/////////// REGISTER ////////////////\r\n\r\nconst registerReq = () => ({\r\n type: USER_REGISTER_REQUEST,\r\n});\r\n\r\nconst newUser = (user) => ({\r\n type: USER_REGISTER_SUCCESS,\r\n payload: user,\r\n});\r\n\r\nconst registerFailed = (err) => ({\r\n type: USER_REGISTER_FAILED,\r\n payload: err,\r\n});\r\n\r\n/////////// USER DETAILS ////////////////\r\n\r\nconst profileReq = () => ({\r\n type: USER_DETAILS_REQUEST,\r\n});\r\n\r\nconst getProfile = (user) => ({\r\n type: USER_DETAILS_SUCCESS,\r\n payload: user,\r\n});\r\n\r\nconst profileFailed = (err) => ({\r\n type: USER_DETAILS_FAILED,\r\n payload: err,\r\n});\r\n\r\n/////////// UPDATE USER DETAILS ////////////////\r\n\r\nconst updateProfileReq = () => ({\r\n type: USER_UPDATE_PROFILE_REQUEST,\r\n});\r\n\r\nconst updateProfile = (user) => ({\r\n type: USER_UPDATE_PROFILE_SUCCESS,\r\n payload: user,\r\n});\r\n\r\nconst updateProfileFailed = (err) => ({\r\n type: USER_UPDATE_PROFILE_FAILED,\r\n payload: err,\r\n});\r\n\r\n///////////////////////////////////////////// ACTION CREATOR ////////////////////////////////////////\r\n\r\n/////////// LOGIN ////////////////\r\n\r\nexport const loginUser = (API, email, password) => async (dispatch) => {\r\n try {\r\n dispatch(loginReq());\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n };\r\n const { data } = await axios.post(\r\n `${API}/user/login`,\r\n { email, password },\r\n config\r\n );\r\n dispatch(addUser(data));\r\n\r\n localStorage.setItem(\"userInfo\", JSON.stringify(data));\r\n\r\n /////////////////////////////// Remove from localStorage when token expire (time of token expiration) /////////////////////////\r\n setTimeout(() => {\r\n localStorage.removeItem(\"userInfo\");\r\n }, 3600000);\r\n } catch (error) {\r\n dispatch(\r\n loginFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n\r\n/////////// LOGOUT ////////////////\r\n\r\nexport const userLogout = () => (dispatch) => {\r\n localStorage.removeItem(\"userInfo\");\r\n dispatch({\r\n type: USER_LOGOUT,\r\n });\r\n dispatch({ type: LIST_MY_ORDER_RESET });\r\n dispatch({ type: USER_DETAILS_RESET });\r\n};\r\n\r\n/////////// REGISTER ////////////////\r\n\r\nexport const registerUser = (API, name, email, password) => async (\r\n dispatch\r\n) => {\r\n try {\r\n dispatch(registerReq());\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n };\r\n const { data } = await axios.post(\r\n `${API}/user/register`,\r\n { name, email, password },\r\n config\r\n );\r\n dispatch(newUser(data));\r\n dispatch(addUser(data));\r\n\r\n localStorage.setItem(\"userInfo\", JSON.stringify(data));\r\n\r\n /////////////////////////////// Remove from localStorage when token expire (time of token expiration) /////////////////////////\r\n setTimeout(() => {\r\n localStorage.removeItem(\"userInfo\");\r\n }, 3600000);\r\n } catch (error) {\r\n dispatch(\r\n registerFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n\r\n//////////////////// USER DETAILS (PROFILE) ///////////////////////\r\n\r\nexport const getUserDetails = (API, id) => async (dispatch, getState) => {\r\n try {\r\n dispatch(profileReq());\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.get(`${API}/user/${id}`, config);\r\n\r\n dispatch(getProfile(data));\r\n } catch (error) {\r\n dispatch(\r\n profileFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n\r\n//////////////////// UPDATE USER DETAILS (PROFILE) ///////////////////////\r\n\r\nexport const updateUserProfile = (API, user) => async (dispatch, getState) => {\r\n try {\r\n dispatch(updateProfileReq());\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.put(`${API}/user/profile`, user, config);\r\n\r\n dispatch(updateProfile(data));\r\n } catch (error) {\r\n dispatch(\r\n updateProfileFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { Route, Link } from \"react-router-dom\";\r\n\r\n/////////////////////// MATERIAL UI Component //////////////////\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Fade from \"@material-ui/core/Fade\";\r\n\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\n\r\n/////////////////////// MATERIAL ICONS ///////////////////////\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport ShoppingCartIcon from \"@material-ui/icons/ShoppingCart\";\r\nimport ExitToAppIcon from \"@material-ui/icons/ExitToApp\";\r\nimport GroupAddIcon from \"@material-ui/icons/GroupAdd\";\r\nimport AccountCircle from \"@material-ui/icons/AccountCircle\";\r\nimport PersonIcon from \"@material-ui/icons/Person\";\r\n\r\n///////////////////////// Search Box component ///////////////////\r\nimport SearchBox from \"./SearchProductBox\";\r\n\r\n///////////////////////// REDUX //////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { userLogout } from \"../redux/actions/userAction\";\r\n\r\n////////////////////////// CUSTOM STYLE /////////////////////////\r\nimport { useStyles } from \"./CustomStyles/header\";\r\n\r\nexport default function Header({ isMobile }) {\r\n const classes = useStyles();\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const openEl = Boolean(anchorEl);\r\n const [toggle, setToggle] = useState(false);\r\n\r\n //////////////////////// REDUX ////////////////////////////////\r\n const dispatch = useDispatch();\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n const logoutHandler = () => {\r\n dispatch(userLogout());\r\n setAnchorEl(null);\r\n };\r\n\r\n ////////////////////////// FOR Dropdown Menu /////////////////////////////\r\n const handleMenu = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n setToggle(true)}\r\n color=\"inherit\"\r\n aria-label=\"menu\"\r\n >\r\n \r\n \r\n \r\n \r\n eShop\r\n \r\n \r\n {/*// Search Box Component */}\r\n } />\r\n        \r\n {/*// CART BUTTON (if logged in goes to /cart otherwise redirect to /login ) //*/}\r\n \r\n \r\n \r\n {userInfo ? (\r\n /// DROPDOWN MENU IF USER EXISTS OR LOGGED IN ///\r\n
\r\n \r\n \r\n  \r\n {!isMobile ? userInfo.name.split(\" \")[0] : null}\r\n \r\n \r\n {/*// USER NAME ON MOBILE VIEW //*/}\r\n {isMobile ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {/*// PROFILE BUTTON if user is logged in */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*// LOGOUT BUTTON (if user is logged in) //*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ) : (\r\n /// LOGIN BUTTON IF USER DOES NOT EXISTS OR LOGGED OUT ///\r\n\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n\r\n {/*/// FOR MOBILE VIEW ///*/}\r\n setToggle(false)}>\r\n \r\n {userInfo ? (\r\n /// LOGOUT BUTTON IF USER EXISTS OR LOGGED IN ///\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n /// LOGIN BUTTON IF USER DOES NOT EXISTS OR LOGGED OUT ///\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from 'react'\r\nimport { Col, Container, Row } from 'react-bootstrap'\r\n\r\nconst Footer = () => {\r\n return (\r\n
\r\n \r\n \r\n \r\n

Copyright © 2020 by Shubham Dutta

\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Footer\r\n","import React from \"react\";\r\n\r\nimport \"../styles/components/Rating.css\";\r\n\r\nexport default function Rating({ value, text, color }) {\r\n return (\r\n <>\r\n
\r\n \r\n = 1\r\n ? \"fas fa-star\"\r\n : value >= 0.5\r\n ? \"fas fa-star-half-alt\"\r\n : \"far fa-star\"\r\n }\r\n style={{ color: color }}\r\n >\r\n \r\n \r\n = 2\r\n ? \"fas fa-star\"\r\n : value >= 1.5\r\n ? \"fas fa-star-half-alt\"\r\n : \"far fa-star\"\r\n }\r\n style={{ color: color }}\r\n >\r\n \r\n \r\n = 3\r\n ? \"fas fa-star\"\r\n : value >= 2.5\r\n ? \"fas fa-star-half-alt\"\r\n : \"far fa-star\"\r\n }\r\n style={{ color: color }}\r\n >\r\n \r\n \r\n = 4\r\n ? \"fas fa-star\"\r\n : value >= 3.5\r\n ? \"fas fa-star-half-alt\"\r\n : \"far fa-star\"\r\n }\r\n style={{ color: color }}\r\n >\r\n \r\n \r\n = 5\r\n ? \"fas fa-star\"\r\n : value >= 4.5\r\n ? \"fas fa-star-half-alt\"\r\n : \"far fa-star\"\r\n }\r\n style={{ color: color }}\r\n >\r\n \r\n {text}\r\n
\r\n \r\n );\r\n}\r\n\r\nRating.defaultProps = {\r\n color: \"#FAAE20\",\r\n};\r\n","import React from \"react\";\r\nimport { Card } from \"react-bootstrap\";\r\nimport Rating from \"./Rating\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport \"../styles/components/Products.css\";\r\n\r\nexport default function Products({ product, path }) {\r\n return (\r\n <>\r\n \r\n \r\n {/* */}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {product.name}\r\n \r\n \r\n\r\n \r\n
\r\n \r\n\r\n {/* {product.rating} from {product.numReviews} rating */}\r\n
\r\n
\r\n\r\n ${product.price}\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import axios from \"axios\";\r\n\r\nimport {\r\n PRODUCT_LIST_REQUEST,\r\n PRODUCT_LIST_SUCCESS,\r\n PRODUCT_LIST_FAILED,\r\n} from \"../actionTypes/productListConstants\";\r\n\r\n\r\n///////////////////// ACTIONS ///////////////////////////////\r\n\r\nconst reqProducts = () => ({\r\n type: PRODUCT_LIST_REQUEST,\r\n});\r\n\r\nconst addProducts = (products) => ({\r\n type: PRODUCT_LIST_SUCCESS,\r\n payload: products,\r\n});\r\n\r\nconst productsFailed = (errMess) => ({\r\n type: PRODUCT_LIST_FAILED,\r\n payload: errMess,\r\n});\r\n\r\n//////////////////// ACTION CREATOR ////////////////////////\r\n\r\nexport const listProducts = (keyword = \"\", API) => async (dispatch) => {\r\n try {\r\n dispatch(reqProducts());\r\n\r\n const { data } = await axios.get(`${API}/products?keyword=${keyword}`);\r\n\r\n dispatch(addProducts(data));\r\n\r\n console.log(data);\r\n } catch (error) {\r\n dispatch(\r\n productsFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n","import React from \"react\";\r\nimport { Spinner } from \"react-bootstrap\";\r\n\r\nexport default function Loader() {\r\n return (\r\n \r\n Loading...\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Alert } from \"@material-ui/lab\";\r\n\r\nconst Message = ({ varient, children }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default Message;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Pagination from \"@material-ui/lab/Pagination\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& > *\": {\r\n marginTop: theme.spacing(2),\r\n width: \"70rem\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n },\r\n mobile: {\r\n marginTop: theme.spacing(2),\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n}));\r\n\r\nexport default function BasicPagination({ totalPage, setPaginate, isMobile }) {\r\n const classes = useStyles();\r\n\r\n const handleChange = (event, page) => {\r\n setPaginate((prev) => ({\r\n ...prev,\r\n currentPage: page,\r\n }));\r\n if (isMobile) {\r\n window.scrollTo(0, 2820);\r\n } else {\r\n window.scrollTo(0, 3000);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","export const carousalData = [\r\n {\r\n image_desktop: \"/assets/images/carousal/Landing_electronics.png\",\r\n image_mobile: \"/assets/images/carousal/Landing_electronics_phone.png\",\r\n heading: \"Electronics Accessories\",\r\n para:\r\n \"Lorem Ipsum is simply dummy text of the print and type setting industry.\",\r\n id: \"#electronics\",\r\n },\r\n {\r\n image_desktop: \"/assets/images/carousal/Landing_home.png\",\r\n image_mobile: \"/assets/images/carousal/Landing_home_phone.png\",\r\n heading: \"Home Appliances\",\r\n para:\r\n \"Lorem Ipsum is simply dummy text of the print and type setting industry.\",\r\n id: \"#home_appliances\",\r\n },\r\n {\r\n image_desktop: \"/assets/images/carousal/Landing_mens.png\",\r\n image_mobile: \"/assets/images/carousal/Landing_mens_phone.png\",\r\n heading: \"Mens Accessories\",\r\n para:\r\n \"Lorem Ipsum is simply dummy text of the print and type setting industry.\",\r\n\r\n id: \"#mens_accessories\",\r\n },\r\n {\r\n image_desktop: \"/assets/images/carousal/Landing_womens.png\",\r\n image_mobile: \"/assets/images/carousal/Landing_womens_phone.png\",\r\n heading: \"Womens Accessories\",\r\n para:\r\n \"Lorem Ipsum is simply dummy text of the print and type setting industry.\",\r\n id: \"#womens_accessories\",\r\n },\r\n];\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Row, Col } from \"react-bootstrap\";\r\nimport Product from \"../components/Products\";\r\n\r\n// Owl Carousal\r\nimport OwlCarousel from \"react-owl-carousel\";\r\nimport \"owl.carousel/dist/assets/owl.carousel.css\";\r\nimport \"owl.carousel/dist/assets/owl.theme.default.css\";\r\n\r\n// Redux\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { listProducts } from \"../redux/actions/productListAction\";\r\n\r\n// Components\r\nimport Loader from \"../components/Loader\";\r\nimport ErrMess from \"../components/Message\";\r\nimport Paginate from \"../components/Paginate\";\r\n\r\n// Carousal Data\r\nimport { carousalData } from \"../utils/carousalData\";\r\n\r\n// Styling\r\nimport \"../styles/Screen/HomeScreen.css\";\r\n\r\nexport default function Home({ location, API, isMobile }) {\r\n // option for card carousal\r\n const options = {\r\n loop: false,\r\n dots: false,\r\n margin: 10,\r\n nav: true,\r\n navText: [\r\n \"\",\r\n \"\",\r\n ],\r\n responsive: {\r\n 320: {\r\n items: 1,\r\n },\r\n 768: {\r\n items: 3,\r\n },\r\n 1000: {\r\n items: 4,\r\n },\r\n },\r\n };\r\n\r\n // option for hero section carousal\r\n const options2 = {\r\n loop: true,\r\n margin: 100,\r\n nav: true,\r\n autoplay: true,\r\n autoplayTimeout: 4000,\r\n lazyLoad: true,\r\n smartSpeed: 1000,\r\n items: 1,\r\n };\r\n\r\n // fetching datas of productList from redux state\r\n const dispatch = useDispatch();\r\n const productList = useSelector((state) => state.productList);\r\n const { loading, products, error } = productList;\r\n\r\n // PAGINATION CALCULATIONS\r\n const [paginate, setPaginate] = useState({\r\n allProducts: [],\r\n currentPage: 1,\r\n allProductsPerPage: !isMobile ? 6 : 1,\r\n });\r\n\r\n useEffect(() => {\r\n setPaginate((prev) => ({\r\n ...prev,\r\n allProducts: products,\r\n }));\r\n\r\n window.scrollTo(0, 0);\r\n }, [loading, products]);\r\n\r\n const { allProducts, currentPage, allProductsPerPage } = paginate;\r\n\r\n // Logic for displaying current allProducts\r\n const indexOfLastProduct = currentPage * allProductsPerPage;\r\n const indexOfFirstProduct = indexOfLastProduct - allProductsPerPage;\r\n const currentProducts = allProducts.slice(\r\n indexOfFirstProduct,\r\n indexOfLastProduct\r\n );\r\n const totalPage = Math.ceil(allProducts.length / allProductsPerPage);\r\n // ENDS PAGINATION CALCULATIONS\r\n\r\n // SEARCH by query in route\r\n const [isQuerying, setIsQuerying] = useState(false);\r\n\r\n const query = new URLSearchParams(location.search);\r\n const keyword = query.get(\"name\") || \"\";\r\n // const pageNumber = parseInt(query.get(\"pageNumber\")) || \"\";\r\n\r\n useEffect(() => {\r\n if (keyword) {\r\n setIsQuerying(true);\r\n } else {\r\n setIsQuerying(false);\r\n }\r\n dispatch(listProducts(keyword, API));\r\n }, [dispatch, keyword, API]);\r\n\r\n // Scroll on Click to products category in carousel\r\n const electronicsRef = useRef(null); // To Electronics\r\n const homeRef = useRef(null); // To Home Appliances\r\n const mensRef = useRef(null); // To Mens Accessories\r\n const womensRef = useRef(null); // To Womens Accessories\r\n\r\n // function to scroll to desired position smoothly\r\n const executeScroll = (id) => {\r\n if (id === \"#electronics\") {\r\n electronicsRef.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n } else if (id === \"#home_appliances\") {\r\n homeRef.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n } else if (id === \"#mens_accessories\") {\r\n mensRef.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n } else if (id === \"#womens_accessories\") {\r\n womensRef.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {/*// CAROUSAL /// */}\r\n\r\n \r\n {carousalData.map((data, index) => (\r\n \r\n \r\n \r\n {data.heading}\r\n \r\n \r\n {data.para}\r\n \r\n executeScroll(data.id)}\r\n className={\r\n isMobile ? \"carousal_button_phone\" : \"carousal_button\"\r\n }\r\n >\r\n SHOP NOW\r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n {/* ///////////////// BUG: Render carusal before children ////////// */}\r\n {/*////////////////// SOLUTION: ADD key to OwlCarousal */}\r\n\r\n
\r\n {/*// if nothing there to search then show all category division of products otherwise not //*/}\r\n {!isQuerying ? (\r\n <>\r\n {/* ELECTRONICS */}\r\n \r\n Electronics Accessories\r\n \r\n\r\n \r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n products && (\r\n \r\n {products\r\n .filter((p) => p.category === \"electronics\")\r\n .map((electronic, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n )}\r\n \r\n\r\n {/* HOME APPLIANCES */}\r\n \r\n Home Appliances\r\n \r\n\r\n \r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n products && (\r\n \r\n {products\r\n .filter((p) => p.category === \"home_appliances\")\r\n .map((home_appliance, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n )}\r\n \r\n\r\n {/* MENS'S ACCESSORIES */}\r\n \r\n Men's Accessories\r\n \r\n\r\n \r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n products && (\r\n \r\n {products\r\n .filter((p) => p.category === \"mens_accessories\")\r\n .map((mens_accessory, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n )}\r\n \r\n\r\n {/* WOMEN'S ACCESSORIES */}\r\n \r\n Women's Accessories\r\n \r\n\r\n \r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n products && (\r\n \r\n {products\r\n .filter((p) => p.category === \"womens_accessories\")\r\n .map((womens_accessory, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n )}\r\n \r\n \r\n ) : null}\r\n\r\n {/*// CAROUSAL ENDS //*/}\r\n\r\n {/* ALL PRODUCTS */}\r\n \r\n Latest Products\r\n \r\n\r\n \r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n currentProducts.map((product, index) => (\r\n \r\n \r\n \r\n ))\r\n )}\r\n\r\n {/*// PAGINATION COMPONENT //*/}\r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\n\r\nconst ProductScreenSkeleton = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProductScreenSkeleton;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n Row,\r\n Col,\r\n Image,\r\n ListGroup,\r\n Card,\r\n Button,\r\n Form,\r\n} from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n////////////////// COMPONENTS //////////////////////////\r\nimport Rating from \"../components/Rating\";\r\nimport Message from \"../components/Message\";\r\nimport Skeleton from \"./skeletons/ProductScreenSkeleton\";\r\n\r\n///////////////// REDUX ///////////////////////////////////\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n listProductDetails,\r\n createProductReview,\r\n} from \"../redux/actions/productDetailsAction\";\r\nimport { PRODUCT_CREATE_REVIEW_RESET } from \"../redux/actionTypes/productDetailsConstants\";\r\n\r\nimport \"../styles/Screen/ProductScreen.css\";\r\n\r\nexport default function ProductScreen({ history, match, API, isMobile }) {\r\n const [qty, setQty] = useState(1);\r\n const [rating, setRating] = useState(0);\r\n const [comment, setComment] = useState(\"\");\r\n\r\n ////////////////// fetching datas of productList from redux state ////////////////////////\r\n\r\n const dispatch = useDispatch();\r\n\r\n // product details\r\n const productDetails = useSelector((state) => state.productDetails);\r\n const { loading, product, error } = productDetails;\r\n\r\n // create product review reducer\r\n const productCreateReview = useSelector((state) => state.productCreateReview);\r\n const {\r\n success: successProductReview,\r\n error: errorProductReview,\r\n } = productCreateReview;\r\n\r\n // user login credentials\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (successProductReview) {\r\n dispatch({ type: PRODUCT_CREATE_REVIEW_RESET });\r\n alert(\"Review Submitted Successfully\");\r\n setRating(0);\r\n setComment(\"\");\r\n }\r\n dispatch(listProductDetails(API, match.params.category, match.params.id));\r\n }, [dispatch, match, successProductReview, API]);\r\n\r\n console.log(product.reviews);\r\n ////////////////////// Redirect to Cart page ///////////////////////\r\n\r\n const addToCartHandler = () => {\r\n history.push(\r\n `/cart/${match.params.category}/${match.params.id}?qty=${qty}`\r\n );\r\n };\r\n\r\n // submit product review\r\n const submitReviewHandler = (e) => {\r\n e.preventDefault();\r\n dispatch(\r\n createProductReview(API, match.params.category, match.params.id, {\r\n rating: rating,\r\n comment: comment,\r\n })\r\n );\r\n };\r\n\r\n ///////////////////// GO BACK ////////////////////////\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n\r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n

\r\n {product.name}\r\n

\r\n
\r\n \r\n \r\n
Price:
\r\n
\r\n {product.price}\r\n
\r\n \r\n \r\n
\r\n Description:\r\n
\r\n
\r\n

{product.description}

\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Price: \r\n \r\n ${product.price}\r\n \r\n \r\n \r\n \r\n \r\n Status: \r\n \r\n \r\n ${product.countInStock ? \"In Stock\" : \"Out Of Stock\"}\r\n \r\n \r\n \r\n \r\n {product.countInStock > 0 && (\r\n \r\n \r\n Quantity: \r\n \r\n setQty(e.target.value)}\r\n >\r\n {[...Array(product.countInStock).keys()].map(\r\n (q) => (\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ADD TO CART\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/*// list down product reviews and create review //*/}\r\n \r\n \r\n \r\n Product Reviews\r\n \r\n \r\n {product.reviews && product.reviews.length === 0 && (\r\n No Reviews\r\n )}\r\n\r\n \r\n {product.reviews &&\r\n product.reviews.map((review) => {\r\n return (\r\n \r\n
\r\n

\r\n {review.name}\r\n

{\" \"}\r\n \r\n
\r\n\r\n
\r\n {review.createdAt.substring(0, 10)} \r\n {review.comment}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n\r\n \r\n \r\n \r\n Write Your Review\r\n \r\n {errorProductReview && (\r\n {errorProductReview}\r\n )}\r\n {userInfo ? (\r\n
\r\n \r\n \r\n Rating\r\n \r\n setRating(e.target.value)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Your Comment\r\n \r\n setComment(e.target.value)}\r\n >\r\n \r\n \r\n Submit\r\n \r\n \r\n ) : (\r\n \r\n Please sign in to write a review\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import {\r\n PRODUCT_DETAILS_REQUEST,\r\n PRODUCT_DETAILS_SUCCESS,\r\n PRODUCT_DETAILS_FAILED,\r\n PRODUCT_CREATE_REVIEW_REQUEST,\r\n PRODUCT_CREATE_REVIEW_FAILED,\r\n PRODUCT_CREATE_REVIEW_SUCCESS,\r\n} from \"../actionTypes/productDetailsConstants\";\r\n\r\nimport axios from \"axios\";\r\n\r\n////////////////////// ACTIONS /////////////////////////////\r\n\r\n// product details\r\nconst reqProduct = () => ({\r\n type: PRODUCT_DETAILS_REQUEST,\r\n});\r\n\r\nconst addProduct = (product) => ({\r\n type: PRODUCT_DETAILS_SUCCESS,\r\n payload: product,\r\n});\r\n\r\nconst productFailed = (errMess) => ({\r\n type: PRODUCT_DETAILS_FAILED,\r\n payload: errMess,\r\n});\r\n\r\n// create products review\r\nconst reqProductReview = () => ({\r\n type: PRODUCT_CREATE_REVIEW_REQUEST,\r\n});\r\n\r\nconst addProductReview = () => ({\r\n type: PRODUCT_CREATE_REVIEW_SUCCESS,\r\n});\r\n\r\nconst productReviewFailed = (errMess) => ({\r\n type: PRODUCT_CREATE_REVIEW_FAILED,\r\n payload: errMess,\r\n});\r\n\r\n/////////////////////// ACTION CREATOR ///////////////////////////\r\n\r\n// list all product details\r\nexport const listProductDetails = (API, category, id) => async (dispatch) => {\r\n try {\r\n dispatch(reqProduct());\r\n\r\n const { data } = await axios.get(`${API}/products/${category}/${id}`);\r\n\r\n dispatch(addProduct(data));\r\n } catch (error) {\r\n dispatch(\r\n productFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n\r\n// Create product Review\r\nexport const createProductReview = (API, category, id, review) => async (\r\n dispatch,\r\n getState\r\n) => {\r\n try {\r\n dispatch(reqProductReview());\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n await axios.post(\r\n `${API}/products/${category}/${id}/reviews`,\r\n review,\r\n config\r\n );\r\n\r\n dispatch(addProductReview());\r\n } catch (error) {\r\n dispatch(\r\n productReviewFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n )\r\n );\r\n }\r\n};\r\n","import axios from \"axios\";\r\n\r\nimport {\r\n CART_ITEM_ADD,\r\n CART_ITEM_REMOVE,\r\n CART_SAVE_SHIPPING_ADDRESS,\r\n CART_SAVE_PAYMENT_METHOD,\r\n CART_ITEM_RESET,\r\n} from \"../actionTypes/cartConstants\";\r\n\r\n/////////////////////////// ACTIONS /////////////////////////////////\r\n\r\nconst addCart = (data, qty) => ({\r\n type: CART_ITEM_ADD,\r\n payload: {\r\n product: data._id,\r\n name: data.name,\r\n image: data.image,\r\n price: data.price,\r\n category: data.category,\r\n countInStock: data.countInStock,\r\n qty,\r\n },\r\n});\r\n\r\nconst removeCart = (id) => ({\r\n type: CART_ITEM_REMOVE,\r\n payload: id,\r\n});\r\n\r\nconst shippingAddress = (data) => ({\r\n type: CART_SAVE_SHIPPING_ADDRESS,\r\n payload: data,\r\n});\r\n\r\nconst paymentMethod = (data) => ({\r\n type: CART_SAVE_PAYMENT_METHOD,\r\n payload: data,\r\n});\r\n\r\n//////////////////////////// ACTION CREATOR //////////////////////////\r\n\r\n////////// ADD TO CART ///////////////////\r\nexport const addToCart = (API, id, category, qty) => async (\r\n dispatch,\r\n getState\r\n) => {\r\n const { data } = await axios.get(`${API}/products/${category}/${id}`);\r\n dispatch(addCart(data, qty));\r\n // Adding cartItems to localStorage\r\n localStorage.setItem(\"cartItems\", JSON.stringify(getState().cart.cartItems));\r\n};\r\n\r\n////////// REMOVE FROM CART ///////////////////\r\nexport const removeFromCart = (id) => (dispatch, getState) => {\r\n dispatch(removeCart(id));\r\n // Adding to localStorage after removing particular product\r\n localStorage.setItem(\"cartItems\", JSON.stringify(getState().cart.cartItems));\r\n};\r\n\r\n////////// SAVE SHIPPING ADDRESS ///////////////////\r\nexport const addShippingAddress = (data) => (dispatch) => {\r\n dispatch(shippingAddress(data));\r\n\r\n localStorage.setItem(\"shippingAddress\", JSON.stringify(data));\r\n};\r\n\r\n////////// SAVE PAYMENT METHOD ///////////////////\r\nexport const addPaymentMethod = (data) => (dispatch) => {\r\n dispatch(paymentMethod(data));\r\n\r\n localStorage.setItem(\"paymentMethod\", JSON.stringify(data));\r\n};\r\n\r\n////////// RESET CART ITEMS ///////////////////\r\nexport const emptyCart = () => (dispatch) => {\r\n dispatch({ type: CART_ITEM_RESET });\r\n\r\n localStorage.removeItem(\"cartItems\");\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport {\r\n Row,\r\n Col,\r\n Button,\r\n Card,\r\n ListGroup,\r\n Image,\r\n Form,\r\n} from \"react-bootstrap\";\r\n\r\n////////////////// COMPONENTS //////////////////////////\r\nimport Message from \"../components/Message\";\r\n\r\n///////////////// REDUX ///////////////////////////////////\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { addToCart, removeFromCart } from \"../redux/actions/cartAction\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n////////////////// CSS style //////////////////////////////\r\n\r\nimport \"../styles/Screen/CartScreen.css\";\r\n\r\nconst CartScreen = ({ match, location, history, isMobile, API }) => {\r\n const productId = match.params.id;\r\n const category = match.params.category;\r\n const qty = location.search ? Number(location.search.split(\"=\")[1]) : 1;\r\n\r\n const dispatch = useDispatch();\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n const cart = useSelector((state) => state.cart);\r\n const { cartItems } = cart;\r\n\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n } else if (productId) {\r\n dispatch(addToCart(API, productId, category, qty));\r\n }\r\n }, [dispatch, productId, qty, category, userInfo, history, API]);\r\n\r\n //////////////////// remove cart Handler /////////////////////////\r\n\r\n const removecartHandler = (productId) => {\r\n console.log(productId);\r\n dispatch(removeFromCart(productId));\r\n };\r\n\r\n //////////////////// Checkout Process Handler /////////////////////////\r\n\r\n const checkoutHandler = () => {\r\n history.push(\"/login?redirect=shipping\");\r\n console.log(\"CHECKOUT\");\r\n };\r\n\r\n //////////////////// GO BACK //////////////////////////////////\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n return (\r\n <>\r\n {/*////////////////////////// BREADCRUMB OF NAV //////////////////////////*/}\r\n\r\n \r\n\r\n \r\n {/*/////////////////////////// CART WHOLE SECTION /////////////////////////////*/}\r\n\r\n \r\n {/*////////////////////////// 1. CART LEFT SECTION //////////////////////////////*/}\r\n \r\n

\r\n YOUR CART ({cartItems && cartItems.length})\r\n ITEM\r\n

\r\n\r\n
\r\n\r\n {/*////////////// CART == EMPTY -> ErrMess => Else => loop through cartItems ////////////*/}\r\n\r\n {cartItems.length === 0 ? (\r\n \r\n Your cart is empty \r\n Keep Shopping\r\n \r\n ) : (\r\n \r\n {!isMobile ? (\r\n \r\n \r\n \r\n

Image

\r\n \r\n \r\n

Name

\r\n \r\n \r\n

Price

\r\n \r\n \r\n

Quantity

\r\n \r\n
\r\n
\r\n ) : null}\r\n {cartItems.map((item) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n ${item.price}\r\n \r\n \r\n \r\n dispatch(\r\n addToCart(\r\n item.product,\r\n item.category,\r\n Number(e.target.value)\r\n )\r\n )\r\n }\r\n >\r\n {[...Array(item.countInStock).keys()].map((q) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n removecartHandler(item.product)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n
\r\n )}\r\n \r\n\r\n {/*////////////////////////// 2. CART RIGHT SECTION /////////////////////////////*/}\r\n \r\n \r\n \r\n \r\n \r\n PROCEED TO PAY\r\n \r\n \r\n \r\n

\r\n ORDER SUMMARY\r\n

\r\n
\r\n \r\n \r\n \r\n

Subtotal:

\r\n \r\n \r\n
\r\n ({cartItems.reduce((acc, item) => acc + item.qty, 0)})\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n

Price:

\r\n \r\n \r\n
\r\n $\r\n {cartItems\r\n .reduce((acc, item) => acc + item.qty * item.price, 0)\r\n .toFixed(2)}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n

Delivery:

\r\n \r\n \r\n
Free
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n

Total:

\r\n \r\n \r\n
\r\n $\r\n {cartItems\r\n .reduce((acc, item) => acc + item.qty * item.price, 0)\r\n .toFixed(2)}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CartScreen;\r\n","import { makeStyles } from \"@material-ui/core/styles\";\r\n\r\n////////////////////////////// CUSTOM STYLES /////////////////////////////\r\n\r\nexport const useStyle = makeStyles((theme) => ({\r\n form: {\r\n padding: theme.spacing(2.6),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n },\r\n paper: {\r\n width: \"50%\",\r\n margin: \"auto\",\r\n marginTop: \"0.4rem\",\r\n\r\n paddingTop: theme.spacing(2.4),\r\n [theme.breakpoints.down(\"sm\")]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n avatar: {\r\n width: \"3.1rem\",\r\n height: \"3.1rem\",\r\n marginLeft: \"50%\",\r\n marginBottom: \"0.8rem\",\r\n transform: \"translateX(-50%)\",\r\n backgroundImage: \"linear-gradient(45deg, #2196f3, 70%, #045694 90%)\",\r\n },\r\n\r\n heading: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n marginBottom: \"0.6rem\",\r\n marginTop: \"0.6rem\",\r\n color: \"#1853F3\",\r\n fontSize: \"1.7rem\",\r\n [theme.breakpoints.down(\"xs\")]: {\r\n fontSize: \"1.4rem\",\r\n },\r\n },\r\n\r\n input: {\r\n \"& label\": {\r\n color: theme.palette.info.main,\r\n fontWeight: \"550\",\r\n },\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n borderColor: \"#46BFE0\",\r\n },\r\n },\r\n paddingBottom: theme.spacing(2.8),\r\n width: \"80%\",\r\n\r\n [theme.breakpoints.down(\"xs\")]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n button: {\r\n background: \"linear-gradient(45deg, #2196F3 30%, #21CBF3 90%)\",\r\n width: \"80%\",\r\n marginBottom: \"0.8rem\",\r\n\r\n [theme.breakpoints.down(\"xs\")]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n icon: {\r\n width: \"1.2rem\",\r\n },\r\n\r\n register: {\r\n paddingTop: theme.spacing(2.8),\r\n marginLeft: \"6rem\",\r\n\r\n [theme.breakpoints.down(\"xs\")]: {\r\n marginLeft: \"auto\",\r\n },\r\n },\r\n\r\n login: {\r\n paddingTop: theme.spacing(2.8),\r\n marginLeft: \"6rem\",\r\n\r\n [theme.breakpoints.down(\"xs\")]: {\r\n marginLeft: \"auto\",\r\n },\r\n },\r\n\r\n selectLabel: {\r\n fontSize: \"1.4rem\",\r\n textAlign: \"center\",\r\n color: \"#1853F3\",\r\n },\r\n\r\n back: {\r\n marginLeft: \"0.6rem\",\r\n width: \"2rem\",\r\n height: \"2rem\",\r\n marginBottom: \"-1rem\",\r\n backgroundImage: \"linear-gradient(45deg, #2196f3, 70%, #045694 90%)\",\r\n borderRadius: \"2rem\",\r\n padding: \"0.3rem 0 0.3rem 0.5rem\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n },\r\n}));\r\n","import { withStyles } from \"@material-ui/core/styles\";\r\nimport StepConnector from \"@material-ui/core/StepConnector\";\r\n\r\n////////////////////////////// Step Connector ///////////////////////////////\r\nexport const CheckoutStepConnector = withStyles({\r\n alternativeLabel: {\r\n top: 22,\r\n },\r\n\r\n active: {\r\n \"& $line\": {\r\n backgroundImage: \"linear-gradient(45deg, #2196f3, 30%, #045694 90%)\",\r\n },\r\n },\r\n completed: {\r\n \"& $line\": {\r\n backgroundImage: \"linear-gradient(45deg, #045694, 30%, #2196f3 90%)\",\r\n },\r\n },\r\n line: {\r\n height: 3,\r\n border: 0,\r\n backgroundColor: \"#eaeaf0\",\r\n borderRadius: 1,\r\n },\r\n})(StepConnector);\r\n","import { makeStyles } from \"@material-ui/core/styles\";\r\nimport clsx from \"clsx\";\r\nimport {\r\n AccountBalance,\r\n LocalShipping,\r\n PeopleAlt,\r\n ShoppingBasket,\r\n} from \"@material-ui/icons\";\r\n\r\n///////////////////////////////////////////// Style Step Icon //////////////////////////////////////////////\r\nexport const useStepIconStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"#ccc\",\r\n zIndex: 1,\r\n color: \"#fff\",\r\n width: \"3.2rem\",\r\n height: \"3.2rem\",\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n [theme.breakpoints.down(\"xs\")]: {\r\n width: \"2.4rem\",\r\n height: \"2.4rem\",\r\n },\r\n },\r\n active: {\r\n backgroundImage: \"linear-gradient(45deg, #045694, 30%, #2196f3 90%)\",\r\n boxShadow: \"0 8px 22px 0 rgba(0,0,0,.25)\",\r\n },\r\n completed: {\r\n backgroundImage: \"linear-gradient(45deg, #045694, 30%, #2196f3 90%)\",\r\n },\r\n}));\r\n\r\n//////////////////////////////////////////// Step Icon /////////////////////////////////////////////\r\nexport function StepIcon(props) {\r\n const classes = useStepIconStyles();\r\n const { active, completed } = props;\r\n\r\n const icons = {\r\n 1: ,\r\n 2: ,\r\n 3: ,\r\n 4: ,\r\n };\r\n\r\n return (\r\n \r\n {icons[String(props.icon)]}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Stepper from \"@material-ui/core/Stepper\";\r\nimport Step from \"@material-ui/core/Step\";\r\nimport StepLabel from \"@material-ui/core/StepLabel\";\r\n\r\n//////////////////////////////////// CUSTOM STYLE COMPONENTS /////////////////////////////////////////\r\nimport { CheckoutStepConnector } from \"./CustomStyles/CheckoutStepper/StepConnector\";\r\nimport { StepIcon } from \"./CustomStyles/CheckoutStepper/StepIcon\";\r\n\r\nfunction getSteps() {\r\n return [\"Sign In\", \"Shipping\", \"Payment\", \"Place Order\"];\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n}));\r\n\r\nexport default function CheckoutStepper({ step }) {\r\n const classes = useStyles();\r\n const steps = getSteps();\r\n\r\n return (\r\n
\r\n }\r\n >\r\n {steps.map((label) => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n///////////////////////////////////////// MATERIAL UI ////////////////////////////////\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport { Avatar, Button } from \"@material-ui/core\";\r\n\r\n/////////////////////////////////////// MATERIAL UI ICONS ///////////////////////////////\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport EmailIcon from \"@material-ui/icons/Email\";\r\nimport PeopleIcon from \"@material-ui/icons/People\";\r\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\r\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\r\nimport LockIcon from \"@material-ui/icons/Lock\";\r\n\r\n//////////////////////////////////////// REDUX /////////////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { loginUser } from \"../redux/actions/userAction\";\r\n\r\n/////////////////////////////////////// CUSTOM STYLE /////////////////////////////////////\r\nimport { useStyle } from \"./customStyle/allFormsScreen\";\r\n\r\nimport CheckoutStepper from \"../components/CheckoutStepper\";\r\nimport Message from \"../components/Message\";\r\nimport Loader from \"../components/Loader\";\r\n\r\nconst LoginScreen = ({ history, location, API }) => {\r\n const classes = useStyle();\r\n\r\n const [email, setEmail] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [passwordVisibility, setPasswordVisibility] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const login = useSelector((state) => state.userLogin);\r\n const { loading, error, userInfo } = login;\r\n\r\n // FOR SHIPPING PAGE REDIRECT OR HOME //\r\n const redirect = location.search ? location.search.split(\"=\")[1] : \"/\";\r\n\r\n useEffect(() => {\r\n // if user logged in redirect to particular query ('register', 'cart', 'shipping')\r\n if (userInfo) {\r\n history.push(redirect);\r\n }\r\n }, [userInfo, history, redirect]);\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n //DISPATCH LOGIN\r\n dispatch(loginUser(API, email, password));\r\n };\r\n\r\n return (\r\n <>\r\n {redirect === \"shipping\" ? : null}\r\n \r\n \r\n \r\n \r\n \r\n Sign in\r\n \r\n\r\n {/*/////////////////////////////// LOADER /////////////////////////////////////////*/}\r\n {loading && }\r\n\r\n
\r\n \r\n Email\r\n setEmail(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={70}\r\n />\r\n \r\n\r\n \r\n \r\n Password\r\n \r\n setPassword(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n endAdornment={\r\n \r\n setPasswordVisibility(!passwordVisibility)}\r\n onMouseDown={(e) => e.preventDefault()}\r\n edge=\"end\"\r\n >\r\n {passwordVisibility ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n }\r\n labelWidth={70}\r\n />\r\n \r\n\r\n {/*////////////////////// VALIDATION ERROR MESSAGE ////////////////////////*/}\r\n {error && {error}}\r\n\r\n \r\n Sign In\r\n \r\n\r\n \r\n \r\n \r\n Haven't Registered yet?  \r\n \r\n Register\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LoginScreen;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n///////////////////////////////////////// MATERIAL UI ////////////////////////////////\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport { Avatar, Button } from \"@material-ui/core\";\r\n\r\n/////////////////////////////////////// MATERIAL UI ICONS ///////////////////////////////\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport EmailIcon from \"@material-ui/icons/Email\";\r\nimport PeopleIcon from \"@material-ui/icons/People\";\r\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\r\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\r\nimport LockIcon from \"@material-ui/icons/Lock\";\r\n\r\n//////////////////////////////////////// REDUX /////////////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { registerUser } from \"../redux/actions/userAction\";\r\n\r\n/////////////////////////////////////// CUSTOM STYLE /////////////////////////////////////\r\nimport { useStyle } from \"./customStyle/allFormsScreen\";\r\n\r\nimport Message from \"../components/Message\";\r\nimport Loader from \"../components/Loader\";\r\n\r\nconst RegisterScreen = ({ history, location, API }) => {\r\n const classes = useStyle();\r\n\r\n const [email, setEmail] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [name, setName] = useState(\"\");\r\n const [confirmPassword, setConfirmPassword] = useState(\"\");\r\n const [passwordVisibility, setPasswordVisibility] = useState(false);\r\n const [confirmPasswordVisibility, setConfirmPasswordVisibility] = useState(\r\n false\r\n );\r\n const [message, setMessage] = useState(null);\r\n\r\n const dispatch = useDispatch();\r\n const register = useSelector((state) => state.userRegister);\r\n const { loading, error, userInfo } = register;\r\n\r\n const redirect = location.search ? location.search.split(\"=\")[1] : \"/\";\r\n\r\n useEffect(() => {\r\n if (userInfo) {\r\n history.push(redirect);\r\n }\r\n }, [userInfo, history, redirect]);\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n\r\n //DISPATCH REGISTER\r\n if (password === confirmPassword) {\r\n dispatch(registerUser(API, name, email, password));\r\n } else {\r\n setMessage(\"Password does not match\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Sign Up\r\n \r\n\r\n {/*/////////////////////////////// LOADER /////////////////////////////////////////*/}\r\n {loading && }\r\n\r\n
\r\n \r\n Name\r\n setName(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={45}\r\n />\r\n \r\n\r\n \r\n Email\r\n setEmail(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={40}\r\n />\r\n \r\n\r\n \r\n \r\n Password\r\n \r\n setPassword(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n endAdornment={\r\n \r\n setPasswordVisibility(!passwordVisibility)}\r\n onMouseDown={(e) => e.preventDefault()}\r\n edge=\"end\"\r\n >\r\n {passwordVisibility ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n }\r\n labelWidth={70}\r\n />\r\n \r\n\r\n \r\n \r\n Confirm Password\r\n \r\n setConfirmPassword(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n endAdornment={\r\n \r\n \r\n setConfirmPasswordVisibility(!confirmPasswordVisibility)\r\n }\r\n onMouseDown={(e) => e.preventDefault()}\r\n edge=\"end\"\r\n >\r\n {confirmPasswordVisibility ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n }\r\n labelWidth={135}\r\n />\r\n \r\n\r\n {/*////////////////////// VALIDATION ERROR MESSAGE ////////////////////////*/}\r\n\r\n {error && {error}}\r\n {message && {message}}\r\n\r\n \r\n Register\r\n \r\n\r\n \r\n \r\n \r\n Already Registered?  \r\n \r\n Login\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default RegisterScreen;\r\n","import {\r\n CREATE_ORDER_REQUEST,\r\n CREATE_ORDER_SUCCESS,\r\n CREATE_ORDER_FAILED,\r\n ORDER_DETAILS_REQUEST,\r\n ORDER_DETAILS_SUCCESS,\r\n ORDER_DETAILS_FAILED,\r\n ORDER_PAY_REQUEST,\r\n ORDER_PAY_SUCCESS,\r\n ORDER_PAY_FAILED,\r\n LIST_MY_ORDER_REQUEST,\r\n LIST_MY_ORDER_SUCCESS,\r\n LIST_MY_ORDER_FAILED,\r\n} from \"../actionTypes/orderConstants\";\r\n\r\nimport axios from \"axios\";\r\n////////////////////////////// ACTIONS ///////////////////////////////\r\n\r\n///////////// ORDER CREATE ///////////////\r\nconst reqOrder = () => ({\r\n type: CREATE_ORDER_REQUEST,\r\n});\r\n\r\nconst addOrder = (order) => ({\r\n type: CREATE_ORDER_SUCCESS,\r\n payload: order,\r\n});\r\n\r\nconst orderFailed = (error) => ({\r\n type: CREATE_ORDER_FAILED,\r\n payload: error,\r\n});\r\n\r\n///////////// Order Details ///////////////\r\nconst reqOrderDetails = () => ({\r\n type: ORDER_DETAILS_REQUEST,\r\n});\r\n\r\nconst addOrderDetails = (order) => ({\r\n type: ORDER_DETAILS_SUCCESS,\r\n payload: order,\r\n});\r\n\r\nconst orderDetailsFailed = (error) => ({\r\n type: ORDER_DETAILS_FAILED,\r\n payload: error,\r\n});\r\n\r\n// ///////////// PAY Order ///////////////\r\nconst reqPayOrder = () => ({\r\n type: ORDER_PAY_REQUEST,\r\n});\r\n\r\nconst addPayOrder = (order) => ({\r\n type: ORDER_PAY_SUCCESS,\r\n payload: order,\r\n});\r\n\r\nconst payOrderFailed = (error) => ({\r\n type: ORDER_PAY_FAILED,\r\n payload: error,\r\n});\r\n\r\n///////////// MY ORDERS ///////////////\r\nconst reqMyOrders = () => ({\r\n type: LIST_MY_ORDER_REQUEST,\r\n});\r\n\r\nconst addMyOrders = (order) => ({\r\n type: LIST_MY_ORDER_SUCCESS,\r\n payload: order,\r\n});\r\n\r\nconst myOrdersFailed = (error) => ({\r\n type: LIST_MY_ORDER_FAILED,\r\n payload: error,\r\n});\r\n\r\n///////////////////////////// ACTION CREATOR ///////////////////////////\r\n\r\n////////////// ORDER CREATE ///////////////\r\nexport const createOrder = (API, order) => async (dispatch, getState) => {\r\n try {\r\n dispatch(reqOrder());\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.post(`${API}/orders`, order, config);\r\n\r\n dispatch(addOrder(data));\r\n } catch (error) {\r\n orderFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n );\r\n }\r\n};\r\n\r\n////////////// ORDER DETAILS ///////////////\r\nexport const getOrderDetails = (API, id) => async (dispatch, getState) => {\r\n try {\r\n dispatch(reqOrderDetails());\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.get(`${API}/orders/${id}`, config);\r\n\r\n dispatch(addOrderDetails(data));\r\n } catch (error) {\r\n orderDetailsFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n );\r\n }\r\n};\r\n\r\n// ////////////// PAY ORDER AND UPDATE ORDER TO PAID ///////////////\r\nexport const payOrder = (API, orderId, paymentResult) => async (\r\n dispatch,\r\n getState\r\n) => {\r\n try {\r\n dispatch(reqPayOrder());\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.put(\r\n `${API}/orders/${orderId}/payment`,\r\n paymentResult,\r\n config\r\n );\r\n\r\n dispatch(addPayOrder(data));\r\n } catch (error) {\r\n payOrderFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n );\r\n }\r\n};\r\n\r\n////////////// LIST MY ORDERS (PARTICULAR USER) ///////////////\r\nexport const listMyOrders = (API) => async (dispatch, getState) => {\r\n try {\r\n dispatch(reqMyOrders());\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.get(`${API}/orders/myorders`, config);\r\n\r\n dispatch(addMyOrders(data));\r\n } catch (error) {\r\n myOrdersFailed(\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message\r\n );\r\n }\r\n};\r\n","import { makeStyles, withStyles, createStyles } from \"@material-ui/core/styles\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\n\r\nexport const useStyles = makeStyles((theme) => ({\r\n form: {\r\n \"& .MuiTextField-root\": {\r\n margin: theme.spacing(1.4),\r\n width: \"76%\",\r\n },\r\n marginTop: \"1.4rem\",\r\n },\r\n\r\n heading: {\r\n // color: theme.palette.info.main,\r\n color: \"#2071E3\",\r\n fontWeight: \"550\",\r\n },\r\n button: {\r\n background: \"linear-gradient(45deg, #2196F3 30%, #21CBF3 90%)\",\r\n margin: theme.spacing(1.4),\r\n width: \"76%\",\r\n },\r\n\r\n table: {\r\n borderRadius: \".4rem\",\r\n marginTop: \"1.4rem\",\r\n },\r\n details: {\r\n boxShadow:\r\n \"rgba(0, 0, 0, 0.2) 0px 2px 1px -1px, rgba(0, 0, 0, 0.14) 0px 1px 1px 0px, rgba(0, 0, 0, 0.12) 0px 1px 3px 0px\",\r\n \"&:hover\": {\r\n border: \"none\",\r\n backgroundColor: \"#4EABDE\",\r\n color: theme.palette.common.white,\r\n },\r\n },\r\n}));\r\n\r\n///////////////////////// CUSTOM STYLE TextField ///////////////////////////\r\nexport const CssTextField = withStyles({\r\n root: {\r\n \"& label\": {\r\n color: \"green\",\r\n },\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n borderColor: \"green\",\r\n },\r\n },\r\n },\r\n})(TextField);\r\n\r\n///////////////////////// CUSTOM STYLE TABLE CELL ///////////////////////////\r\nexport const StyledTableCell = withStyles((theme) =>\r\n createStyles({\r\n head: {\r\n background: \"#2196F3\",\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 14,\r\n },\r\n })\r\n)(TableCell);\r\n\r\n///////////////////////// CUSTOM STYLE TABLE ROW ///////////////////////////\r\nexport const StyledTableRow = withStyles((theme) =>\r\n createStyles({\r\n root: {\r\n \"&:nth-of-type(odd)\": {\r\n backgroundColor: theme.palette.action.selected,\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n },\r\n })\r\n)(TableRow);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport { Button } from \"react-bootstrap\";\r\n\r\n//////////////////////////////// MATERIAL UI ////////////////////////////////////\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport MaterialButton from \"@material-ui/core/Button\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableContainer from \"@material-ui/core/TableContainer\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport DoneIcon from \"@material-ui/icons/Done\";\r\n\r\n///////////////////////////////// REDUX //////////////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { getUserDetails, updateUserProfile } from \"../redux/actions/userAction\";\r\nimport { listMyOrders } from \"../redux/actions/orderAction\";\r\n\r\n/////////////////////////////////// CUSTOM STYLE ///////////////////////////////\r\nimport {\r\n useStyles,\r\n CssTextField,\r\n StyledTableCell,\r\n StyledTableRow,\r\n} from \"./customStyle/ProfileScreen\";\r\n\r\nimport Message from \"../components/Message\";\r\nimport Loader from \"../components/Loader\";\r\n\r\nconst ProfileScreen = ({ history, API }) => {\r\n const classes = useStyles();\r\n\r\n const [email, setEmail] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [name, setName] = useState(\"\");\r\n const [confirmPassword, setConfirmPassword] = useState(\"\");\r\n const [message, setMessage] = useState(null);\r\n\r\n const dispatch = useDispatch();\r\n\r\n ////////////////////// LOGIN REDUCER ///////////////////\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n ////////////////////// USER PROFILE REDUCER /////////////////\r\n const userDetails = useSelector((state) => state.userDetails);\r\n const { loading, user, error } = userDetails;\r\n\r\n /////////////////// UPDATE USER PROFILE REDUCER ////////////////\r\n const updateProfile = useSelector((state) => state.userUpdateProfile);\r\n const { success } = updateProfile;\r\n\r\n /////////////////// MY ORDERS REDUCER ////////////////\r\n const myOrdersList = useSelector((state) => state.myOrders);\r\n const { loading: loadingOrders, error: errorOrders, orders } = myOrdersList;\r\n\r\n // redirect to login page if not logged in and set name & email field in form\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n } else if (user) {\r\n setName(user.name);\r\n setEmail(user.email);\r\n }\r\n }, [userInfo, user, history]);\r\n\r\n // fetch user details (even after update) and fetch all orders\r\n useEffect(() => {\r\n dispatch(getUserDetails(API, \"profile\"));\r\n dispatch(listMyOrders(API));\r\n }, [dispatch, API]);\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n if (password !== confirmPassword) {\r\n setMessage(\"Password does not match\");\r\n } else {\r\n //DISPATCH UPDATE\r\n dispatch(updateUserProfile(API, { id: user._id, name, email, password }));\r\n }\r\n };\r\n\r\n //////////////////// GO BACK //////////////////////////////////\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n return (\r\n <>\r\n \r\n\r\n \r\n\r\n {/*////////////////////////////////////// GRID ////////////////////////////////////// */}\r\n\r\n \r\n \r\n

PROFILE

\r\n {loading && }\r\n
\r\n setName(e.target.value)}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n />\r\n\r\n setEmail(e.target.value)}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n />\r\n setPassword(e.target.value)}\r\n placeholder=\"Password\"\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n />\r\n setConfirmPassword(e.target.value)}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n />\r\n\r\n {/*////////////////////// VALIDATION ERROR MESSAGE ////////////////////////*/}\r\n\r\n {error && {error}}\r\n {message && {message}}\r\n\r\n {success && (\r\n Profile Updated Successfully\r\n )}\r\n \r\n Update\r\n \r\n \r\n
\r\n\r\n \r\n

MY ORDERS

\r\n {loadingOrders ? (\r\n \r\n ) : errorOrders ? (\r\n {errorOrders}\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n ORDER ID\r\n DATE\r\n TOTAL\r\n PAID\r\n \r\n DELIVERED\r\n \r\n \r\n \r\n \r\n \r\n {orders &&\r\n orders.map((order) => (\r\n \r\n \r\n {order._id}\r\n \r\n \r\n {order.createdAt.substring(0, 10)}\r\n \r\n \r\n {order.totalPrice}\r\n \r\n \r\n {order.isPaid ? (\r\n
\r\n \r\n    \r\n {order.paidAt.substring(0, 10)}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n {order.isDelivered ? (\r\n order.deliveredAt.substring(0, 10)\r\n ) : (\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n DETAILS\r\n \r\n \r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProfileScreen;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n///////////////////////////////////////// MATERIAL UI ////////////////////////////////\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport { Avatar, Button } from \"@material-ui/core\";\r\n\r\n/////////////////////////////////////// MATERIAL UI ICONS ///////////////////////////////\r\nimport LocalShippingIcon from \"@material-ui/icons/LocalShipping\";\r\nimport LocationOnIcon from \"@material-ui/icons/LocationOn\";\r\nimport LocationCityIcon from \"@material-ui/icons/LocationCity\";\r\nimport FiberPinIcon from \"@material-ui/icons/FiberPin\";\r\nimport LanguageIcon from \"@material-ui/icons/Language\";\r\nimport ArrowBackIosIcon from \"@material-ui/icons/ArrowBackIos\";\r\n\r\n//////////////////////////////////////// REDUX /////////////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { addShippingAddress } from \"../redux/actions/cartAction\";\r\n\r\nimport CheckoutStepper from \"../components/CheckoutStepper\";\r\n\r\n/////////////////////////////////////// CUSTOM STYLE /////////////////////////////////////\r\nimport { useStyle } from \"./customStyle/allFormsScreen\";\r\n\r\nconst ShippingScreen = ({ history }) => {\r\n const classes = useStyle();\r\n\r\n //////////////////// REDUX REDUCER ////////////////////\r\n const shippingAdd = useSelector((state) => state.cart);\r\n const { shippingAddress } = shippingAdd;\r\n\r\n //////////////////// SHIPPING ADDRESS STATE (DEFAULT: FROM LOCAL STORAGE) ////////////////////////\r\n const [address, setAddress] = useState(shippingAddress.address);\r\n const [city, setCity] = useState(shippingAddress.city);\r\n const [postalCode, setPostalCode] = useState(shippingAddress.postalCode);\r\n const [country, setCountry] = useState(shippingAddress.country);\r\n\r\n const dispatch = useDispatch();\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n // Redirect to loginScreen on logout\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n }\r\n }, [history, userInfo]);\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n //DISPATCH SHIPPING ADDRESS\r\n dispatch(addShippingAddress({ address, city, postalCode, country }));\r\n history.push(\"/paymentMethod\");\r\n };\r\n\r\n ///////////////////// GO BACK ////////////////////////\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Shipping Address\r\n \r\n\r\n
\r\n \r\n \r\n Address\r\n \r\n setAddress(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={60}\r\n />\r\n \r\n\r\n \r\n City\r\n setCity(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={30}\r\n />\r\n \r\n\r\n \r\n \r\n Postal Code\r\n \r\n setPostalCode(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={90}\r\n />\r\n \r\n\r\n \r\n \r\n Country\r\n \r\n setCountry(e.target.value)}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n labelWidth={58}\r\n />\r\n \r\n\r\n \r\n CONTINUE\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ShippingScreen;\r\n","import React, { useState, useEffect } from \"react\";\r\n\r\n///////////////////////////////////////// MATERIAL UI ////////////////////////////////\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport { Avatar, Button } from \"@material-ui/core\";\r\nimport AccountBalanceIcon from \"@material-ui/icons/AccountBalance\";\r\nimport ArrowBackIosIcon from \"@material-ui/icons/ArrowBackIos\";\r\n\r\nimport CheckoutStepper from \"../components/CheckoutStepper\";\r\n\r\n//////////////////////////////////////// REDUX /////////////////////////////////////\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { addPaymentMethod } from \"../redux/actions/cartAction\";\r\n\r\n/////////////////////////////////////// CUSTOM STYLE /////////////////////////////////////\r\nimport { useStyle } from \"./customStyle/allFormsScreen\";\r\n\r\nconst PaymentMethodScreen = ({ history }) => {\r\n const classes = useStyle();\r\n\r\n //////////////////// REDUX REDUCER of Shipping Address ////////////////////\r\n const shippingAdd = useSelector((state) => state.cart);\r\n const { shippingAddress } = shippingAdd;\r\n\r\n if (!shippingAddress) {\r\n history.push(\"/shipping\");\r\n }\r\n\r\n const [paymentMethod, setPaymentMethod] = useState(\"\");\r\n\r\n const dispatch = useDispatch();\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n // Redirect to loginScreen on logout\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n }\r\n }, [history, userInfo]);\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n ///////////////////////// DISPATCH PAYMENT METHOD and push to /placeorder ////////////////\r\n dispatch(addPaymentMethod(paymentMethod));\r\n history.push(\"/placeorder\");\r\n };\r\n\r\n ///////////////////// GO BACK ////////////////////////\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Payment Method\r\n \r\n\r\n
\r\n \r\n {/* \r\n Select Method\r\n */}\r\n setPaymentMethod(e.target.value)}\r\n >\r\n }\r\n label=\"PayPal\"\r\n />\r\n }\r\n label=\"Stripe\"\r\n />\r\n \r\n \r\n\r\n \r\n CONTINUE\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PaymentMethodScreen;\r\n","import { createStyles, makeStyles } from \"@material-ui/core/styles\";\r\n\r\n// MOBILE BREAKPOINT\r\nconst isMobile = window.innerWidth <= 768;\r\nexport const useStyles = makeStyles((theme) =>\r\n createStyles({\r\n root: {\r\n width: \"100%\",\r\n maxWidth: \"36ch\",\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n inline: {\r\n display: \"inline\",\r\n },\r\n\r\n divider: {\r\n marginBottom: \"0.5rem\",\r\n marginTop: \"0.3rem\",\r\n },\r\n avatar: {\r\n width: isMobile ? \"3.9rem\" : \"6.5rem\",\r\n height: isMobile ? \"3.9rem\" : \"6.5rem\",\r\n marginRight: \"1rem\",\r\n },\r\n paper: {\r\n marginBottom: \"1.8rem\",\r\n padding: \"0.4rem 1rem 1rem 0\",\r\n },\r\n list_item: {\r\n paddingLeft: isMobile ? \"1.2rem\" : \"3.4rem\",\r\n paddingRight: \"1rem\",\r\n paddingBottom: \"1.4rem\",\r\n },\r\n order_summary: {\r\n fontSize: \"1.6rem\",\r\n margin: \"auto\",\r\n },\r\n\r\n order_link: {\r\n textDecoration: \"none\",\r\n },\r\n\r\n message: {\r\n paddingLeft: \"2rem\",\r\n marginTop: \"0.8rem\",\r\n width: \"100%\",\r\n },\r\n\r\n shipping: {\r\n marginRight: isMobile ? \"1.8rem\" : \"2.8rem\",\r\n },\r\n\r\n email: {\r\n color: \"#000\",\r\n },\r\n\r\n qty: {\r\n fontSize: \"1.3rem\",\r\n fontWeight: \"450\",\r\n },\r\n })\r\n);\r\n","import React, { useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n/////////////////////////// MATERIAL UI ////////////////////////////////\r\n\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nimport ErrMess from \"../components/Message\";\r\n\r\n/////////////////////////// REDUX ///////////////////////////////\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { removeFromCart } from \"../redux/actions/cartAction\";\r\nimport { createOrder } from \"../redux/actions/orderAction\";\r\nimport { CREATE_ORDER_RESET } from \"../redux/actionTypes/orderConstants\";\r\n\r\nimport CheckoutStepper from \"../components/CheckoutStepper\";\r\nimport { Button } from \"react-bootstrap\";\r\nimport { Container } from \"@material-ui/core\";\r\n\r\n/////////////////////////// CUSTOM STYLES ///////////////////////////////\r\nimport { useStyles } from \"./customStyle/PlaceOrderScreen\";\r\n\r\nconst PlaceOrderScreen = ({ history, API, isMobile }) => {\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n // cart details\r\n const cart = useSelector((state) => state.cart);\r\n const { cartItems, shippingAddress, paymentMethod } = cart;\r\n\r\n ///////////////////// Items Price ////////////////////\r\n cart.itemsPrice = cartItems\r\n .reduce((acc, item) => acc + item.qty * item.price, 0)\r\n .toFixed(2);\r\n\r\n //////////////////// Shipping Price /////////////////////////////\r\n cart.shippingPrice = (cart.itemsPrice > 150 ? 100 : 0).toFixed(2);\r\n\r\n ////////////////////// Tax Price /////////////////////////////\r\n cart.taxPrice = ((cart.itemsPrice * 25) / 100).toFixed(2);\r\n\r\n ///////////////////// TOTAL PRICE /////////////////////////////\r\n cart.totalPrice = (\r\n Number(cart.itemsPrice) +\r\n Number(cart.shippingPrice) +\r\n Number(cart.taxPrice)\r\n ).toFixed(2);\r\n\r\n ///////////////// REMOVE ORDER FROM CART //////////////\r\n const removeCartHandler = (id) => {\r\n dispatch(removeFromCart(id));\r\n };\r\n\r\n const placeOrder = useSelector((state) => state.order);\r\n const { order, success } = placeOrder;\r\n\r\n ////////////////// PLACE ORDER //////////////////////\r\n const placeOrderHandler = () => {\r\n dispatch(\r\n createOrder(API, {\r\n orderItems: cartItems,\r\n shippingAddress: shippingAddress,\r\n paymentMethod: paymentMethod,\r\n itemsPrice: cart.itemsPrice,\r\n shippingPrice: cart.shippingPrice,\r\n taxPrice: cart.taxPrice,\r\n totalPrice: cart.totalPrice,\r\n })\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n }\r\n if (success) {\r\n history.push(`/orders/${order._id}`);\r\n dispatch({ type: CREATE_ORDER_RESET });\r\n }\r\n }, [dispatch, history, order, success, userInfo, API]);\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n {/*///////////////////// LEFT SIDE ///////////////////////////////////*/}\r\n \r\n \r\n \r\n \r\n \r\n SHIPPING DETAILS\r\n \r\n \r\n \r\n \r\n {shippingAddress.address},\r\n
\r\n {shippingAddress.city},\r\n
\r\n {shippingAddress.country},\r\n
\r\n {shippingAddress.postalCode}\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n PAYMENT METHOD\r\n \r\n \r\n \r\n \r\n {paymentMethod}\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n ORDER DETAILS\r\n \r\n \r\n \r\n\r\n {!cartItems.length ? (\r\n \r\n \r\n Your Cart Is Empty Keep Shopping\r\n \r\n \r\n ) : (\r\n \r\n {cartItems.map((item, index) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.qty} x {item.price} ={\" \"}\r\n {(item.qty * item.price).toFixed(2)}\r\n \r\n }\r\n />\r\n \r\n \r\n removeCartHandler(item.product)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n\r\n {/*///////////////////// RIGHT SIDE ///////////////////////////////////*/}\r\n \r\n \r\n \r\n \r\n \r\n ORDER SUMMARY\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Items\r\n \r\n \r\n \r\n \r\n ${cart.itemsPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Shipping\r\n \r\n \r\n \r\n \r\n ${cart.shippingPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Tax\r\n \r\n \r\n \r\n \r\n ${cart.taxPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n \r\n \r\n ${cart.totalPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n PLACE ORDER\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PlaceOrderScreen;\r\n","import { Button } from \"@material-ui/core\";\r\nimport React, { useEffect } from \"react\";\r\nimport StripeCheckoutButton from \"react-stripe-checkout\";\r\n\r\n// REDUX\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { payOrder } from \"../redux/actions/orderAction\";\r\nimport { emptyCart } from \"../redux/actions/cartAction\";\r\nimport { ORDER_PAY_RESET } from \"../redux/actionTypes/orderConstants\";\r\n\r\nimport Loader from \"./Loader\";\r\nimport axios from \"axios\";\r\n\r\nexport const StripeCheckout = ({ orderId, API }) => {\r\n const dispatch = useDispatch();\r\n\r\n // Order details\r\n const orderDetails = useSelector((state) => state.orderDetails);\r\n const { orders } = orderDetails;\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n // Updated Order after paid\r\n const orderPay = useSelector((state) => state.orderPay);\r\n const { loading: loadingPay, success: successPay } = orderPay;\r\n\r\n // if paid successfully reset\r\n useEffect(() => {\r\n if (successPay) {\r\n dispatch({ type: ORDER_PAY_RESET });\r\n // empty cart items\r\n dispatch(emptyCart());\r\n }\r\n }, [dispatch, successPay]);\r\n\r\n // make payment through stripe by post request data to backend\r\n const makePayment = async (token) => {\r\n console.log(token);\r\n try {\r\n const { data } = await axios.post(\r\n `${API}/payment/stripe`,\r\n { token, orderId },\r\n {\r\n \"Content-Type\": \"application/json\",\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n }\r\n );\r\n console.log(data);\r\n if (data) {\r\n dispatch(payOrder(API, orderId, data));\r\n alert(\r\n \"Transaction completed by \" + orders.user.name + \" through stripe\"\r\n );\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {loadingPay ? (\r\n \r\n ) : (\r\n \r\n \r\n Pay With Stripe\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { PayPalButton } from \"react-paypal-button-v2\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { payOrder } from \"../redux/actions/orderAction\";\r\nimport { emptyCart } from \"../redux/actions/cartAction\";\r\nimport { ORDER_PAY_RESET } from \"../redux/actionTypes/orderConstants\";\r\n\r\nimport axios from \"axios\";\r\nimport Loader from \"./Loader\";\r\n\r\nexport const PayPalCheckout = ({ orderId, API }) => {\r\n const dispatch = useDispatch();\r\n\r\n const orderDetails = useSelector((state) => state.orderDetails);\r\n const { orders } = orderDetails;\r\n\r\n // PAYPAL PAYMENT INTEGRATION\r\n const orderPay = useSelector((state) => state.orderPay);\r\n const { loading: loadingPay, success: successPay } = orderPay;\r\n\r\n const [sdkReady, setSdkReady] = useState(false);\r\n\r\n //paypal script\r\n const addPayPalScript = async () => {\r\n const { data: clientId } = await axios.get(`${API}/config/paypal`);\r\n console.log(clientId);\r\n const script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.src = `https://www.paypal.com/sdk/js?client-id=${clientId}`;\r\n script.async = true;\r\n script.onload = () => {\r\n setSdkReady(true);\r\n };\r\n document.body.appendChild(script);\r\n };\r\n\r\n // if paid successfully reset order_pay and add paypal script if order not paid and paypal is configured previously\r\n useEffect(() => {\r\n if (successPay) {\r\n dispatch({ type: ORDER_PAY_RESET });\r\n //empty cart\r\n dispatch(emptyCart());\r\n } else if (orders && !orders.isPaid) {\r\n if (!window.paypal) {\r\n addPayPalScript();\r\n } else {\r\n setSdkReady(true);\r\n }\r\n }\r\n }, [dispatch, orders, successPay]);\r\n\r\n // On payment successfully completed\r\n const successPaymentHandler = (paymentResult) => {\r\n console.log(paymentResult);\r\n dispatch(payOrder(API, orderId, paymentResult));\r\n // alert(\"Transaction completed by \" + paymentResult.payer.name.given_name);\r\n alert(\"Transaction completed by \" + orders.user.name + \" through paypal\");\r\n };\r\n\r\n // Error handling in payment\r\n const errorPaymentHandler = (err) => {\r\n console.log(err);\r\n alert(err);\r\n };\r\n\r\n // On cancel of payment\r\n const cancelPaymentHandler = (msg) => {\r\n alert(\"Order \" + msg.orderID + \" Cancelled\");\r\n };\r\n\r\n return (\r\n <>\r\n {loadingPay ? (\r\n \r\n ) : !sdkReady ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nimport { Grid } from \"@material-ui/core\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\n\r\nconst OrderScreenSkeleton = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default OrderScreenSkeleton;\r\n","import React, { useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n/////////////////////////// MATERIAL UI ////////////////////////////////\r\n\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Container } from \"@material-ui/core\";\r\n\r\n////////////////////////////// / Components ////////////////////////\r\nimport Message from \"../components/Message\";\r\nimport { StripeCheckout } from \"../components/StripeCheckout\";\r\nimport { PayPalCheckout } from \"../components/PayPalCheckout\";\r\n\r\n/////////////////////////// REDUX ///////////////////////////////\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getOrderDetails } from \"../redux/actions/orderAction\";\r\n\r\n/////////////////////////// CUSTOM STYLES ///////////////////////////////\r\nimport { useStyles } from \"./customStyle/PlaceOrderScreen\";\r\nimport OrderScreenSkeleton from \"./skeletons/OrderScreenSkeleton\";\r\n\r\nconst OrderScreen = ({ match, history, API, isMobile }) => {\r\n const classes = useStyles();\r\n const orderId = match.params.id;\r\n\r\n const dispatch = useDispatch();\r\n\r\n // User Login Credentials\r\n const login = useSelector((state) => state.userLogin);\r\n const { userInfo } = login;\r\n\r\n // Order details\r\n const orderDetails = useSelector((state) => state.orderDetails);\r\n const { loading, orders, error } = orderDetails;\r\n\r\n // PAYPAL PAYMENT INTEGRATION\r\n const orderPay = useSelector((state) => state.orderPay);\r\n const { success: successPay } = orderPay;\r\n\r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\");\r\n } else {\r\n dispatch(getOrderDetails(API, orderId));\r\n }\r\n }, [dispatch, orderId, successPay, userInfo, history, API]);\r\n\r\n return loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n <>\r\n
\r\n \r\n \r\n ORDER\r\n {\" \"}\r\n {orders._id}\r\n \r\n
\r\n
\r\n \r\n {/*///////////////////// LEFT SIDE ///////////////////////////////////*/}\r\n \r\n \r\n \r\n \r\n \r\n SHIPPING DETAILS\r\n \r\n \r\n \r\n\r\n \r\n \r\n Name: \r\n {orders.user.name}\r\n
\r\n
\r\n Email: \r\n \r\n {orders.user.email}\r\n \r\n
\r\n
\r\n Address: \r\n {orders.shippingAddress.address}\r\n
\r\n \r\n {orders.shippingAddress.city}\r\n \r\n\r\n
\r\n \r\n {orders.shippingAddress.country},\r\n \r\n\r\n
\r\n \r\n {orders.shippingAddress.postalCode}\r\n \r\n
\r\n
\r\n
\r\n {orders.isDelivered ? (\r\n \r\n Delivered at {orders.deliveredAt}\r\n \r\n ) : (\r\n Not Delivered\r\n )}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n PAYMENT METHOD\r\n \r\n \r\n \r\n\r\n \r\n \r\n {orders.paymentMethod}\r\n \r\n \r\n
\r\n {orders.isPaid ? (\r\n \r\n Paid on {orders.paidAt.substring(0, 10)}\r\n \r\n ) : (\r\n Not Paid\r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n ORDER DETAILS\r\n \r\n \r\n \r\n\r\n {!orders.orderItems.length ? (\r\n \r\n \r\n No order Keep Shopping\r\n \r\n \r\n ) : (\r\n \r\n {orders.orderItems.map((item, index) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.qty} x {item.price} ={\" \"}\r\n {(item.qty * item.price).toFixed(2)}\r\n \r\n }\r\n />\r\n \r\n {!isMobile ? (\r\n \r\n Qty: {item.qty}\r\n \r\n ) : null}\r\n \r\n \r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n\r\n {/*///////////////////// RIGHT SIDE ///////////////////////////////////*/}\r\n \r\n \r\n \r\n \r\n \r\n ORDER SUMMARY\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Items Price\r\n \r\n \r\n \r\n \r\n ${orders.itemsPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Delivery Charge\r\n \r\n \r\n \r\n \r\n ${orders.shippingPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Tax Price\r\n \r\n \r\n \r\n \r\n ${orders.taxPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Total Price\r\n \r\n \r\n \r\n \r\n ${orders.totalPrice}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n {/*/// PAYPAL BUTTON or STRIPE BUTTON showed if order is not paid ///*/}\r\n {!orders.isPaid ? (\r\n \r\n \r\n {orders.paymentMethod === \"PayPal\" ? (\r\n \r\n ) : orders.paymentMethod === \"Stripe\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n ) : (\r\n Payment Done Successfully\r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default OrderScreen;\r\n","import { BrowserRouter as Router, Route } from \"react-router-dom\";\r\nimport Header from \"./components/Header\";\r\nimport Footer from \"./components/Footer\";\r\nimport Home from \"./screen/HomeScreen\";\r\nimport \"./index.css\";\r\nimport ProductScreen from \"./screen/ProductScreen\";\r\nimport CartScreen from \"./screen/CartScreen\";\r\nimport LoginScreen from \"./screen/LoginScreen\";\r\nimport RegisterScreen from \"./screen/RegisterScreen\";\r\nimport ProfileScreen from \"./screen/ProfileScreen\";\r\nimport ShippingScreen from \"./screen/ShippingScreen\";\r\nimport PaymentMethod from \"./screen/PaymentMethod\";\r\nimport PlaceOrderScreen from \"./screen/PlaceOrderScreen\";\r\nimport OrderScreen from \"./screen/OrderScreen\";\r\n\r\nfunction App() {\r\n // MOBILE BREAKPOINT\r\n const isMobile = window.innerWidth <= 768;\r\n const API = process.env.REACT_APP_API;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n exact\r\n />\r\n
\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport store from \"./redux/store\";\r\n\r\nimport \"./index.css\";\r\nimport \"./bootstrap.min.css\";\r\n\r\nimport App from \"./App\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""} \ No newline at end of file