-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.eslintcache
More file actions
1 lines (1 loc) · 37.5 KB
/
.eslintcache
File metadata and controls
1 lines (1 loc) · 37.5 KB
1
[{"E:\\lcomernbootcamp\\projfrontend\\src\\index.js":"1","E:\\lcomernbootcamp\\projfrontend\\src\\App.js":"2","E:\\lcomernbootcamp\\projfrontend\\src\\Routes.js":"3","E:\\lcomernbootcamp\\projfrontend\\src\\core\\Home.js":"4","E:\\lcomernbootcamp\\projfrontend\\src\\backend.js":"5","E:\\lcomernbootcamp\\projfrontend\\src\\core\\Base.js":"6","E:\\lcomernbootcamp\\projfrontend\\src\\core\\Menu.js":"7","E:\\lcomernbootcamp\\projfrontend\\src\\user\\Signup.js":"8","E:\\lcomernbootcamp\\projfrontend\\src\\user\\Signin.js":"9","E:\\lcomernbootcamp\\projfrontend\\src\\auth\\helper\\index.js":"10","E:\\lcomernbootcamp\\projfrontend\\src\\auth\\helper\\PrivateRoutes.js":"11","E:\\lcomernbootcamp\\projfrontend\\src\\auth\\helper\\AdminRoutes.js":"12","E:\\lcomernbootcamp\\projfrontend\\src\\user\\UserDashBoard.js":"13","E:\\lcomernbootcamp\\projfrontend\\src\\user\\AdminDashBoard.js":"14","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\AddCategory.js":"15","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\helper\\adminapicall.js":"16","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\AllCategories.js":"17","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\AddProduct.js":"18","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\ManageProducts.js":"19","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\UpdateProduct.js":"20","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\ManageCategories.js":"21","E:\\lcomernbootcamp\\projfrontend\\src\\core\\Card.js":"22","E:\\lcomernbootcamp\\projfrontend\\src\\core\\helper\\Imagehelper.js":"23","E:\\lcomernbootcamp\\projfrontend\\src\\core\\helper\\coreapicalls.js":"24","E:\\lcomernbootcamp\\projfrontend\\src\\core\\helper\\carthelper.js":"25","E:\\lcomernbootcamp\\projfrontend\\src\\core\\Cart.js":"26"},{"size":160,"mtime":1620826774397,"results":"27","hashOfConfig":"28"},{"size":528,"mtime":499162500000,"results":"29","hashOfConfig":"30"},{"size":1717,"mtime":1629298581394,"results":"31","hashOfConfig":"28"},{"size":1077,"mtime":1628866418459,"results":"32","hashOfConfig":"28"},{"size":51,"mtime":1620826762847,"results":"33","hashOfConfig":"28"},{"size":532,"mtime":1627486643499,"results":"34","hashOfConfig":"28"},{"size":2292,"mtime":1627310585068,"results":"35","hashOfConfig":"28"},{"size":3419,"mtime":1627137273215,"results":"36","hashOfConfig":"28"},{"size":3313,"mtime":1626967347427,"results":"37","hashOfConfig":"28"},{"size":1412,"mtime":1621783461162,"results":"38","hashOfConfig":"28"},{"size":549,"mtime":1622041722578,"results":"39","hashOfConfig":"28"},{"size":579,"mtime":1628527008357,"results":"40","hashOfConfig":"28"},{"size":259,"mtime":1626966616214,"results":"41","hashOfConfig":"28"},{"size":2653,"mtime":1628689653360,"results":"42","hashOfConfig":"28"},{"size":2611,"mtime":1627480961142,"results":"43","hashOfConfig":"28"},{"size":2269,"mtime":1629295731202,"results":"44","hashOfConfig":"28"},{"size":917,"mtime":1627744808325,"results":"45","hashOfConfig":"28"},{"size":4820,"mtime":1629295914312,"results":"46","hashOfConfig":"28"},{"size":2467,"mtime":1629295841935,"results":"47","hashOfConfig":"28"},{"size":5623,"mtime":1629295954034,"results":"48","hashOfConfig":"28"},{"size":1420,"mtime":1628689728227,"results":"49","hashOfConfig":"28"},{"size":2389,"mtime":1629472452876,"results":"50","hashOfConfig":"28"},{"size":582,"mtime":1629472791995,"results":"51","hashOfConfig":"28"},{"size":238,"mtime":1628864147897,"results":"52","hashOfConfig":"28"},{"size":1189,"mtime":1629559415840,"results":"53","hashOfConfig":"28"},{"size":1467,"mtime":1629386715507,"results":"54","hashOfConfig":"28"},{"filePath":"55","messages":"56","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},"l7fbqg",{"filePath":"58","messages":"59","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1vcq9td",{"filePath":"60","messages":"61","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"62","usedDeprecatedRules":"57"},{"filePath":"63","messages":"64","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"65","usedDeprecatedRules":"57"},{"filePath":"66","messages":"67","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"68","messages":"69","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"70","messages":"71","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"72","messages":"73","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"74","messages":"75","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"76","messages":"77","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"78","messages":"79","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"80","messages":"81","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"82","messages":"83","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"84","messages":"85","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"86","usedDeprecatedRules":"57"},{"filePath":"87","messages":"88","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"89","messages":"90","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"91","messages":"92","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"93","usedDeprecatedRules":"57"},{"filePath":"94","messages":"95","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"96","usedDeprecatedRules":"57"},{"filePath":"97","messages":"98","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"99","messages":"100","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"101","usedDeprecatedRules":"57"},{"filePath":"102","messages":"103","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"104","usedDeprecatedRules":"57"},{"filePath":"105","messages":"106","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"107","usedDeprecatedRules":"57"},{"filePath":"108","messages":"109","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"110","usedDeprecatedRules":"57"},{"filePath":"111","messages":"112","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"57"},{"filePath":"113","messages":"114","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"115","messages":"116","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"117","usedDeprecatedRules":"57"},"E:\\lcomernbootcamp\\projfrontend\\src\\index.js",[],["118","119"],"E:\\lcomernbootcamp\\projfrontend\\src\\App.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\Routes.js",["120"],"import React from \"react\";\r\nimport { BrowserRouter, Switch, Route } from \"react-router-dom\";\r\nimport Home from \"./core/Home\";\r\nimport Signup from \"./user/Signup\";\r\nimport Signin from \"./user/Signin\";\r\nimport AdminRoute from \"./auth/helper/AdminRoutes\";\r\nimport PrivateRoute from \"./auth/helper/PrivateRoutes\";\r\nimport UserDashBoard from \"./user/UserDashBoard\";\r\nimport AdminDashBoard from \"./user/AdminDashBoard\";\r\nimport AddCategory from \"./admin/AddCategory\";\r\nimport AllCategories from \"./admin/AllCategories\";\r\nimport AddProduct from \"./admin/AddProduct\";\r\nimport ManageProducts from \"./admin/ManageProducts\";\r\nimport UpdateProduct from \"./admin/UpdateProduct\";\r\nimport ManageCategories from \"./admin/ManageCategories\";\r\nimport Cart from \"./core/Cart\";\r\n\r\n\r\nconst Routes = () => {\r\n return (\r\n <BrowserRouter>\r\n <Switch>\r\n <Route path=\"/\" exact component={Home} />\r\n <Route path=\"/signup\" exact component={Signup} />\r\n <Route path=\"/signin\" exact component={Signin} />\r\n <Route path=\"/Cart\" exact component={Cart} />\r\n <PrivateRoute path=\"/user/dashboard\" exact component={UserDashBoard}/>\r\n <AdminRoute path=\"/admin/dashboard\" exact component={AdminDashBoard}/>\r\n <AdminRoute path=\"/admin/create/category\" exact component={AddCategory}/>\r\n <AdminRoute path=\"/admin/create/product\" exact component={AddProduct}/>\r\n <AdminRoute path=\"/admin/products\" exact component={ManageProducts}/>\r\n <AdminRoute path=\"/admin/product/update/:productId\" exact component={UpdateProduct}/>\r\n <AdminRoute path=\"/admin/categories\" exact component={ManageCategories}/>\r\n\r\n </Switch>\r\n </BrowserRouter>\r\n );\r\n};\r\n\r\nexport default Routes;\r\n","E:\\lcomernbootcamp\\projfrontend\\src\\core\\Home.js",["121","122"],"import React, { useEffect, useState } from \"react\";\r\nimport \"../styles.css\";\r\nimport { API } from \"../backend\";\r\nimport Base from \"./Base\";\r\nimport Card from \"./Card\";\r\nimport { getProducts } from \"./helper/coreapicalls\";\r\n\r\nexport default function Home() {\r\n const [products, setProducts] = useState([])\r\n const [error, setError] = useState(false)\r\n\r\n const loadAllProduct = () => {\r\n getProducts().then(data => {\r\n if(data.error){\r\n setError(data.error)\r\n }else{\r\n setProducts(data);\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n loadAllProduct();\r\n }, [])\r\n\r\n return (\r\n <Base title=\"Home Page\" description=\"Welcome to the Tshirt Store\">\r\n <div className=\"row text-center\">\r\n <h1 className=\"text-white\">All of Tshirts</h1>\r\n <div className=\"row\">\r\n {products.map((product,index)=>{\r\n return(\r\n <div key={index} className=\"col-4 mb-4\">\r\n <Card product={product}/>\r\n </div>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n </Base>\r\n );\r\n}\r\n","E:\\lcomernbootcamp\\projfrontend\\src\\backend.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\core\\Base.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\core\\Menu.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\user\\Signup.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\user\\Signin.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\auth\\helper\\index.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\auth\\helper\\PrivateRoutes.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\auth\\helper\\AdminRoutes.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\user\\UserDashBoard.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\user\\AdminDashBoard.js",["123"],"import React from 'react'\r\nimport { isAutheticated } from '../auth/helper'\r\nimport Base from '../core/Base'\r\nimport {Link} from \"react-router-dom\"\r\n\r\nconst AdminDashBoard = () => {\r\n\r\n const {user :{name ,email,role}} = isAutheticated();\r\n console.log(isAutheticated());\r\n const adminLeftSide = () => {\r\n return(\r\n <div className=\"card\">\r\n <h4 className=\"card-header bg-dark text-white\">Admin Navigation</h4>\r\n <ul className=\"list-group\">\r\n <li className=\"list-group-item\">\r\n <Link to=\"/admin/create/category\" className=\"nav-link text-success\">Create Categories</Link>\r\n </li>\r\n <li className=\"list-group-item\">\r\n <Link to=\"/admin/categories\" className=\"nav-link text-success\">Manage Categories</Link>\r\n </li>\r\n <li className=\"list-group-item\">\r\n <Link to=\"/admin/create/product\" className=\"nav-link text-success\">Create Product</Link>\r\n </li>\r\n <li className=\"list-group-item\">\r\n <Link to=\"/admin/products\" className=\"nav-link text-success\">Manage Product</Link>\r\n </li>\r\n <li className=\"list-group-item\">\r\n <Link to=\"/admin/orders\" className=\"nav-link text-success\">Manage Orders</Link>\r\n </li>\r\n </ul>\r\n </div>\r\n ) \r\n }\r\n const adminRightSide = () => {\r\n return(\r\n <div className=\"mb-4\">\r\n <h4 className=\"card-header\">Admin Informaion</h4>\r\n <ul className=\"list-group\">\r\n <li className=\"list-group-item\">\r\n <span className=\"badge badge-success mr-2\">Name:</span> {name}\r\n </li>\r\n <li className=\"list-group-item\">\r\n <span className=\"badge badge-success mr-2\">Email:</span> {email}\r\n </li>\r\n <li className=\"list-group-item\">\r\n <span className=\"badge badge-danger\">Admin area</span>\r\n </li>\r\n </ul>\r\n </div>\r\n )\r\n }\r\n return (\r\n <Base title=\"Welcome to admin area\" description=\"Manage all of your products here\" className=\"container bg-success p-4\">\r\n <div className=\"row\">\r\n <div className=\"col-3\">{adminLeftSide()}</div>\r\n <div className=\"col-9\">{adminRightSide()}</div>\r\n </div>\r\n \r\n \r\n </Base>\r\n\r\n\r\n )\r\n}\r\nexport default AdminDashBoard;","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\AddCategory.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\admin\\helper\\adminapicall.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\admin\\AllCategories.js",["124"],"import React,{useState} from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Base from \"../core/Base\";\r\nimport { getCategories } from \"./helper/adminapicall\";\r\n\r\nconst AllCategories = () => {\r\n const [values, setValues] = useState({categories:[]})\r\n getCategories().then(data => {\r\n console.log(data);\r\n setValues({...values,categories:data})\r\n console.log(values);\r\n });\r\n //setlistCategories(\"jksdkfsnj\")\r\n return(\r\n <Base title=\"Categories List\" description=\"Get All categories \" className=\"container bg-success p-4\">\r\n <div className=\"card\">\r\n <h4 className=\"card-header bg-dark text-white\">List of Categories</h4>\r\n <ul className=\"list-group\">\r\n <li className=\"list-group-item\">`${values[0]}`</li>\r\n </ul>\r\n </div>\r\n </Base>\r\n )\r\n}\r\nexport default AllCategories;","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\AddProduct.js",["125","126","127","128"],"import React, { useEffect, useState } from \"react\";\r\nimport Base from \"../core/Base\";\r\nimport { Link, Redirect } from \"react-router-dom\";\r\nimport { createaProduct, getCategories } from \"./helper/adminapicall\";\r\nimport { isAutheticated } from \"../auth/helper\";\r\n\r\nconst AddProduct = () => {\r\n\r\n const {user,token} = isAutheticated();\r\n \r\n const [values, setValues] = useState({\r\n name: \"\",\r\n description: \"\",\r\n price: \"\",\r\n stock: \"\",\r\n photo:\"\",\r\n categories: [],\r\n category:\"\",\r\n loading: false,\r\n error:\"\",\r\n createdProduct: \"\",\r\n getRedirect: false,\r\n formData: \"\"\r\n });\r\n\r\n const { name, description, price, stock, categories, category,loading, error, createdProduct, getRedirect, formData } = values;\r\n\r\n const preload = () => {\r\n getCategories().then(data =>{\r\n if (data.error) {\r\n setValues({...values, error: data.error})\r\n } else {\r\n setValues({...values, categories:data,formData: new FormData()})\r\n console.log(data);\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n preload();\r\n }, [])\r\n\r\n const onSubmit = (event) => {\r\n event.preventDefault();\r\n setValues(({...values,error:\"\",loading:true}))\r\n createaProduct(user._id,token,formData).then(data => {\r\n if (data.error) {\r\n setValues({...values,error:data.error})\r\n }else{\r\n setValues({\r\n ...values,\r\n name:\"\",\r\n description:\"\",\r\n price:\"\",\r\n photo:\"\",\r\n stock:\"\",\r\n loading:false,\r\n createdProduct:data.name \r\n })\r\n }\r\n })\r\n };\r\n\r\n const handleChange = name => event => {\r\n const value = name === \"photo\" ? event.target.files[0] : event.target.value\r\n formData.set(name,value );\r\n setValues({...values,[name]:value})\r\n };\r\n\r\n const successMessage = () => {\r\n setTimeout(()=>{\r\n if(createdProduct){\r\n setValues({...values,getRedirect:true})\r\n }\r\n },2000);\r\n return(\r\n <div className=\"alert alert-success mt-3\" style={{display:createdProduct?\"\":\"none\"}}>\r\n <h4>{createdProduct} created succesfully</h4>\r\n </div>)\r\n }\r\n\r\n const Redirecting = () => {\r\n if(getRedirect){\r\n return <Redirect to = \"/admin/dashboard\"/>\r\n }\r\n }\r\n const createProductForm = () => (\r\n <form>\r\n <span>Upload photo</span>\r\n <div className=\"form-group\">\r\n <label className=\"btn btn-block btn-success\">\r\n <input\r\n onChange={handleChange(\"photo\")}\r\n type=\"file\"\r\n name=\"photo\"\r\n accept=\"image\"\r\n placeholder=\"choose a file\"\r\n />\r\n </label>\r\n </div>\r\n <div className=\"form-group\">\r\n <input\r\n onChange={handleChange(\"name\")}\r\n name=\"photo\"\r\n className=\"form-control\"\r\n placeholder=\"Name\"\r\n value={name}\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <textarea\r\n onChange={handleChange(\"description\")}\r\n name=\"photo\"\r\n className=\"form-control\"\r\n placeholder=\"Description\"\r\n value={description}\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <input\r\n onChange={handleChange(\"price\")}\r\n type=\"number\"\r\n className=\"form-control\"\r\n placeholder=\"Price\"\r\n value={price}\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <select\r\n onChange={handleChange(\"category\")}\r\n className=\"form-control\"\r\n placeholder=\"Category\"\r\n >\r\n <option>Select</option>\r\n {categories && \r\n categories.map((cate,index) => (\r\n <option key={index} value={cate._id}>{cate.name}</option>\r\n ))\r\n }\r\n </select>\r\n </div>\r\n <div className=\"form-group\">\r\n <input\r\n onChange={handleChange(\"stock\")}\r\n type=\"number\"\r\n className=\"form-control\"\r\n placeholder=\"Stock\"\r\n value={stock}\r\n />\r\n </div>\r\n\r\n <button\r\n type=\"submit\"\r\n onClick={onSubmit}\r\n className=\"btn btn-outline-success mb-3\"\r\n >\r\n Create Product\r\n </button>\r\n </form>\r\n );\r\n\r\n return (\r\n <Base\r\n title=\"Add a product here!\"\r\n description=\"Welcome to product creation section\"\r\n className=\"container bg-info p-4\"\r\n >\r\n <Link to=\"/admin/dashboard\" className=\"btn btn-md btn-dark mb-3\">\r\n Admin Home\r\n </Link>\r\n <div className=\"row bg-dark text-white rounded\">\r\n <div className=\"col-md-8 offset-md-2\">\r\n {successMessage()}\r\n {createProductForm()}\r\n {Redirecting()}\r\n </div>\r\n </div>\r\n </Base>\r\n );\r\n};\r\n\r\nexport default AddProduct;\r\n","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\ManageProducts.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\admin\\UpdateProduct.js",["129","130","131","132"],"import React, { useEffect, useState } from \"react\";\r\nimport Base from \"../core/Base\";\r\nimport { Link, Redirect } from \"react-router-dom\";\r\nimport { getProduct, getCategories ,updateProduct} from \"./helper/adminapicall\";\r\nimport { isAutheticated } from \"../auth/helper\";\r\n\r\nconst UpdateProduct = ({match}) => {\r\n\r\n const {user,token} = isAutheticated();\r\n \r\n const [values, setValues] = useState({\r\n name: \"\",\r\n description: \"\",\r\n price: \"\",\r\n stock: \"\",\r\n photo:\"\",\r\n categories: [],\r\n category:\"\",\r\n loading: false,\r\n error:\"\",\r\n createdProduct: \"\",\r\n getRedirect: false,\r\n formData: \"\"\r\n });\r\n\r\n const { name, description, price, stock, categories, category,loading, error, createdProduct, getRedirect, formData } = values;\r\n\r\n const preloadCategories = () => {\r\n getCategories().then(data => {\r\n if(data.error){\r\n setValues({...values,error:data.error})\r\n }else {\r\n setValues({categories:data,formData: new FormData()})\r\n }\r\n })\r\n }\r\n\r\n const preload = (productId) => {\r\n getProduct(productId).then(data =>{\r\n if (data.error) {\r\n setValues({...values, error: data.error})\r\n } else {\r\n preloadCategories();\r\n setValues({\r\n ...values,\r\n name:data.name,\r\n description:data.description,\r\n price:data.price,\r\n category:data.category._id,\r\n stock:data.stock,\r\n formData: new FormData()\r\n })\r\n console.log(data);\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n preload(match.params.productId);\r\n }, [])\r\n\r\n const onSubmit = (event) => {\r\n event.preventDefault();\r\n setValues(({...values,error:\"\",loading:true}))\r\n updateProduct(match.params.productId,user._id,token,formData).then(data => {\r\n if (data.error) {\r\n setValues({...values,error:data.error})\r\n }else{\r\n setValues({\r\n ...values,\r\n name:\"\",\r\n description:\"\",\r\n price:\"\",\r\n photo:\"\",\r\n stock:\"\",\r\n loading:false,\r\n createdProduct:data.name \r\n })\r\n }\r\n })\r\n };\r\n\r\n const handleChange = name => event => {\r\n const value = name === \"photo\" ? event.target.files[0] : event.target.value\r\n formData.set(name,value );\r\n setValues({...values,[name]:value})\r\n };\r\n\r\n const successMessage = () => {\r\n setTimeout(()=>{\r\n if(createdProduct){\r\n setValues({...values,getRedirect:true})\r\n }\r\n },2000);\r\n return(\r\n <div className=\"alert alert-success mt-3\" style={{display:createdProduct?\"\":\"none\"}}>\r\n <h4>{createdProduct} updated succesfully</h4>\r\n </div>)\r\n }\r\n const errorMessage = () => {\r\n return(\r\n <div className=\"alert alert-danger mt-3\" style={{display:error?\"\":\"none\"}}>\r\n <h4>{error}</h4>\r\n </div>)\r\n }\r\n const Redirecting = () => {\r\n if(getRedirect){\r\n return <Redirect to = \"/admin/dashboard\"/>\r\n }\r\n }\r\n const createProductForm = () => (\r\n <form>\r\n <span>Upload photo</span>\r\n <div className=\"form-group\">\r\n <label className=\"btn btn-block btn-success\">\r\n <input\r\n onChange={handleChange(\"photo\")}\r\n type=\"file\"\r\n name=\"photo\"\r\n accept=\"image\"\r\n placeholder=\"choose a file\"\r\n />\r\n </label>\r\n </div>\r\n <div className=\"form-group\">\r\n <input\r\n onChange={handleChange(\"name\")}\r\n name=\"photo\"\r\n className=\"form-control\"\r\n placeholder=\"Name\"\r\n value={name}\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <textarea\r\n onChange={handleChange(\"description\")}\r\n name=\"photo\"\r\n className=\"form-control\"\r\n placeholder=\"Description\"\r\n value={description}\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <input\r\n onChange={handleChange(\"price\")}\r\n type=\"number\"\r\n className=\"form-control\"\r\n placeholder=\"Price\"\r\n value={price}\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <select\r\n onChange={handleChange(\"category\")}\r\n className=\"form-control\"\r\n placeholder=\"Category\"\r\n >\r\n <option>Select</option>\r\n {categories && \r\n categories.map((cate,index) => (\r\n <option key={index} value={cate._id}>{cate.name}</option>\r\n ))\r\n }\r\n </select>\r\n </div>\r\n <div className=\"form-group\">\r\n <input\r\n onChange={handleChange(\"stock\")}\r\n type=\"number\"\r\n className=\"form-control\"\r\n placeholder=\"Stock\"\r\n value={stock}\r\n />\r\n </div>\r\n\r\n <button\r\n type=\"submit\"\r\n onClick={onSubmit}\r\n className=\"btn btn-outline-success mb-3\"\r\n >\r\n Update Product\r\n </button>\r\n </form>\r\n );\r\n\r\n return (\r\n <Base\r\n title=\"Add a product here!\"\r\n description=\"Welcome to product creation section\"\r\n className=\"container bg-info p-4\"\r\n >\r\n <Link to=\"/admin/dashboard\" className=\"btn btn-md btn-dark mb-3\">\r\n Admin Home\r\n </Link>\r\n <div className=\"row bg-dark text-white rounded\">\r\n <div className=\"col-md-8 offset-md-2\">\r\n {successMessage()}\r\n {createProductForm()}\r\n {Redirecting()}\r\n </div>\r\n </div>\r\n </Base>\r\n );\r\n};\r\n\r\nexport default UpdateProduct;\r\n","E:\\lcomernbootcamp\\projfrontend\\src\\admin\\ManageCategories.js",["133","134"],"import React, { useEffect, useState } from 'react'\r\nimport { Link } from 'react-router-dom';\r\nimport { isAutheticated } from '../auth/helper';\r\nimport Base from '../core/Base';\r\nimport { getCategories } from './helper/adminapicall';\r\n\r\nconst ManageCategories = () => {\r\n const [categories,setCategories] = useState([])\r\n const {user,token} =isAutheticated();\r\n \r\n const preload = () => {\r\n getCategories().then(data => {\r\n if(data.error){\r\n console.log(data.error);\r\n }else{\r\n setCategories(data);\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n preload()\r\n }, [])\r\n return (\r\n <Base title=\"Welcome admin\" description=\"Manage products here\">\r\n <h2 className=\"mb-4\">All products:</h2>\r\n <Link className=\"btn btn-info\" to={`/admin/dashboard`}>\r\n <span className=\"\">Admin Home</span>\r\n </Link>\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h2 className=\"text-center text-white my-3\">Total 3 products</h2>\r\n {categories.map((category,index)=>{\r\n return(\r\n <h3 className=\"text-white\" key={index}>{category.name}</h3>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n </Base>\r\n\r\n )\r\n}\r\nexport default ManageCategories;","E:\\lcomernbootcamp\\projfrontend\\src\\core\\Card.js",["135","136","137"],"import React,{useState,useEffect} from 'react'\r\nimport { Redirect } from 'react-router-dom';\r\nimport { addItemToCart, removeItemFromCart } from './helper/carthelper';\r\nimport Imagehelper from './helper/Imagehelper'\r\n\r\nconst Card = ({\r\n product,addtoCart=true,removeFromCart=false,setReload = f => f,reload = undefined\r\n}) => {\r\n\r\n let btnstyle = {backgroundColor:\"#28A745\",width:\"70px\",height:\"30px\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",margin:\"4px auto\",borderRadius:\"5px\"}\r\n\r\n const [redirect, setRedirect] = useState(false)\r\n const [count, setCount] = useState(product.count)\r\n\r\n const cardTitle = product ? product.name:\"A photo from pexels\"\r\n const cardDescription = product ? product.description:\"Default Description\"\r\n const cardPrice = product ? product.price:\"DEFAULT\"\r\n\r\n const addToCart = () => {\r\n addItemToCart(product,()=>setRedirect(true))\r\n }\r\n \r\n const getARedirect = redirect => {\r\n if (redirect) {\r\n return <Redirect to=\"/cart\"/>\r\n }\r\n }\r\n\r\n const showAddToCart = addtoCart => {\r\n return (\r\n addtoCart && (\r\n <button onClick={addToCart} className=\"btn btn-block btn-outline-success mt-2 mb-2\">\r\n Add To Cart\r\n </button>\r\n )\r\n )\r\n }\r\n const showRemoveFromCart= removeFromCart => {\r\n return (\r\n removeFromCart && (\r\n <button onClick={()=>{\r\n removeItemFromCart(product._id);\r\n setReload(!reload)\r\n }} className=\"btn btn-block btn-outline-danger mt-2 mb-2\">\r\n Remove To Cart\r\n </button>\r\n )\r\n )\r\n }\r\n\r\n return (\r\n <div className=\"card text-white bg-dark border border-info \">\r\n <div className=\"card-header lead\">{cardTitle}</div>\r\n <div className=\"card-body\">\r\n {getARedirect(redirect)}\r\n <Imagehelper product={product}/>\r\n <p className=\"lead bg-success font-weight-normal text-wrap\">\r\n {cardDescription}\r\n </p>\r\n <p style={btnstyle}>\r\n {cardPrice}\r\n </p>\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n {showAddToCart(addtoCart)}\r\n </div>\r\n <div className=\"col-12\">\r\n {showRemoveFromCart(removeFromCart)}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default Card;","E:\\lcomernbootcamp\\projfrontend\\src\\core\\helper\\Imagehelper.js",["138"],"import React from \"react\";\r\nimport { API } from \"../../backend\";\r\n\r\nconst ImageHelper = ({ product }) => {\r\n const imageurl = product\r\n ? `${API}/product/photo/${product._id}`\r\n : `https://images.pexels.com/photos/3561339/pexels-photo-3561339.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940`;\r\n return (\r\n <div className=\"rounded border border-success p-2\">\r\n <img\r\n src={imageurl}\r\n alt=\"photo\"\r\n style={{ maxHeight: \"100%\", maxWidth: \"100%\" }}\r\n className=\"mb-3 rounded\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default ImageHelper;\r\n","E:\\lcomernbootcamp\\projfrontend\\src\\core\\helper\\coreapicalls.js",[],"E:\\lcomernbootcamp\\projfrontend\\src\\core\\helper\\carthelper.js",["139"],"E:\\lcomernbootcamp\\projfrontend\\src\\core\\Cart.js",["140"],"import React, { useEffect, useState } from \"react\";\r\nimport \"../styles.css\";\r\nimport { API } from \"../backend\";\r\nimport Base from \"./Base\";\r\nimport Card from \"./Card\";\r\nimport { loadCart } from \"./helper/carthelper\";\r\n\r\nconst Cart = () => {\r\n\r\n const [products, setProducts] = useState([])\r\n const [reload, setReload] = useState(false)\r\n \r\n useEffect(() => {\r\n setProducts(loadCart())\r\n }, [reload]);\r\n\r\n const loadAllProducts = () => {\r\n return(\r\n <div>\r\n <h2>This section is to load products</h2>\r\n {products.map((product,index)=> (\r\n <Card\r\n key={index}\r\n product={product}\r\n removeFromCart={true}\r\n addtoCart={false}\r\n setReload={setReload}\r\n reload={reload}\r\n />\r\n ))}\r\n </div>\r\n )\r\n }\r\n const loadCheckout = () => {\r\n return(\r\n <div>\r\n <h2>This section is for Chechkout</h2>\r\n \r\n </div>\r\n )\r\n }\r\n\r\n return (\r\n <Base title=\"Cart Page\" description=\"Ready to checkout\">\r\n <div className=\"row text-center`\">\r\n <div className=\"col-6\">{loadAllProducts()}</div>\r\n <div className=\"col-6\">{loadCheckout()}</div>\r\n\r\n </div>\r\n </Base>\r\n );\r\n}\r\n\r\nexport default Cart;",{"ruleId":"141","replacedBy":"142"},{"ruleId":"143","replacedBy":"144"},{"ruleId":"145","severity":1,"message":"146","line":11,"column":8,"nodeType":"147","messageId":"148","endLine":11,"endColumn":21},{"ruleId":"145","severity":1,"message":"149","line":3,"column":10,"nodeType":"147","messageId":"148","endLine":3,"endColumn":13},{"ruleId":"145","severity":1,"message":"150","line":10,"column":10,"nodeType":"147","messageId":"148","endLine":10,"endColumn":15},{"ruleId":"145","severity":1,"message":"151","line":8,"column":31,"nodeType":"147","messageId":"148","endLine":8,"endColumn":35},{"ruleId":"145","severity":1,"message":"152","line":2,"column":10,"nodeType":"147","messageId":"148","endLine":2,"endColumn":14},{"ruleId":"145","severity":1,"message":"153","line":26,"column":56,"nodeType":"147","messageId":"148","endLine":26,"endColumn":64},{"ruleId":"145","severity":1,"message":"154","line":26,"column":65,"nodeType":"147","messageId":"148","endLine":26,"endColumn":72},{"ruleId":"145","severity":1,"message":"150","line":26,"column":74,"nodeType":"147","messageId":"148","endLine":26,"endColumn":79},{"ruleId":"155","severity":1,"message":"156","line":41,"column":6,"nodeType":"157","endLine":41,"endColumn":8,"suggestions":"158"},{"ruleId":"145","severity":1,"message":"153","line":26,"column":56,"nodeType":"147","messageId":"148","endLine":26,"endColumn":64},{"ruleId":"145","severity":1,"message":"154","line":26,"column":65,"nodeType":"147","messageId":"148","endLine":26,"endColumn":72},{"ruleId":"155","severity":1,"message":"159","line":60,"column":6,"nodeType":"157","endLine":60,"endColumn":8,"suggestions":"160"},{"ruleId":"145","severity":1,"message":"161","line":100,"column":9,"nodeType":"147","messageId":"148","endLine":100,"endColumn":21},{"ruleId":"145","severity":1,"message":"162","line":9,"column":12,"nodeType":"147","messageId":"148","endLine":9,"endColumn":16},{"ruleId":"145","severity":1,"message":"163","line":9,"column":17,"nodeType":"147","messageId":"148","endLine":9,"endColumn":22},{"ruleId":"145","severity":1,"message":"164","line":1,"column":24,"nodeType":"147","messageId":"148","endLine":1,"endColumn":33},{"ruleId":"145","severity":1,"message":"165","line":13,"column":10,"nodeType":"147","messageId":"148","endLine":13,"endColumn":15},{"ruleId":"145","severity":1,"message":"166","line":13,"column":17,"nodeType":"147","messageId":"148","endLine":13,"endColumn":25},{"ruleId":"167","severity":1,"message":"168","line":10,"column":7,"nodeType":"169","endLine":15,"endColumn":9},{"ruleId":"170","severity":1,"message":"171","line":30,"column":30,"nodeType":"172","messageId":"173","endLine":30,"endColumn":32},{"ruleId":"145","severity":1,"message":"149","line":3,"column":10,"nodeType":"147","messageId":"148","endLine":3,"endColumn":13},"no-native-reassign",["174"],"no-negated-in-lhs",["175"],"no-unused-vars","'AllCategories' is defined but never used.","Identifier","unusedVar","'API' is defined but never used.","'error' is assigned a value but never used.","'role' is assigned a value but never used.","'Link' is defined but never used.","'category' is assigned a value but never used.","'loading' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'preload'. Either include it or remove the dependency array.","ArrayExpression",["176"],"React Hook useEffect has missing dependencies: 'match.params.productId' and 'preload'. Either include them or remove the dependency array.",["177"],"'errorMessage' is assigned a value but never used.","'user' is assigned a value but never used.","'token' is assigned a value but never used.","'useEffect' is defined but never used.","'count' is assigned a value but never used.","'setCount' is assigned a value but never used.","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.","JSXOpeningElement","array-callback-return","Array.prototype.map() expects a return value from arrow function.","ArrowFunctionExpression","expectedInside","no-global-assign","no-unsafe-negation",{"desc":"178","fix":"179"},{"desc":"180","fix":"181"},"Update the dependencies array to be: [preload]",{"range":"182","text":"183"},"Update the dependencies array to be: [match.params.productId, preload]",{"range":"184","text":"185"},[1108,1110],"[preload]",[1720,1722],"[match.params.productId, preload]"]