-
Notifications
You must be signed in to change notification settings - Fork 1
/
.eslintcache
1 lines (1 loc) · 45.1 KB
/
.eslintcache
1
[{"C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\index.js":"1","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\App.js":"2","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Header.js":"3","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Home.js":"4","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Product.js":"5","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Checkout.js":"6","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Subtotal.js":"7","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\StateProvider.js":"8","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\reducer.js":"9","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\CheckoutProduct.js":"10","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Login.js":"11","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\firebase.js":"12","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\serviceWorker.js":"13","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Payment.js":"14","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Orders.js":"15","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\axios.js":"16","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Order.js":"17","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\index.js":"18","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\StateProvider.js":"19","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\serviceWorker.js":"20","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\reducer.js":"21","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\App.js":"22","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Login.js":"23","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Header.js":"24","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Home.js":"25","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Checkout.js":"26","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Footer.js":"27","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\firebase.js":"28","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Orders.js":"29","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Payment.js":"30","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\CheckoutProduct.js":"31","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Subtotal.js":"32","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Order.js":"33","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Product.js":"34","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\axios.js":"35","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\components\\SliderData.js":"36","C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\components\\Slider.js":"37","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\index.js":"38","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\reducer.js":"39","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\serviceWorker.js":"40","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\App.js":"41","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\StateProvider.js":"42","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Checkout.js":"43","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Home.js":"44","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Orders.js":"45","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Login.js":"46","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Payment.js":"47","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Footer.js":"48","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\firebase.js":"49","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Header.js":"50","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Product.js":"51","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Order.js":"52","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\axios.js":"53","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\CheckoutProduct.js":"54","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Subtotal.js":"55","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\components\\Slider.js":"56","C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\components\\SliderData.js":"57"},{"size":713,"mtime":1608163340523,"results":"58","hashOfConfig":"59"},{"size":2061,"mtime":1608371262994,"results":"60","hashOfConfig":"59"},{"size":2006,"mtime":1608375566350,"results":"61","hashOfConfig":"59"},{"size":4613,"mtime":1608406278348,"results":"62","hashOfConfig":"59"},{"size":1054,"mtime":1608375481928,"results":"63","hashOfConfig":"59"},{"size":1097,"mtime":1608163340468,"results":"64","hashOfConfig":"59"},{"size":1115,"mtime":1608163340521,"results":"65","hashOfConfig":"59"},{"size":487,"mtime":1608163340520,"results":"66","hashOfConfig":"59"},{"size":1119,"mtime":1608163340524,"results":"67","hashOfConfig":"59"},{"size":1305,"mtime":1608163340469,"results":"68","hashOfConfig":"59"},{"size":2262,"mtime":1608163340516,"results":"69","hashOfConfig":"59"},{"size":590,"mtime":1608408844075,"results":"70","hashOfConfig":"59"},{"size":5227,"mtime":1608163340524,"results":"71","hashOfConfig":"59"},{"size":6085,"mtime":1608372125607,"results":"72","hashOfConfig":"59"},{"size":1036,"mtime":1608163340518,"results":"73","hashOfConfig":"59"},{"size":273,"mtime":1608163340522,"results":"74","hashOfConfig":"59"},{"size":1247,"mtime":1608163340517,"results":"75","hashOfConfig":"59"},{"size":713,"mtime":1608163340523,"results":"76","hashOfConfig":"77"},{"size":487,"mtime":1608163340520,"results":"78","hashOfConfig":"77"},{"size":5227,"mtime":1608163340524,"results":"79","hashOfConfig":"77"},{"size":1119,"mtime":1608163340524,"results":"80","hashOfConfig":"77"},{"size":2061,"mtime":1608371262994,"results":"81","hashOfConfig":"77"},{"size":2262,"mtime":1608163340516,"results":"82","hashOfConfig":"77"},{"size":2093,"mtime":1617305020802,"results":"83","hashOfConfig":"77"},{"size":5026,"mtime":1617445887544,"results":"84","hashOfConfig":"77"},{"size":1097,"mtime":1608163340468,"results":"85","hashOfConfig":"77"},{"size":1718,"mtime":1617274960523,"results":"86","hashOfConfig":"77"},{"size":590,"mtime":1608408844075,"results":"87","hashOfConfig":"77"},{"size":1036,"mtime":1608163340518,"results":"88","hashOfConfig":"77"},{"size":6085,"mtime":1608372125607,"results":"89","hashOfConfig":"77"},{"size":1305,"mtime":1608163340469,"results":"90","hashOfConfig":"77"},{"size":1115,"mtime":1608163340521,"results":"91","hashOfConfig":"77"},{"size":1247,"mtime":1608163340517,"results":"92","hashOfConfig":"77"},{"size":1054,"mtime":1617442265813,"results":"93","hashOfConfig":"77"},{"size":273,"mtime":1608163340522,"results":"94","hashOfConfig":"77"},{"size":899,"mtime":1617445755833,"results":"95","hashOfConfig":"77"},{"size":1169,"mtime":1617403380548,"results":"96","hashOfConfig":"77"},{"size":713,"mtime":1608163340523,"results":"97","hashOfConfig":"98"},{"size":1119,"mtime":1608163340524,"results":"99","hashOfConfig":"98"},{"size":5227,"mtime":1608163340524,"results":"100","hashOfConfig":"98"},{"size":2061,"mtime":1608371262994,"results":"101","hashOfConfig":"98"},{"size":487,"mtime":1608163340520,"results":"102","hashOfConfig":"98"},{"size":1097,"mtime":1608163340468,"results":"103","hashOfConfig":"98"},{"size":5026,"mtime":1617445887544,"results":"104","hashOfConfig":"98"},{"size":1036,"mtime":1608163340518,"results":"105","hashOfConfig":"98"},{"size":2262,"mtime":1608163340516,"results":"106","hashOfConfig":"98"},{"size":6085,"mtime":1608372125607,"results":"107","hashOfConfig":"98"},{"size":1718,"mtime":1617274960523,"results":"108","hashOfConfig":"98"},{"size":590,"mtime":1608408844075,"results":"109","hashOfConfig":"98"},{"size":2064,"mtime":1618143770109,"results":"110","hashOfConfig":"98"},{"size":1054,"mtime":1617442265813,"results":"111","hashOfConfig":"98"},{"size":1247,"mtime":1608163340517,"results":"112","hashOfConfig":"98"},{"size":273,"mtime":1608163340522,"results":"113","hashOfConfig":"98"},{"size":1305,"mtime":1608163340469,"results":"114","hashOfConfig":"98"},{"size":1115,"mtime":1608163340521,"results":"115","hashOfConfig":"98"},{"size":1169,"mtime":1617403380548,"results":"116","hashOfConfig":"98"},{"size":897,"mtime":1618169203963,"results":"117","hashOfConfig":"98"},{"filePath":"118","messages":"119","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},"1ncxc0r",{"filePath":"121","messages":"122","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"123","usedDeprecatedRules":"120"},{"filePath":"124","messages":"125","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"126","usedDeprecatedRules":"120"},{"filePath":"127","messages":"128","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"129","messages":"130","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"131","usedDeprecatedRules":"120"},{"filePath":"132","messages":"133","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"134","usedDeprecatedRules":"120"},{"filePath":"135","messages":"136","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"137","usedDeprecatedRules":"138"},{"filePath":"139","messages":"140","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"141","messages":"142","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"143","messages":"144","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"145","usedDeprecatedRules":"120"},{"filePath":"146","messages":"147","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"148","usedDeprecatedRules":"120"},{"filePath":"149","messages":"150","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"151","messages":"152","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"153","messages":"154","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"155","usedDeprecatedRules":"120"},{"filePath":"156","messages":"157","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"158","usedDeprecatedRules":"120"},{"filePath":"159","messages":"160","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"161","messages":"162","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"120"},{"filePath":"163","messages":"164","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"ybchfx",{"filePath":"165","messages":"166","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"167","messages":"168","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"169","messages":"170","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"171","messages":"172","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"173","messages":"174","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"175","messages":"176","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"177","messages":"178","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"179","messages":"180","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"181","messages":"182","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"183","messages":"184","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"185","messages":"186","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"187","messages":"188","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"189","messages":"190","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"191","messages":"192","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"193","messages":"194","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"195","messages":"196","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"197","messages":"198","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"199","messages":"200","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"201","messages":"202","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"203","messages":"204","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1845kbo",{"filePath":"205","messages":"206","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"207","messages":"208","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"209","messages":"210","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"211","messages":"212","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"213","messages":"214","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"215","messages":"216","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"217","messages":"218","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"219","messages":"220","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"221","messages":"222","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"223","messages":"224","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"225","messages":"226","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"227","messages":"228","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"229","messages":"230","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"231","messages":"232","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"233","messages":"234","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"235","messages":"236","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"237","messages":"238","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"239","messages":"240","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"241","messages":"242","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\index.js",[],["243","244"],"C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\App.js",["245","246"],"import React, { useEffect } from \"react\";\r\nimport \"./App.css\";\r\nimport Header from \"./Header\";\r\nimport Home from \"./Home\";\r\nimport { BrowserRouter as Router, Switch, Route } from \"react-router-dom\";\r\nimport Checkout from \"./Checkout\";\r\nimport Login from \"./Login\";\r\nimport Payment from \"./Payment\";\r\nimport Orders from \"./Orders\";\r\nimport Footer from \"./Footer\";\r\nimport { auth } from \"./firebase\";\r\nimport { useStateValue } from \"./StateProvider\";\r\nimport { loadStripe } from \"@stripe/stripe-js\";\r\nimport { Elements } from \"@stripe/react-stripe-js\";\r\n\r\nconst promise = loadStripe(\r\n \"pk_test_51HPvU9DFg5koCdLGJJbNo60QAU99BejacsvnKvT8xnCu1wFLCuQP3WBArscK3RvSQmSIB3N0Pbsc7TtbQiJ1vaOi00X9sIbazL\"\r\n);\r\n\r\nfunction App() {\r\n const [{}, dispatch] = useStateValue();\r\n\r\n useEffect(() => {\r\n // will only run once when the app component loads...\r\n\r\n auth.onAuthStateChanged((authUser) => {\r\n console.log(\"THE USER IS >>> \", authUser);\r\n\r\n if (authUser) {\r\n // the user just logged in / the user was logged in\r\n\r\n dispatch({\r\n type: \"SET_USER\",\r\n user: authUser,\r\n });\r\n } else {\r\n // the user is logged out\r\n dispatch({\r\n type: \"SET_USER\",\r\n user: null,\r\n });\r\n }\r\n });\r\n }, []);\r\n\r\n return (\r\n <Router>\r\n <div className=\"app\">\r\n <Switch>\r\n <Route path=\"/orders\">\r\n <Header />\r\n <Orders />\r\n <Footer />\r\n </Route>\r\n <Route path=\"/login\">\r\n <Login />\r\n </Route>\r\n <Route path=\"/checkout\">\r\n <Header />\r\n <Checkout />\r\n <Footer />\r\n </Route>\r\n <Route path=\"/payment\">\r\n <Header />\r\n <Elements stripe={promise}>\r\n <Payment />\r\n </Elements>\r\n </Route>\r\n <Route path=\"/\">\r\n <Header />\r\n <Home />\r\n <Footer />\r\n </Route>\r\n </Switch>\r\n </div>\r\n </Router>\r\n );\r\n}\r\n\r\nexport default App;\r\n","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Header.js",["247","248"],"import React from \"react\";\r\nimport \"./Header.css\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ShoppingCart from \"@material-ui/icons/ShoppingCart\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useStateValue } from \"./StateProvider\";\r\nimport { auth } from \"./firebase\";\r\n\r\nfunction Header() {\r\n const [{ basket, user }, dispatch] = useStateValue();\r\n\r\n const handleAuthenticaton = () => {\r\n if (user) {\r\n auth.signOut();\r\n }\r\n }\r\n\r\n return (\r\n <div className=\"header\">\r\n <Link to=\"/\">\r\n <img\r\n className=\"header__logo\"\r\n src=\"http://pngimg.com/uploads/amazon/amazon_PNG11.png\"\r\n />\r\n </Link>\r\n\r\n <div className=\"header__search\">\r\n <input className=\"header__searchInput\" type=\"text\" />\r\n <SearchIcon className=\"header__searchIcon\" />\r\n </div>\r\n\r\n <div className=\"header__nav\">\r\n <Link to={!user && '/login'}>\r\n <div onClick={handleAuthenticaton} className=\"header__option\">\r\n <span className=\"header__optionLineOne\">Hello {!user ? 'Guest' : user.email}</span>\r\n <span className=\"header__optionLineTwo\">{user ? 'Sign Out' : 'Sign In'}</span>\r\n </div>\r\n </Link>\r\n\r\n <Link to='/orders'>\r\n <div className=\"header__option\">\r\n <span className=\"header__optionLineOne\">Returns</span>\r\n <span className=\"header__optionLineTwo\">& Orders</span>\r\n </div>\r\n </Link>\r\n \r\n\r\n <div className=\"header__option\">\r\n <span className=\"header__optionLineOne\">Your</span>\r\n <span className=\"header__optionLineTwo\">Prime</span>\r\n </div>\r\n\r\n <Link to=\"/checkout\">\r\n <div className=\"header__optionBasket\">\r\n <ShoppingCart />\r\n <span className=\"header__optionLineTwo header__basketCount\">\r\n {basket?.length}\r\n </span>\r\n </div>\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Header;\r\n","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Home.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Product.js",["249"],"import React from \"react\";\r\nimport \"./Product.css\";\r\nimport { useStateValue } from \"./StateProvider\";\r\n\r\nfunction Product({ id, title, image, price, rating }) {\r\n const [{ basket }, dispatch] = useStateValue();\r\n\r\n const addToBasket = () => {\r\n // dispatch the item into the data layer\r\n dispatch({\r\n type: \"ADD_TO_BASKET\",\r\n item: {\r\n id: id,\r\n title: title,\r\n image: image,\r\n price: price,\r\n rating: rating,\r\n },\r\n });\r\n };\r\n\r\n return (\r\n <div className=\"product\">\r\n <div className=\"product__info\">\r\n <p>{title}</p>\r\n <p className=\"product__price\">\r\n <small>$</small>\r\n <strong>{price}</strong>\r\n </p>\r\n <div className=\"product__rating\">\r\n {Array(rating)\r\n .fill()\r\n .map((_, i) => (\r\n <p>⭐</p>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n <img src={image} alt=\"\" />\r\n\r\n <button onClick={addToBasket}>Add to Basket</button>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Product;\r\n","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Checkout.js",["250"],"import React from \"react\";\r\nimport \"./Checkout.css\";\r\nimport Subtotal from \"./Subtotal\";\r\nimport { useStateValue } from \"./StateProvider\";\r\nimport CheckoutProduct from \"./CheckoutProduct\";\r\n\r\nfunction Checkout() {\r\n const [{ basket, user }, dispatch] = useStateValue();\r\n\r\n return (\r\n <div className=\"checkout\">\r\n <div className=\"checkout__left\">\r\n <img\r\n className=\"checkout__ad\"\r\n src=\"https://images-na.ssl-images-amazon.com/images/G/02/UK_CCMP/TM/OCC_Amazon1._CB423492668_.jpg\"\r\n alt=\"\"\r\n />\r\n\r\n <div>\r\n <h3>Hello, {user?.email}</h3>\r\n <h2 className=\"checkout__title\">Your shopping Basket</h2>\r\n\r\n {basket.map(item => (\r\n <CheckoutProduct\r\n id={item.id}\r\n title={item.title}\r\n image={item.image}\r\n price={item.price}\r\n rating={item.rating}\r\n />\r\n ))}\r\n\r\n </div>\r\n </div>\r\n\r\n <div className=\"checkout__right\">\r\n <Subtotal />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Checkout;\r\n","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Subtotal.js",["251"],"import React from \"react\";\r\nimport \"./Subtotal.css\";\r\nimport CurrencyFormat from \"react-currency-format\";\r\nimport { useStateValue } from \"./StateProvider\";\r\nimport { getBasketTotal } from \"./reducer\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nfunction Subtotal() {\r\n const history = useHistory();\r\n const [{ basket }, dispatch] = useStateValue();\r\n\r\n return (\r\n <div className=\"subtotal\">\r\n <CurrencyFormat\r\n renderText={(value) => (\r\n <>\r\n <p>\r\n {/* Part of the homework */}\r\n Subtotal ({basket.length} items): <strong>{value}</strong>\r\n </p>\r\n <small className=\"subtotal__gift\">\r\n <input type=\"checkbox\" /> This order contains a gift\r\n </small>\r\n </>\r\n )}\r\n decimalScale={2}\r\n value={getBasketTotal(basket)} // Part of the homework\r\n displayType={\"text\"}\r\n thousandSeparator={true}\r\n prefix={\"$\"}\r\n />\r\n\r\n <button onClick={e => history.push('/payment')}>Proceed to Checkout</button>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Subtotal;\r\n",["252","253"],"C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\StateProvider.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\reducer.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\CheckoutProduct.js",["254","255"],"import React from 'react';\r\nimport './CheckoutProduct.css'\r\nimport { useStateValue } from \"./StateProvider\";\r\n\r\nfunction CheckoutProduct({ id, image, title, price, rating, hideButton }) {\r\n const [{ basket }, dispatch] = useStateValue();\r\n\r\n const removeFromBasket = () => {\r\n // remove the item from the basket\r\n dispatch({\r\n type: 'REMOVE_FROM_BASKET',\r\n id: id,\r\n })\r\n }\r\n\r\n return (\r\n <div className='checkoutProduct'>\r\n <img className='checkoutProduct__image' src={image} />\r\n\r\n <div className='checkoutProduct__info'>\r\n <p className='checkoutProduct__title'>{title}</p>\r\n <p className=\"checkoutProduct__price\">\r\n <small>$</small>\r\n <strong>{price}</strong>\r\n </p>\r\n <div className=\"checkoutProduct__rating\">\r\n {Array(rating)\r\n .fill()\r\n .map((_, i) => (\r\n <p>🌟</p>\r\n ))}\r\n </div>\r\n {!hideButton && (\r\n <button onClick={removeFromBasket}>Remove from Basket</button>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default CheckoutProduct\r\n","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Login.js",["256"],"import React, { useState } from 'react';\r\nimport './Login.css'\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { auth } from \"./firebase\";\r\n\r\nfunction Login() {\r\n const history = useHistory();\r\n const [email, setEmail] = useState('');\r\n const [password, setPassword] = useState('');\r\n\r\n const signIn = e => {\r\n e.preventDefault();\r\n\r\n auth\r\n .signInWithEmailAndPassword(email, password)\r\n .then(auth => {\r\n history.push('/')\r\n })\r\n .catch(error => alert(error.message))\r\n }\r\n\r\n const register = e => {\r\n e.preventDefault();\r\n\r\n auth\r\n .createUserWithEmailAndPassword(email, password)\r\n .then((auth) => {\r\n // it successfully created a new user with email and password\r\n if (auth) {\r\n history.push('/')\r\n }\r\n })\r\n .catch(error => alert(error.message))\r\n }\r\n\r\n return (\r\n <div className='login'>\r\n <Link to='/'>\r\n <img\r\n className=\"login__logo\"\r\n src='https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Amazon_logo.svg/1024px-Amazon_logo.svg.png' \r\n />\r\n </Link>\r\n\r\n <div className='login__container'>\r\n <h1>Sign-in</h1>\r\n\r\n <form>\r\n <h5>E-mail</h5>\r\n <input type='text' value={email} onChange={e => setEmail(e.target.value)} />\r\n\r\n <h5>Password</h5>\r\n <input type='password' value={password} onChange={e => setPassword(e.target.value)} />\r\n\r\n <button type='submit' onClick={signIn} className='login__signInButton'>Sign In</button>\r\n </form>\r\n\r\n <p>\r\n By signing-in you agree to the AMAZON FAKE CLONE Conditions of Use & Sale. Please\r\n see our Privacy Notice, our Cookies Notice and our Interest-Based Ads Notice.\r\n </p>\r\n\r\n <button onClick={register} className='login__registerButton'>Create your Amazon Account</button>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login\r\n","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\firebase.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\serviceWorker.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Payment.js",["257"],"import React, { useState, useEffect } from 'react';\r\nimport './Payment.css';\r\nimport { useStateValue } from \"./StateProvider\";\r\nimport CheckoutProduct from \"./CheckoutProduct\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { CardElement, useStripe, useElements } from \"@stripe/react-stripe-js\";\r\nimport CurrencyFormat from \"react-currency-format\";\r\nimport { getBasketTotal } from \"./reducer\";\r\nimport axios from './axios';\r\nimport { db } from \"./firebase\";\r\n\r\nfunction Payment() {\r\n const [{ basket, user }, dispatch] = useStateValue();\r\n const history = useHistory();\r\n\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n\r\n const [succeeded, setSucceeded] = useState(false);\r\n const [processing, setProcessing] = useState(\"\");\r\n const [error, setError] = useState(null);\r\n const [disabled, setDisabled] = useState(true);\r\n const [clientSecret, setClientSecret] = useState(true);\r\n\r\n useEffect(() => {\r\n // generate the special stripe secret which allows us to charge a customer\r\n const getClientSecret = async () => {\r\n const response = await axios({\r\n method: 'post',\r\n // Stripe expects the total in a currencies subunits\r\n url: `/payments/create?total=${getBasketTotal(basket) * 100}`\r\n });\r\n setClientSecret(response.data.clientSecret)\r\n }\r\n\r\n getClientSecret();\r\n }, [basket])\r\n\r\n console.log('THE SECRET IS >>>', clientSecret)\r\n console.log('👱', user)\r\n\r\n const handleSubmit = async (event) => {\r\n // do all the fancy stripe stuff...\r\n event.preventDefault();\r\n setProcessing(true);\r\n\r\n const payload = await stripe.confirmCardPayment(clientSecret, {\r\n payment_method: {\r\n card: elements.getElement(CardElement)\r\n }\r\n }).then(({ paymentIntent }) => {\r\n // paymentIntent = payment confirmation\r\n\r\n db\r\n .collection('users')\r\n .doc(user?.uid)\r\n .collection('orders')\r\n .doc(paymentIntent.id)\r\n .set({\r\n basket: basket,\r\n amount: paymentIntent.amount,\r\n created: paymentIntent.created\r\n })\r\n\r\n setSucceeded(true);\r\n setError(null)\r\n setProcessing(false)\r\n\r\n dispatch({\r\n type: 'EMPTY_BASKET'\r\n })\r\n\r\n history.replace('/orders')\r\n })\r\n\r\n }\r\n\r\n const handleChange = event => {\r\n // Listen for changes in the CardElement\r\n // and display any errors as the customer types their card details\r\n setDisabled(event.empty);\r\n setError(event.error ? event.error.message : \"\");\r\n }\r\n\r\n return (\r\n <div className='payment'>\r\n <div className='payment__container'>\r\n <h1>\r\ngbbbbg Checkout (\r\n <Link to=\"/checkout\">{basket?.length} items</Link>\r\n )\r\n </h1>\r\n\r\n\r\n {/* Payment section - delivery address */}\r\n <div className='payment__section'>\r\n <div className='payment__title'>\r\n <h3>Delivery Address</h3>\r\n </div>\r\n <div className='payment__address'>\r\n <p>{user?.email}</p>\r\n <p>123 React Lane</p>\r\n <p>Los Angeles, CA</p>\r\n </div>\r\n </div>\r\n\r\n {/* Payment section - Review Items */}\r\n <div className='payment__section'>\r\n <div className='payment__title'>\r\n <h3>Review items and delivery</h3>\r\n </div>\r\n <div className='payment__items'>\r\n {basket.map(item => (\r\n <CheckoutProduct\r\n id={item.id}\r\n title={item.title}\r\n image={item.image}\r\n price={item.price}\r\n rating={item.rating}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n \r\n\r\n {/* Payment section - Payment method */}\r\n <div className='payment__section'>\r\n <div className=\"payment__title\">\r\n <h3>Payment Method</h3>\r\n </div>\r\n <div className=\"payment__details\">\r\n {/* Stripe magic will go */}\r\n\r\n <form onSubmit={handleSubmit}>\r\n <CardElement onChange={handleChange}/>\r\n\r\n <div className='payment__priceContainer'>\r\n <CurrencyFormat\r\n renderText={(value) => (\r\n <h3>Order Total: {value}</h3>\r\n )}\r\n decimalScale={2}\r\n value={getBasketTotal(basket)}\r\n displayType={\"text\"}\r\n thousandSeparator={true}\r\n prefix={\"$\"}\r\n />\r\n <button disabled={processing || disabled || succeeded}>\r\n <span>{processing ? <p>Processing</p> : \"Buy Now\"}</span>\r\n </button>\r\n </div>\r\n\r\n {/* Errors */}\r\n {error && <div>{error}</div>}\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Payment\r\n","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Orders.js",["258","259"],"import React, { useState, useEffect } from 'react';\r\nimport { db } from \"./firebase\";\r\nimport './Orders.css'\r\nimport { useStateValue } from \"./StateProvider\";\r\nimport Order from './Order'\r\n\r\nfunction Orders() {\r\n const [{ basket, user }, dispatch] = useStateValue();\r\n const [orders, setOrders] = useState([]);\r\n\r\n useEffect(() => {\r\n if(user) {\r\n db\r\n .collection('users')\r\n .doc(user?.uid)\r\n .collection('orders')\r\n .orderBy('created', 'desc')\r\n .onSnapshot(snapshot => (\r\n setOrders(snapshot.docs.map(doc => ({\r\n id: doc.id,\r\n data: doc.data()\r\n })))\r\n ))\r\n } else {\r\n setOrders([])\r\n }\r\n\r\n }, [user])\r\n\r\n return (\r\n <div className='orders'>\r\n <h1>Your Orders</h1>\r\n\r\n <div className='orders__order'>\r\n {orders?.map(order => (\r\n <Order order={order} />\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Orders\r\n","C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\axios.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\amazon-clone\\src\\Order.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\index.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\StateProvider.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\serviceWorker.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\reducer.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\App.js",["260","261"],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Login.js",["262"],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Header.js",["263","264"],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Home.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Checkout.js",["265"],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Footer.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\firebase.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Orders.js",["266","267"],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Payment.js",["268"],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\CheckoutProduct.js",["269","270"],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Subtotal.js",["271"],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Order.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\Product.js",["272"],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\axios.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\components\\SliderData.js",[],"C:\\Users\\Dennis\\Desktop\\GitHub\\myAmazon-clone\\src\\components\\Slider.js",["273"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\index.js",[],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\reducer.js",[],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\serviceWorker.js",[],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\App.js",["274","275"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\StateProvider.js",[],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Checkout.js",["276"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Home.js",[],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Orders.js",["277","278"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Login.js",["279"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Payment.js",["280"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Footer.js",[],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\firebase.js",[],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Header.js",["281","282"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Product.js",["283"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Order.js",[],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\axios.js",[],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\CheckoutProduct.js",["284","285"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\Subtotal.js",["286"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\components\\Slider.js",["287"],"C:\\Users\\Dennis\\Desktop\\Github\\myamazon-clone\\src\\components\\SliderData.js",[],{"ruleId":"288","replacedBy":"289"},{"ruleId":"290","replacedBy":"291"},{"ruleId":"292","severity":1,"message":"293","line":21,"column":10,"nodeType":"294","messageId":"295","endLine":21,"endColumn":12},{"ruleId":"296","severity":1,"message":"297","line":44,"column":6,"nodeType":"298","endLine":44,"endColumn":8,"suggestions":"299"},{"ruleId":"300","severity":1,"message":"301","line":10,"column":28,"nodeType":"302","messageId":"303","endLine":10,"endColumn":36},{"ruleId":"304","severity":1,"message":"305","line":21,"column":9,"nodeType":"306","endLine":24,"endColumn":11},{"ruleId":"300","severity":1,"message":"307","line":6,"column":12,"nodeType":"302","messageId":"303","endLine":6,"endColumn":18},{"ruleId":"300","severity":1,"message":"301","line":8,"column":28,"nodeType":"302","messageId":"303","endLine":8,"endColumn":36},{"ruleId":"300","severity":1,"message":"301","line":10,"column":22,"nodeType":"302","messageId":"303","endLine":10,"endColumn":30},{"ruleId":"288","replacedBy":"308"},{"ruleId":"290","replacedBy":"309"},{"ruleId":"300","severity":1,"message":"307","line":6,"column":14,"nodeType":"302","messageId":"303","endLine":6,"endColumn":20},{"ruleId":"304","severity":1,"message":"305","line":18,"column":13,"nodeType":"306","endLine":18,"endColumn":67},{"ruleId":"304","severity":1,"message":"305","line":39,"column":17,"nodeType":"306","endLine":42,"endColumn":19},{"ruleId":"300","severity":1,"message":"310","line":47,"column":15,"nodeType":"302","messageId":"303","endLine":47,"endColumn":22},{"ruleId":"300","severity":1,"message":"307","line":8,"column":12,"nodeType":"302","messageId":"303","endLine":8,"endColumn":18},{"ruleId":"300","severity":1,"message":"301","line":8,"column":28,"nodeType":"302","messageId":"303","endLine":8,"endColumn":36},{"ruleId":"292","severity":1,"message":"293","line":21,"column":10,"nodeType":"294","messageId":"295","endLine":21,"endColumn":12},{"ruleId":"296","severity":1,"message":"297","line":44,"column":6,"nodeType":"298","endLine":44,"endColumn":8,"suggestions":"311"},{"ruleId":"304","severity":1,"message":"305","line":39,"column":17,"nodeType":"306","endLine":42,"endColumn":19},{"ruleId":"300","severity":1,"message":"301","line":10,"column":28,"nodeType":"302","messageId":"303","endLine":10,"endColumn":36},{"ruleId":"304","severity":1,"message":"305","line":21,"column":9,"nodeType":"306","endLine":24,"endColumn":11},{"ruleId":"300","severity":1,"message":"301","line":8,"column":28,"nodeType":"302","messageId":"303","endLine":8,"endColumn":36},{"ruleId":"300","severity":1,"message":"307","line":8,"column":12,"nodeType":"302","messageId":"303","endLine":8,"endColumn":18},{"ruleId":"300","severity":1,"message":"301","line":8,"column":28,"nodeType":"302","messageId":"303","endLine":8,"endColumn":36},{"ruleId":"300","severity":1,"message":"310","line":47,"column":15,"nodeType":"302","messageId":"303","endLine":47,"endColumn":22},{"ruleId":"300","severity":1,"message":"307","line":6,"column":14,"nodeType":"302","messageId":"303","endLine":6,"endColumn":20},{"ruleId":"304","severity":1,"message":"305","line":18,"column":13,"nodeType":"306","endLine":18,"endColumn":67},{"ruleId":"300","severity":1,"message":"301","line":10,"column":22,"nodeType":"302","messageId":"303","endLine":10,"endColumn":30},{"ruleId":"300","severity":1,"message":"307","line":6,"column":12,"nodeType":"302","messageId":"303","endLine":6,"endColumn":18},{"ruleId":"312","severity":1,"message":"313","line":32,"column":15,"nodeType":"306","endLine":32,"endColumn":77},{"ruleId":"292","severity":1,"message":"293","line":21,"column":10,"nodeType":"294","messageId":"295","endLine":21,"endColumn":12},{"ruleId":"296","severity":1,"message":"297","line":44,"column":6,"nodeType":"298","endLine":44,"endColumn":8,"suggestions":"314"},{"ruleId":"300","severity":1,"message":"301","line":8,"column":28,"nodeType":"302","messageId":"303","endLine":8,"endColumn":36},{"ruleId":"300","severity":1,"message":"307","line":8,"column":12,"nodeType":"302","messageId":"303","endLine":8,"endColumn":18},{"ruleId":"300","severity":1,"message":"301","line":8,"column":28,"nodeType":"302","messageId":"303","endLine":8,"endColumn":36},{"ruleId":"304","severity":1,"message":"305","line":39,"column":17,"nodeType":"306","endLine":42,"endColumn":19},{"ruleId":"300","severity":1,"message":"310","line":47,"column":15,"nodeType":"302","messageId":"303","endLine":47,"endColumn":22},{"ruleId":"300","severity":1,"message":"301","line":10,"column":28,"nodeType":"302","messageId":"303","endLine":10,"endColumn":36},{"ruleId":"304","severity":1,"message":"305","line":21,"column":9,"nodeType":"306","endLine":24,"endColumn":11},{"ruleId":"300","severity":1,"message":"307","line":6,"column":12,"nodeType":"302","messageId":"303","endLine":6,"endColumn":18},{"ruleId":"300","severity":1,"message":"307","line":6,"column":14,"nodeType":"302","messageId":"303","endLine":6,"endColumn":20},{"ruleId":"304","severity":1,"message":"305","line":18,"column":13,"nodeType":"306","endLine":18,"endColumn":67},{"ruleId":"300","severity":1,"message":"301","line":10,"column":22,"nodeType":"302","messageId":"303","endLine":10,"endColumn":30},{"ruleId":"312","severity":1,"message":"313","line":32,"column":15,"nodeType":"306","endLine":32,"endColumn":77},"no-native-reassign",["315"],"no-negated-in-lhs",["316"],"no-empty-pattern","Unexpected empty object pattern.","ObjectPattern","unexpected","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'dispatch'. Either include it or remove the dependency array.","ArrayExpression",["317"],"no-unused-vars","'dispatch' is assigned a value but never used.","Identifier","unusedVar","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","'basket' is assigned a value but never used.",["315"],["316"],"'payload' is assigned a value but never used.",["318"],"jsx-a11y/img-redundant-alt","Redundant alt attribute. Screen-readers already announce `img` tags as an image. You don’t need to use the words `image`, `photo,` or `picture` (or any specified custom words) in the alt prop.",["319"],"no-global-assign","no-unsafe-negation",{"desc":"320","fix":"321"},{"desc":"320","fix":"322"},{"desc":"320","fix":"323"},"Update the dependencies array to be: [dispatch]",{"range":"324","text":"325"},{"range":"326","text":"325"},{"range":"327","text":"325"},[1278,1280],"[dispatch]",[1278,1280],[1278,1280]]