diff --git a/client/build/asset-manifest.json b/client/build/asset-manifest.json index 839f0ba..24cd91b 100644 --- a/client/build/asset-manifest.json +++ b/client/build/asset-manifest.json @@ -1,8 +1,8 @@ { "files": { "main.css": "/static/css/main.6de86a19.chunk.css", - "main.js": "/static/js/main.2e815323.chunk.js", - "main.js.map": "/static/js/main.2e815323.chunk.js.map", + "main.js": "/static/js/main.50d9a2a0.chunk.js", + "main.js.map": "/static/js/main.50d9a2a0.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.a06e69b5.js", "runtime-main.js.map": "/static/js/runtime-main.a06e69b5.js.map", "static/css/2.56001c6a.chunk.css": "/static/css/2.56001c6a.chunk.css", @@ -27,6 +27,6 @@ "static/css/2.56001c6a.chunk.css", "static/js/2.044ed35c.chunk.js", "static/css/main.6de86a19.chunk.css", - "static/js/main.2e815323.chunk.js" + "static/js/main.50d9a2a0.chunk.js" ] } \ No newline at end of file diff --git a/client/build/index.html b/client/build/index.html index 78475e9..94fc116 100644 --- a/client/build/index.html +++ b/client/build/index.html @@ -1 +1 @@ -Plant Land
\ No newline at end of file +Plant Land
\ No newline at end of file diff --git a/client/build/static/js/main.2e815323.chunk.js.map b/client/build/static/js/main.2e815323.chunk.js.map deleted file mode 100644 index ebc0e9d..0000000 --- a/client/build/static/js/main.2e815323.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["constants/blogConstant.js","constants/productConstants.js","redux/actions/blogActions.js","components/Ecommerce/Loader.js","components/Blog/BlogCard.js","components/Blog/BlogSeedData.js","components/Blog/Blog.js","components/Ecommerce/Message.js","components/Blog/BlogDetails.js","components/Ecommerce/ToastMessage.js","components/Blog/BlogCategory.js","components/Blog/NewBlog.js","components/Ecommerce/Footer.js","constants/userConstants.js","redux/actions/userActions.js","components/Ecommerce/Header.js","constants/cartConstants.js","redux/actions/cartActions.js","components/Ecommerce/Screen/CartScreen.js","components/Ecommerce/FormContainer.js","components/Ecommerce/Screen/ForgetPasswordScreen.js","redux/actions/productActions.js","components/Ecommerce/FilterCategory.js","components/Ecommerce/FilterSort.js","components/Ecommerce/Paginate.js","components/Ecommerce/Rating.js","components/Ecommerce/Product.js","components/Ecommerce/SearchBox.js","components/Ecommerce/Screen/HomeScreen.js","components/Ecommerce/GoogleAuth.js","components/Ecommerce/Screen/LoginScreen.js","constants/orderConstants.js","redux/actions/orderActions.js","components/Ecommerce/Sidebar.js","components/Ecommerce/Screen/OrderDataScreen.js","components/Ecommerce/Screen/OrderListScreen.js","components/Ecommerce/Screen/OrderScreen.js","components/Ecommerce/Screen/PasswordResetScreen.js","components/Ecommerce/CheckoutSteps.js","components/Ecommerce/Screen/PaymentScreen.js","components/Ecommerce/Screen/PlaceOrderScreen.js","components/Ecommerce/Screen/ProductEditScreen.js","components/Ecommerce/Screen/ProductListScreen.js","components/Ecommerce/Screen/ProductScreen.js","components/Ecommerce/Screen/ProfileScreen.js","components/Ecommerce/Screen/RegisterScreen.js","components/Ecommerce/Charts/BarChart.js","components/Ecommerce/Charts/LineChart.js","components/Ecommerce/Charts/MonthBarChart.js","components/Ecommerce/Charts/ProductSaleBarChart.js","components/Ecommerce/Charts/SalesPieChart.js","components/Ecommerce/CSVReportGeneration.js","components/Ecommerce/EcommSeedData.js","components/Ecommerce/SaleDataCategory.js","components/Ecommerce/Screen/SaleDataScreen.js","components/Ecommerce/Screen/ShippingScreen.js","components/Ecommerce/Screen/UserListScreen.js","components/PlantIdentify/PIDetailsModal.js","components/PlantIdentify/PlantIdentify.js","components/PlantSearch/PlantDetails.js","images/not.svg","images/sample-plant.jpg","components/PlantSearch/PlantSearchCard.js","components/PlantSearch/PlantSearch.js","images/blog.svg","images/diary.svg","images/online-community.svg","images/search.svg","images/server.svg","images/store.svg","components/LandingPage/FeatureCard.js","components/LandingPage/Feature.js","images/pngwing.com.png","components/LandingPage/HeroSection.js","components/LandingPage/Navbar.js","pages/LandingPage.js","pages/MainPage.js","App.js","store.js","redux/reducers/productReducers.js","redux/reducers/userReducers.js","redux/reducers/cartReducers.js","redux/reducers/orderReducers.js","redux/reducers/blogReducers.js","index.js"],"names":["BLOG_FETCH_REQUEST","BLOG_FETCH_SUCCESS","BLOG_FETCH_FAIL","BLOG_DETAILS_REQUEST","BLOG_DETAILS_SUCCESS","BLOG_DETAILS_FAIL","PRODUCT_LIST_REQUEST","PRODUCT_LIST_SUCCESS","PRODUCT_LIST_FAIL","PRODUCT_DETAILS_REQUEST","PRODUCT_DETAILS_SUCCESS","PRODUCT_DETAILS_FAIL","PRODUCT_CREATE_REVIEW_REQUEST","PRODUCT_CREATE_REVIEW_SUCCESS","PRODUCT_CREATE_REVIEW_FAIL","PRODUCT_CREATE_REVIEW_RESET","PRODUCT_DELETE_REQUEST","PRODUCT_DELETE_SUCCESS","PRODUCT_DELETE_FAIL","PRODUCT_CREATE_REQUEST","PRODUCT_CREATE_SUCCESS","PRODUCT_CREATE_FAIL","PRODUCT_CREATE_RESET","PRODUCT_UPDATE_REQUEST","PRODUCT_UPDATE_SUCCESS","PRODUCT_UPDATE_FAIL","PRODUCT_UPDATE_RESET","baseUrl","Loader","Spinner","animation","variant","role","style","width","height","margin","display","className","BlogCard","blog","history","useHistory","Card","minWidth","to","_id","Img","padding","src","image","Body","Title","title","tags","map","tag","index","Badge","Text","ReactHtmlParser","description","justifyContent","Button","onClick","id","push","aria-hidden","blogCategories","blogTags","Blog","dispatch","useDispatch","blogList","useSelector","state","loading","blogs","useEffect","a","type","axios","get","data","payload","console","log","response","message","Row","Col","md","xs","lg","xl","Message","children","Alert","defaultProps","BlogDetails","match","blogDetails","error","params","Container","alt","author","category","createdAt","Date","toDateString","toast","configure","toastSuccessMessage","success","autoClose","toastInfoMessage","info","toastErrorMessage","position","useState","React","label","BlogCategory","onCategorySelect","isOpen","setOpen","items","selectedItem","setSelectedItem","find","item","e","target","NewBlog","setTitle","setCategory","setTags","setImage","content","setContent","handleFileUpload","file","files","formData","FormData","append","config","headers","post","clearInputs","onSubmit","preventDefault","blogData","allTags","split","blogPost","getState","userInfo","userLogin","Authorization","token","err","htmlFor","name","onChange","placeholder","autoFocus","value","editor","ClassicEditor","ckfinder","uploadUrl","event","getData","Footer","USER_LOGIN_REQUEST","USER_LOGIN_SUCCESS","USER_LOGIN_FAIL","USER_LOGOUT","USER_REGISTER_REQUEST","USER_REGISTER_SUCCESS","USER_REGISTER_FAIL","USER_DETAILS_REQUEST","USER_DETAILS_SUCCESS","USER_DETAILS_FAIL","USER_PROFILE_UPDATE_REQUEST","USER_PROFILE_UPDATE_SUCCESS","USER_PROFILE_UPDATE_FAIL","USER_LIST_REQUEST","USER_LIST_SUCCESS","USER_LIST_FAIL","USER_LIST_RESET","USER_DELETE_REQUEST","USER_DELETE_SUCCESS","USER_DELETE_FAIL","googleLogin","localStorage","setItem","JSON","stringify","Header","Navbar","collapseOnSelect","expand","Brand","Toggle","aria-controls","Collapse","Nav","Link","NavDropdown","user","Item","href","removeItem","isAdmin","CART_ADD_ITEM","CART_REMOVE_ITEM","CART_SAVE_SHIPPING_ADDRESS","CART_SAVE_PAYMENT_METHOD","addToCart","qty","productId","price","countInStock","cart","cartItems","CartScreen","location","search","Number","removeFromCartHandler","removeFromCart","length","ListGroup","Image","fluid","rounded","fontSize","FormControl","as","Array","keys","p","reduce","acc","toFixed","disabled","FormContainer","ForgetPasswordScreen","email","setEmail","setError","handleSubmit","setTimeout","Form","Group","controlId","Label","Control","fetchProducts","keyword","pageNumber","sort","fetchProductById","FilterCategory","handleCategoryChange","DropdownButton","alignRight","onSelect","Dropdown","eventKey","handleSortChange","Paginate","page","numOfPages","Pagination","active","Rating","text","color","Product","product","rating","numReviews","SearchBox","setKeyword","trim","inline","HomeScreen","productCategory","setProductCategory","productSort","setProductSort","productList","products","toLowerCase","FilterSort","GoogleAuth","googleSuccess","res","profileObj","tokenId","clientId","render","renderProps","onSuccess","onFailure","cookiePolicy","LoginScreen","password","setPassword","redirect","login","ORDER_CREATE_REQUEST","ORDER_CREATE_SUCCESS","ORDER_CREATE_FAIL","ORDER_DETAILS_REQUEST","ORDER_DETAILS_SUCCESS","ORDER_DETAILS_FAIL","ORDER_MY_LIST_REQUEST","ORDER_MY_LIST_SUCCESS","ORDER_MY_LIST_FAIL","ORDER_LIST_REQUEST","ORDER_LIST_SUCCESS","ORDER_LIST_FAIL","ORDER_PAY_REQUEST","ORDER_PAY_SUCCESS","ORDER_PAY_FAIL","ORDER_PAY_RESET","ORDER_DELIVER_REQUEST","ORDER_DELIVER_SUCCESS","ORDER_DELIVER_FAIL","ORDER_DELIVER_RESET","ORDER_DATA_REQUEST","ORDER_DATA_SUCCESS","ORDER_DATA_FAIL","ORDER_SALE_DATA_REQUEST","ORDER_SALE_DATA_SUCCESS","ORDER_SALE_DATA_FAIL","Sidebar","marginTop","OrderDataScreen","order","orderData","totalOrder","totalPaidOrder","totalDelivered","sm","Table","striped","bordered","productSaleData","total","customerBuyData","customer","customer_name","customer_email","Math","ceil","OrderListScreen","orderList","orders","hover","substring","marginRight","totalPrice","isPaid","paidAt","isDelivered","deliverAt","OrderScreen","num","orderId","sdkReady","setSdkReady","orderDetails","orderPay","loadingPay","successPay","successDeliver","orderDeliver","itemsPrice","orderedItems","round","addPayPalScript","req","script","document","createElement","async","onload","body","appendChild","window","paypal","shippingAddress","address","city","thana","houseNumber","paymentMethod","shippingPrice","amount","paymentResult","put","payOrder","deliverOrder","confirmPassword","setConfirmPassword","clear","errorText","resetToken","CheckoutSteps","step1","step2","step3","step4","PaymentScreen","setPaymentMethod","Check","checked","PlaceOrderScreen","orderCreate","createOrder","orderItems","ProductEditScreen","setName","setDescription","setPrice","setCountInStock","uploading","setUploading","productDetails","productUpdate","loadingUpdate","errorUpdate","successUpdate","updateProduct","File","custom","ProductListScreen","productCreate","loadingCreate","errorCreate","successCreate","createdProduct","productDelete","loadingDelete","errorDelete","successDelete","handleDelete","confirm","delete","deleteProduct","handleCreateProduct","float","ProductScreen","setQty","setRating","comment","setComment","productReview","productCreateReview","reviewError","reviewSuccess","reviews","r","review","ProfileScreen","useLocation","userDetails","myOrderList","loadingOrders","errorOrders","updateUserProfile","RegisterScreen","userRegister","register","BarChart","saleByMonth","od","numOfOrder","labels","datasets","backgroundColor","borderColor","borderWidth","options","scales","yAxes","ticks","beginAtZero","LineChart","fill","pointRadius","monthSaleData","i","daysOfMonthLabel","colorArray","colorArrayBorder","ProductSaleBarChart","monthWiseQty","productName","SalesPieChart","pie_data","dataLabel","dataValues","pd","val","parseInt","bgColPalette","borderColPalette","background","border","CSVReportGeneration","csvReport","filename","key","textAlign","marginBottom","fontFamily","monthData","SaleDataCategory","SaleDataScreen","graphType","setGraphType","monthSale","setMonthSale","productSale","setProductSale","setSearch","reportData","setReportData","salesPieData","setSalesPieData","orderSaleData","onMonthSelect","selectedMonth","handleSearchSubmit","product_id","MonthBarChart","aria-label","el","month","saleData","date","product_name","product_price","product_qty","from","m","set","Map","ShippingScreen","setAddress","setCity","setThana","setHouseNumber","required","UserListScreen","userList","deleteSuccess","userDelete","users","deleteUser","PIDetailsModal","desc","synonyms","taxonomy","authority","common_names","show","setShow","handleClose","Modal","onHide","closeButton","cn","kingdom","phylum","class","family","genus","syn","PlantIdentify","setFile","imageUrl","setImageUrl","plantSuggestion","setPlantSuggestion","setLoading","getPlantInfo","plantSuggestions","covertNumber","n","toString","multiple","onDone","base64","plant","similar_images","url","plant_name","plant_details","scientific_name","structured_name","species","name_authority","wiki_description","probability","PlantDetails","plantData","setPlantData","plantSearchAPI","fetchPlant","attributes","binomial_name","taxon","sun_requirements","sowing_method","growing_degree_days","row_spacing","PlantSearchCard","d","cursor","main_image_path","includes","sample","PlantSearch","searchTerm","setSearchTerm","result","setResult","found","setFound","notFound","useStyles","makeStyles","root","borderTop","marginLeft","FeatureCard","classes","CardContent","Typography","gutterBottom","component","container","gridContainer","Feature","market","db","diary","forum","Grid","spacing","elevate","HeroSection","heroImg","NavBar","bg","fixed","LandingPage","MainPage","path","exact","PasswordResetScreen","App","reducer","combineReducers","action","userProfileUpdate","isItemExist","filter","DELIVERload","comments","cartItemsFromStorage","getItem","parse","userInfoFromStorage","initialState","middlewares","thunk","store","createStore","composeWithDevTools","applyMiddleware","ReactDOM","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.2e815323.chunk.js","sourcesContent":["export const BLOG_FETCH_REQUEST = \"BLOG_FETCH_REQUEST\"\r\nexport const BLOG_FETCH_SUCCESS = \"BLOG_FETCH_SUCCESS\"\r\nexport const BLOG_FETCH_FAIL = \"BLOG_FETCH_FAIL\"\r\n\r\nexport const BLOG_DETAILS_REQUEST = \"BLOG_DETAILS_REQUEST\"\r\nexport const BLOG_DETAILS_SUCCESS = \"BLOG_DETAILS_SUCCESS\"\r\nexport const BLOG_DETAILS_FAIL = \"BLOG_DETAILS_FAIL\"\r\n\r\n\r\nexport const BLOG_CREATE_REQUEST = \"BLOG_CREATE_REQUEST\"\r\nexport const BLOG_CREATE_SUCCESS = \"BLOG_CREATE_SUCCESS\"\r\nexport const BLOG_CREATE_FAIL = \"BLOG_CREATE_FAIL\"","export const PRODUCT_LIST_REQUEST = \"PRODUCT_LIST_REQUEST\"\r\nexport const PRODUCT_LIST_SUCCESS = \"PRODUCT_LIST_SUCCESS\"\r\nexport const PRODUCT_LIST_FAIL = \"PRODUCT_LIST_FAIL\"\r\n\r\nexport const PRODUCT_DETAILS_REQUEST = \"PRODUCT_DETAILS_REQUEST\"\r\nexport const PRODUCT_DETAILS_SUCCESS = \"PRODUCT_DETAILS_SUCCESS\"\r\nexport const PRODUCT_DETAILS_FAIL = \"PRODUCT_DETAILS_FAIL\"\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_FAIL = \"PRODUCT_CREATE_REVIEW_FAIL\"\r\nexport const PRODUCT_CREATE_REVIEW_RESET = \"PRODUCT_CREATE_REVIEW_RESET\"\r\n\r\nexport const PRODUCT_DELETE_REQUEST = \"PRODUCT_DELETE_REQUEST\"\r\nexport const PRODUCT_DELETE_SUCCESS = \"PRODUCT_DELETE_SUCCESS\"\r\nexport const PRODUCT_DELETE_FAIL = \"PRODUCT_DELETE_FAIL\"\r\n\r\nexport const PRODUCT_CREATE_REQUEST = \"PRODUCT_CREATE_REQUEST\"\r\nexport const PRODUCT_CREATE_SUCCESS = \"PRODUCT_CREATE_SUCCESS\"\r\nexport const PRODUCT_CREATE_FAIL = \"PRODUCT_CREATE_FAIL\"\r\nexport const PRODUCT_CREATE_RESET = \"PRODUCT_CREATE_RESET\"\r\n\r\nexport const PRODUCT_UPDATE_REQUEST = \"PRODUCT_UPDATE_REQUEST\"\r\nexport const PRODUCT_UPDATE_SUCCESS = \"PRODUCT_UPDATE_SUCCESS\"\r\nexport const PRODUCT_UPDATE_FAIL = \"PRODUCT_UPDATE_FAIL\"\r\nexport const PRODUCT_UPDATE_RESET = \"PRODUCT_UPDATE_RESET\"","import axios from \"axios\"\r\nimport { BLOG_DETAILS_REQUEST, BLOG_DETAILS_SUCCESS, BLOG_FETCH_FAIL, BLOG_FETCH_REQUEST, BLOG_FETCH_SUCCESS } from \"../../constants/blogConstant\"\r\nimport { PRODUCT_DETAILS_FAIL } from \"../../constants/productConstants\"\r\n\r\nconst baseUrl = 'https://plantland.herokuapp.com'\r\n// @ GET blogs\r\nexport const fetchBlogs = () => async (dispatch) => {\r\n try {\r\n dispatch({ type:BLOG_FETCH_REQUEST})\r\n\r\n const { data } = await axios.get(`${baseUrl}/api/blogs`)\r\n\r\n dispatch({\r\n type: BLOG_FETCH_SUCCESS,\r\n payload: data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: BLOG_FETCH_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n })\r\n }\r\n}\r\n\r\n// Get a blog by id\r\nexport const fetchBlogById = (id) => async (dispatch) => {\r\n try {\r\n dispatch({ type: BLOG_DETAILS_REQUEST })\r\n\r\n const { data } = await axios.get(`${baseUrl}/api/blogs/${id}`)\r\n dispatch({\r\n type: BLOG_DETAILS_SUCCESS,\r\n payload: data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: PRODUCT_DETAILS_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n })\r\n }\r\n\r\n}\r\n\r\n// Create blog\r\nexport const createBlog = (blogData) => async (dispatch,getState) => {\r\n\r\n try {\r\n // dispatch({\r\n // type:BLOG_CREATE_REQUEST\r\n // })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n const { data } = await axios.post(`${baseUrl}/api/blogs`,blogData,config)\r\n\r\n console.log(data);\r\n // dispatch({\r\n // type: BLOG_CREATE_SUCCESS,\r\n // payload:data\r\n // })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n // dispatch({\r\n // type: PRODUCT_CREATE_FAIL,\r\n // payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n // })\r\n \r\n }\r\n \r\n}","import React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nfunction Loader() {\r\n return (\r\n \r\n Loading...\r\n \r\n )\r\n}\r\n\r\nexport default Loader\r\n","import React from 'react'\r\nimport { Badge, Button, Card } from 'react-bootstrap'\r\nimport ReactHtmlParser from 'react-html-parser'\r\nimport { Link, useHistory } from 'react-router-dom'\r\nimport \"../../styles/blog.css\"\r\n\r\nfunction BlogCard({ blog }) {\r\n const history = useHistory()\r\n const handleViewBlog = (id) => {\r\n history.push(`/blog/${id}`)\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {blog.title}\r\n {blog.tags.map((tag,index) => (\r\n {tag}\r\n ))}\r\n \r\n {ReactHtmlParser(blog.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
\r\n )\r\n}\r\n\r\nexport default BlogCard\r\n","export const blogCategories = ['All', 'Plant', 'Gardening', 'Plant Diseases', 'Green Living', 'Gardening Tools', 'Others']\r\n\r\nexport const blogTags=[\"plants\", \"nature\", \"flowers\", \"plantsofinstagram\", \"garden\", \"plantsmakepeoplehappy\",\"plant\", \"green\", \"gardening\", \"houseplants\", \"photography\", \"naturephotography\",\"flower\", \"plantlover\", \"love\", \"indoorplants\", \"succulents\", \"urbanjungle\", \"cactus\", \"art\", \"beautiful\", \"plantlife\", \"photooftheday\", \"plantas\", \"plantstagram\", \"homedecor\", \"flowerstagram\", \"spring\", \"naturelovers\", \"bhfyp\"]\r\n\r\n","import React, { useEffect } from 'react'\r\nimport { Button, Col, Row } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { fetchBlogs } from '../../redux/actions/blogActions'\r\nimport '../../styles/blog.css'\r\nimport Loader from '../Ecommerce/Loader'\r\nimport BlogCard from './BlogCard'\r\nimport { blogCategories, blogTags } from './BlogSeedData'\r\n\r\nfunction Blog() {\r\n\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n\r\n const blogList = useSelector(state => state.blogList)\r\n const { loading, blogs} = blogList\r\n\r\n useEffect(() => {\r\n dispatch(fetchBlogs())\r\n }, [dispatch])\r\n\r\n function handleCreateBlog(){\r\n history.push(\"/newblog\")\r\n }\r\n return (\r\n <>\r\n
\r\n
\r\n

Blogs

\r\n

We all need a little green in our lives

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

Latest Articles

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

Discover the most outstanding articles in all topics related to Plants

\r\n
\r\n \r\n \r\n \r\n
\r\n
Category
\r\n {blogCategories.map(blog => (\r\n
{blog}
\r\n ))}\r\n
\r\n
\r\n

Discover Tags

\r\n
\r\n {blogTags.map(tag => (\r\n
{tag}
\r\n ))}\r\n
\r\n
\r\n \r\n {loading ? : (\r\n \r\n \r\n {blogs && blogs.map((blog,index) => (\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 Blog\r\n","import React from 'react'\r\nimport { Alert } from 'react-bootstrap'\r\n\r\nfunction Message({variant,children}) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nMessage.defaultProps = {\r\n variant:'info'\r\n}\r\n\r\nexport default Message\r\n","import React, { useEffect } from 'react'\r\nimport { Badge, Container } from 'react-bootstrap'\r\nimport ReactHtmlParser from 'react-html-parser'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { fetchBlogById } from '../../redux/actions/blogActions'\r\nimport '../../styles/blog.css'\r\nimport Loader from '../Ecommerce/Loader'\r\nimport Message from '../Ecommerce/Message'\r\n\r\nfunction BlogDetails({match}) {\r\n const dispatch = useDispatch()\r\n const blogDetails = useSelector(state => state.blogDetails)\r\n const { loading, blog, error } = blogDetails\r\n useEffect(() => {\r\n dispatch(fetchBlogById(match.params.id))\r\n }, [dispatch,match])\r\n \r\n return (\r\n \r\n {loading ? : error ? {error} : blog && (\r\n <>\r\n \"blog\r\n \r\n

{blog.title}

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

By {blog.author}

\r\n

Published in {blog.category}

\r\n

{blog.createdAt && new Date(blog.createdAt).toDateString()}

\r\n
\r\n {/*
\r\n  5\r\n  4\r\n
*/}\r\n
\r\n \r\n
\r\n {ReactHtmlParser(blog.description)}\r\n
\r\n
\r\n {blog.tags && blog.tags.map((tag, index) => ( \r\n {tag} \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 BlogDetails\r\n","import { toast } from 'react-toastify'\r\nimport 'react-toastify/dist/ReactToastify.css'\r\n\r\ntoast.configure()\r\n\r\nexport const toastSuccessMessage = (message) => {\r\n toast.success(message,{\r\n autoClose: 3000,\r\n })\r\n}\r\n\r\nexport const toastInfoMessage = (message) => {\r\n toast.info(message,{\r\n autoClose: 3000,\r\n })\r\n}\r\n\r\nexport const toastErrorMessage = (message) => {\r\n toast.error(message, {\r\n autoClose: 3000,\r\n position:'bottom-right'\r\n })\r\n}","import React from \"react\";\r\nconst { useState} = React;\r\n\r\nconst data = [{ id: \"plant\", label: \"Plant\" },\r\n { id: \"garden\", label: \"Gardening\" },\r\n { id: \"diseases\", label: \"Plant Diseases\" },\r\n { id: \"green\", label: \"Green Living\" },\r\n { id: \"tools\", label: \"Gardening Tools\" },\r\n { id: \"others\", label: \"Others\" },\r\n];\r\n\r\nconst BlogCategory = ({onCategorySelect}) => {\r\n const [isOpen, setOpen] = useState(false);\r\n const [items] = useState(data);\r\n const [selectedItem, setSelectedItem] = useState(null);\r\n \r\n const toggleDropdown = () => setOpen(!isOpen);\r\n \r\n const handleItemClick = (id) => {\r\n onCategorySelect(id)\r\n selectedItem === id ? setSelectedItem(null) : setSelectedItem(id);\r\n }\r\n \r\n return (\r\n
\r\n
\r\n {selectedItem ? items.find(item => item.id === selectedItem).label : \"Select Blog Category\"}\r\n \r\n
\r\n
\r\n {items.map(item => (\r\n
handleItemClick(e.target.id)} id={item.id}>\r\n \r\n {item.label}\r\n
\r\n ))}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default BlogCategory","import ClassicEditor from '@ckeditor/ckeditor5-build-classic'\r\nimport { CKEditor } from '@ckeditor/ckeditor5-react'\r\nimport axios from 'axios'\r\nimport React, { useState } from 'react'\r\nimport { Button } from 'react-bootstrap'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { createBlog } from '../../redux/actions/blogActions'\r\nimport { toastSuccessMessage } from '../Ecommerce/ToastMessage'\r\nimport BlogDropdown from './BlogCategory'\r\n\r\nfunction NewBlog() {\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n\r\n const [title, setTitle] = useState(\"\")\r\n const [category, setCategory] = useState(\"\")\r\n const [tags, setTags] = useState(\"\")\r\n const [image, setImage] = useState(\"\")\r\n const [content, setContent] = useState(\"\")\r\n\r\n\r\n const onCategorySelect = (category) => {\r\n setCategory(category)\r\n }\r\n\r\n const handleFormSubmit = (e) => {\r\n e.preventDefault()\r\n console.log(\"off\")\r\n const allTags = tags.split(\",\")\r\n const blogPost = {\r\n title,description:content,category,tags:allTags,image\r\n }\r\n try {\r\n dispatch(createBlog(blogPost))\r\n clearInputs()\r\n toastSuccessMessage(\"Blog Published\")\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n\r\n }\r\n\r\n const handleFileUpload = async (e) => {\r\n const file = e.target.files[0] \r\n const formData = new FormData()\r\n formData.append('image', file)\r\n\r\n try {\r\n const config = {\r\n headers: {\r\n 'Content-Type':'multipart/form-data'\r\n }\r\n }\r\n const { data } = await axios.post(`/api/uploads`, formData, config)\r\n setImage(data)\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n \r\n const clearInputs = () => {\r\n setTitle(\"\")\r\n setContent(\"\")\r\n setTags(\"\")\r\n setCategory(\"\")\r\n setImage(\"\")\r\n }\r\n\r\n return (\r\n
\r\n {image ? \"blog : ( \r\n \"blog\r\n ) }\r\n
\r\n
\r\n \r\n \r\n setTitle(e.target.value)}/>\r\n
\r\n
\r\n \r\n
\r\n
\r\n setTags(e.target.value)}/>\r\n
\r\n {/*
\r\n \r\n
*/}\r\n\r\n {/* Editor */}\r\n {\r\n const data = editor.getData();\r\n console.log(data);\r\n setContent(data)\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 NewBlog\r\n","import React from 'react'\r\nimport { Col, Container, Row } from 'react-bootstrap'\r\n\r\nfunction Footer() {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Footer\r\n","export const USER_LOGIN_REQUEST = \"USER_LOGIN_REQUEST\"\r\nexport const USER_LOGIN_SUCCESS = \"USER_LOGIN_SUCCESS\"\r\nexport const USER_LOGIN_FAIL = \"USER_LOGIN_FAIL\"\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_FAIL = \"USER_REGISTER_FAIL\"\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_FAIL = \"USER_DETAILS_FAIL\"\r\n\r\nexport const USER_PROFILE_UPDATE_REQUEST = \"USER_PROFILE_UPDATE_REQUEST\"\r\nexport const USER_PROFILE_UPDATE_SUCCESS = \"USER_PROFILE_UPDATE_SUCCESS\"\r\nexport const USER_PROFILE_UPDATE_FAIL = \"USER_PROFILE_UPDATE_FAIL\"\r\nexport const USER_PROFILE_UPDATE_RESET = \"USER_PROFILE_UPDATE_RESET\"\r\n\r\nexport const USER_LIST_REQUEST = \"USER_LIST_REQUEST\"\r\nexport const USER_LIST_SUCCESS = \"USER_LIST_SUCCESS\"\r\nexport const USER_LIST_FAIL = \"USER_LIST_FAIL\"\r\nexport const USER_LIST_RESET = \"USER_LIST_RESET\"\r\n\r\nexport const USER_DELETE_REQUEST = \"USER_DELETE_REQUEST\"\r\nexport const USER_DELETE_SUCCESS = \"USER_DELETE_SUCCESS\"\r\nexport const USER_DELETE_FAIL = \"USER_DELETE_FAIL\"","import axios from 'axios'\r\nimport { USER_DELETE_FAIL, USER_DELETE_REQUEST, USER_DELETE_SUCCESS, USER_DETAILS_FAIL, USER_DETAILS_REQUEST, USER_DETAILS_SUCCESS, USER_LIST_FAIL, USER_LIST_REQUEST, USER_LIST_RESET, USER_LIST_SUCCESS, USER_LOGIN_FAIL, USER_LOGIN_REQUEST, USER_LOGIN_SUCCESS, USER_LOGOUT, USER_PROFILE_UPDATE_FAIL, USER_PROFILE_UPDATE_REQUEST, USER_PROFILE_UPDATE_SUCCESS, USER_REGISTER_FAIL, USER_REGISTER_REQUEST, USER_REGISTER_SUCCESS } from '../../constants/userConstants'\r\n\r\nconst baseUrl = 'https://plantland.herokuapp.com'\r\n\r\nexport const login = (email,password) => async (dispatch) => {\r\n\r\n try {\r\n dispatch({\r\n type:USER_LOGIN_REQUEST\r\n })\r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n\r\n const { data } = await axios.post(`${baseUrl}/api/users/login`,\r\n {email, password },config)\r\n\r\n dispatch({\r\n type: USER_LOGIN_SUCCESS,\r\n payload:data\r\n })\r\n\r\n localStorage.setItem('userInfo',JSON.stringify(data))\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: USER_LOGIN_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\n\r\nexport const googleLogin = (data) => async (dispatch) => {\r\n try {\r\n dispatch({\r\n type:USER_LOGIN_REQUEST\r\n })\r\n\r\n dispatch({\r\n type: USER_LOGIN_SUCCESS,\r\n payload:data\r\n })\r\n\r\n localStorage.setItem('userInfo',JSON.stringify(data))\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: USER_LOGIN_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n }\r\n}\r\n\r\n\r\nexport const logout = () => (dispatch) => {\r\n localStorage.removeItem('userInfo')\r\n dispatch({\r\n type:USER_LOGOUT\r\n })\r\n dispatch({\r\n type:USER_LIST_RESET\r\n })\r\n}\r\n\r\n\r\nexport const register = (name,email,password,confirmPassword) => async (dispatch) => {\r\n\r\n try {\r\n dispatch({\r\n type:USER_REGISTER_REQUEST\r\n })\r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n\r\n const { data } = await axios.post(`${baseUrl}/api/users/register`,\r\n {name,email,password,confirmPassword},config)\r\n\r\n dispatch({\r\n type: USER_REGISTER_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: USER_REGISTER_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\n\r\nexport const getUserDetails = (id) => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:USER_DETAILS_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n const { data } = await axios.get(`${baseUrl}/api/users/${id}`, config)\r\n\r\n dispatch({\r\n type: USER_DETAILS_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: USER_DETAILS_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\n\r\nexport const updateUserProfile = (user) => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:USER_PROFILE_UPDATE_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n const { data } = await axios.put(`${baseUrl}/api/users/profile`,user, config)\r\n \r\n console.log(data);\r\n\r\n dispatch({\r\n type: USER_PROFILE_UPDATE_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: USER_PROFILE_UPDATE_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\n\r\nexport const getUserList = () => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:USER_LIST_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n const { data } = await axios.get(`${baseUrl}/api/users`,config)\r\n\r\n dispatch({\r\n type: USER_LIST_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: USER_LIST_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\n\r\nexport const deleteUser = (id) => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:USER_DELETE_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n await axios.delete(`${baseUrl}/api/users/${id}`,config)\r\n\r\n dispatch({\r\n type: USER_DELETE_SUCCESS,\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: USER_DELETE_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}","import React from 'react'\r\nimport { Container, Nav, Navbar, NavDropdown } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { LinkContainer } from 'react-router-bootstrap'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { logout } from '../../redux/actions/userActions'\r\nimport { toastErrorMessage } from './ToastMessage'\r\n\r\n\r\nfunction Header() {\r\n const { userInfo } = useSelector(state => state.userLogin)\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n\r\n const handleLogout = () => {\r\n dispatch(logout())\r\n history.push(\"/market\")\r\n toastErrorMessage(\"You're logged out\")\r\n }\r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n Plant Land\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 Header\r\n","export const CART_ADD_ITEM = \"CART_ADD_ITEM\";\r\nexport const CART_REMOVE_ITEM = \"CART_REMOVE_ITEM\";\r\nexport const CART_SAVE_SHIPPING_ADDRESS = \"CART_SAVE_SHIPPING_ADDRESS\";\r\nexport const CART_SAVE_PAYMENT_METHOD = \"CART_SAVE_PAYMENT_METHOD\";\r\nexport const CART_RESET = 'CART_RESET'\r\n","import axios from \"axios\";\r\nimport {\r\n CART_ADD_ITEM,\r\n CART_REMOVE_ITEM, CART_SAVE_PAYMENT_METHOD, CART_SAVE_SHIPPING_ADDRESS\r\n} from \"../../constants/cartConstants\";\r\n\r\nconst baseUrl = 'https://plantland.herokuapp.com'\r\n\r\nexport const addToCart = (id, qty) => async (dispatch, getState) => {\r\n try {\r\n const { data } = await axios.get(`${baseUrl}/api/products/${id}`);\r\n\r\n dispatch({\r\n type: CART_ADD_ITEM,\r\n payload: {\r\n productId: data._id,\r\n name: data.name,\r\n image: data.image,\r\n price: data.price,\r\n countInStock: data.countInStock,\r\n qty,\r\n },\r\n });\r\n\r\n localStorage.setItem(\r\n \"cartItems\",\r\n JSON.stringify(getState().cart.cartItems)\r\n );\r\n } catch (error) {\r\n console.log(\"Gg\", error);\r\n }\r\n};\r\n\r\nexport const removeFromCart = (id) => async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: CART_REMOVE_ITEM,\r\n payload: id,\r\n });\r\n\r\n localStorage.setItem(\r\n \"cartItems\",\r\n JSON.stringify(getState().cart.cartItems)\r\n );\r\n } catch (error) {\r\n console.log(\"Gg\", error);\r\n }\r\n};\r\n\r\nexport const saveShippingAddress = (data) => (dispatch) => {\r\n dispatch({\r\n type: CART_SAVE_SHIPPING_ADDRESS,\r\n payload: data,\r\n });\r\n\r\n localStorage.setItem(\"shippingAddress\", JSON.stringify(data));\r\n};\r\n\r\nexport const savePaymentMethod = (data) => (dispatch) => {\r\n dispatch({\r\n type: CART_SAVE_PAYMENT_METHOD,\r\n payload: data,\r\n });\r\n\r\n localStorage.setItem(\"paymentMethod\", JSON.stringify(data));\r\n};\r\n","import React, { useEffect } from 'react'\r\nimport { Button, Card, Col, FormControl, Image, ListGroup, Row } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Link } from 'react-router-dom'\r\nimport { addToCart, removeFromCart } from '../../../redux/actions/cartActions'\r\nimport Message from '../Message'\r\n\r\n\r\nfunction CartScreen({ match, history, location }) {\r\n const dispatch = useDispatch()\r\n \r\n const productId = match.params.id\r\n const qty = location.search ? Number(location.search.split(\"=\")[1]) : 1\r\n\r\n const {cartItems} = useSelector(state => state.cart)\r\n\r\n useEffect(() => {\r\n if(productId)\r\n dispatch(addToCart(productId,qty))\r\n }, [dispatch, productId, qty])\r\n \r\n const removeFromCartHandler = (id) => {\r\n dispatch(removeFromCart(id))\r\n }\r\n const checkoutHandler = () => {\r\n history.push(\"/login?redirect=shipping\")\r\n }\r\n\r\n return (\r\n
\r\n \r\n

Shopping Cart

\r\n \r\n {cartItems.length === 0 ? Your cart is empty. Go Back : (\r\n \r\n {cartItems.map(item => (\r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n {item.name}\r\n \r\n \r\n  {item.price}\r\n \r\n \r\n dispatch(addToCart(item.productId,Number(e.target.value)))}\r\n >\r\n {[...Array(item.countInStock).keys()].map(p => (\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

Subtotal ({cartItems.reduce((acc,item)=>acc+item.qty,0)}) items

\r\n
\r\n \r\n \r\n Price \r\n {cartItems.reduce((acc,item)=>acc + item.qty * item.price,0).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\n}\r\n\r\nexport default CartScreen\r\n","import React from 'react'\r\nimport { Col, Container, Row } from 'react-bootstrap'\r\n\r\nfunction FormContainer({children}) {\r\n return (\r\n \r\n \r\n {children} \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormContainer\r\n","import axios from 'axios'\r\nimport React, { useState } from 'react'\r\nimport { Button, Form } from 'react-bootstrap'\r\nimport FormContainer from '../FormContainer'\r\nimport Message from '../Message'\r\nimport { toastInfoMessage } from '../ToastMessage'\r\n\r\nfunction ForgetPasswordScreen() {\r\n const [email, setEmail] = useState('')\r\n const [error, setError] = useState('')\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault()\r\n\r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n \r\n try {\r\n await axios.post(\"/api/users/forget-password\", { email }, config)\r\n toastInfoMessage(\"Instructions to reset your password has been sent to your email\")\r\n \r\n } catch (error) {\r\n setError(error.response && error.response.data.message ? error.response.data.message : error.message)\r\n setEmail('')\r\n setTimeout(() => {\r\n setError(\"\")\r\n }, 3000);\r\n\r\n }\r\n }\r\n return (\r\n \r\n

Forget Password ?

\r\n

Enter the email address you used when you joined and we’ll send you instructions to reset your password.

\r\n {error && {error}}\r\n\r\n
\r\n \r\n Email Address\r\n setEmail(e.target.value)} />\r\n \r\n\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ForgetPasswordScreen\r\n","import axios from 'axios';\r\nimport { PRODUCT_CREATE_FAIL, PRODUCT_CREATE_REQUEST, PRODUCT_CREATE_REVIEW_FAIL, PRODUCT_CREATE_REVIEW_REQUEST, PRODUCT_CREATE_REVIEW_SUCCESS, PRODUCT_CREATE_SUCCESS, PRODUCT_DELETE_FAIL, PRODUCT_DELETE_REQUEST, PRODUCT_DELETE_SUCCESS, PRODUCT_DETAILS_FAIL, PRODUCT_DETAILS_REQUEST, PRODUCT_DETAILS_SUCCESS, PRODUCT_LIST_FAIL, PRODUCT_LIST_REQUEST, PRODUCT_LIST_SUCCESS, PRODUCT_UPDATE_FAIL, PRODUCT_UPDATE_REQUEST, PRODUCT_UPDATE_SUCCESS } from '../../constants/productConstants';\r\n\r\nconst baseUrl = 'https://plantland.herokuapp.com'\r\n\r\n// @ GET products\r\nexport const fetchProducts = (keyword='',pageNumber='',category='',sort='') => async (dispatch) => {\r\n try {\r\n dispatch({ type: PRODUCT_LIST_REQUEST })\r\n\r\n const { data } = await axios.get(`${baseUrl}/api/products?category=${category}&keyword=${keyword}&pageNumber=${pageNumber}&sort=${sort}`)\r\n\r\n dispatch({\r\n type: PRODUCT_LIST_SUCCESS,\r\n payload: data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: PRODUCT_LIST_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n })\r\n }\r\n\r\n \r\n}\r\n\r\n// @ GET one product\r\nexport const fetchProductById = (id) => async (dispatch) => {\r\n try {\r\n \r\n dispatch({ type: PRODUCT_DETAILS_REQUEST })\r\n\r\n const { data } = await axios.get(`${baseUrl}/api/products/${id}`)\r\n dispatch({\r\n type: PRODUCT_DETAILS_SUCCESS,\r\n payload: data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: PRODUCT_DETAILS_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n })\r\n }\r\n\r\n}\r\n\r\n\r\n// @ Create product review\r\nexport const createProductReview = (productId,review) => async (dispatch,getState) => {\r\n try {\r\n dispatch({ type: PRODUCT_CREATE_REVIEW_REQUEST })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n await axios.post(`${baseUrl}/api/products/${productId}/reviews`,review,config)\r\n\r\n dispatch({\r\n type: PRODUCT_CREATE_REVIEW_SUCCESS,\r\n })\r\n \r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: PRODUCT_CREATE_REVIEW_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n })\r\n }\r\n\r\n}\r\n\r\n// Delete products\r\nexport const deleteProduct = (id) => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:PRODUCT_DELETE_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n await axios.delete(`${baseUrl}/api/products/${id}`,config)\r\n\r\n dispatch({\r\n type: PRODUCT_DELETE_SUCCESS,\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: PRODUCT_DELETE_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\n// Create products\r\nexport const createProduct = () => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:PRODUCT_CREATE_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n const { data } = await axios.post(`/api/products`,{},config)\r\n\r\n dispatch({\r\n type: PRODUCT_CREATE_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: PRODUCT_CREATE_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\n// Update Products\r\nexport const updateProduct = (product) => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:PRODUCT_UPDATE_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n const { data } = await axios.put(`/api/products/${product._id}`,product,config)\r\n\r\n dispatch({\r\n type: PRODUCT_UPDATE_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: PRODUCT_UPDATE_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n","import React from 'react'\r\nimport { Dropdown, DropdownButton } from 'react-bootstrap'\r\n\r\nfunction FilterCategory({ handleCategoryChange }) {\r\n const categoryList = [\"Plant\",\"Flower\",\"Seed\",\"Pesticide\",\"Tool\"]\r\n return (\r\n <>\r\n \r\n {categoryList.map(category => (\r\n {category}\r\n ))}\r\n\r\n Soil and Fertilizer\r\n\r\n \r\n \r\n\r\n )\r\n}\r\n\r\nexport default FilterCategory\r\n","import React from 'react'\r\nimport { Dropdown, DropdownButton } from 'react-bootstrap'\r\n\r\nfunction FilterCategory({handleSortChange}) {\r\n return (\r\n <>\r\n \r\n Highest Rated\r\n Newest\r\n Price: Low to High\r\n Price: High to Low\r\n \r\n \r\n\r\n )\r\n}\r\n\r\nexport default FilterCategory\r\n","import React from 'react';\r\nimport { Pagination } from 'react-bootstrap';\r\nimport { LinkContainer } from 'react-router-bootstrap';\r\n\r\nfunction Paginate({ page, numOfPages, keyword = '', sort = '', isAdmin = false }) {\r\n return (\r\n numOfPages > 1 && (\r\n \r\n {[...Array(numOfPages).keys()].map(p => (\r\n \r\n {p + 1}\r\n \r\n ))}\r\n \r\n )\r\n\r\n )\r\n}\r\n\r\nexport default Paginate\r\n","import React from 'react'\r\nimport '../../styles/ecommerce.css'\r\n\r\nfunction Rating({ value, text }) {\r\n return (\r\n
\r\n
\r\n \r\n =1 ? 'fas fa-star': value >=0.5 ? 'fas fa-star-half-alt' : 'far fas-star'}>\r\n \r\n \r\n =2 ? 'fas fa-star': value >=1.5 ? 'fas fa-star-half-alt' : 'far fas-star'}>\r\n \r\n \r\n =3 ? 'fas fa-star': value >=2.5 ? 'fas fa-star-half-alt' : 'far fas-star'}>\r\n \r\n \r\n =4 ? 'fas fa-star': value >=3.5 ? 'fas fa-star-half-alt' : 'far fas-star'}>\r\n \r\n \r\n =5 ? 'fas fa-star': value >=4.5 ? 'fas fa-star-half-alt' : 'far fas-star'}>\r\n \r\n
\r\n\r\n {text !== 'hidden' && (\r\n
\r\n {text ? `${text} reviews` : 'No reviews yet'}\r\n
\r\n )}\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default Rating\r\n","import React from 'react'\r\nimport { Button, Card } from 'react-bootstrap'\r\nimport { Link, useHistory } from 'react-router-dom'\r\nimport \"../../styles/ecommerce.css\"\r\nimport Rating from './Rating'\r\n\r\nfunction Product({ product }) {\r\n\r\n const history = useHistory()\r\n const HandleViewDetails = (id) => {\r\n history.push(`/product/${id}`)\r\n }\r\n \r\n\r\n return (\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  {product.price}\r\n \r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Product\r\n","import React, { useState } from 'react'\r\nimport { Button, Form } from 'react-bootstrap'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nfunction SearchBox() {\r\n const [keyword, setKeyword] = useState('')\r\n const history = useHistory()\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault()\r\n if (keyword.trim()) {\r\n history.push(`/search/${keyword}`)\r\n }else history.push(\"/market\")\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n setKeyword(e.target.value)}\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SearchBox\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Col, Row } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { fetchProducts } from '../../../redux/actions/productActions'\r\nimport \"../../../styles/ecommerce.css\"\r\nimport FilterCategory from '../FilterCategory'\r\nimport FilterSort from \"../FilterSort\"\r\nimport Loader from '../Loader'\r\nimport Message from '../Message'\r\nimport Paginate from '../Paginate'\r\nimport Product from '../Product'\r\nimport SearchBox from '../SearchBox'\r\n\r\n\r\nfunction HomeScreen({ match }) {\r\n \r\n const [productCategory, setProductCategory] = useState('')\r\n const [productSort, setProductSort] = useState('')\r\n\r\n const dispatch = useDispatch()\r\n const productList = useSelector(state => state.productList)\r\n const { loading, error, products, page, numOfPages } = productList\r\n \r\n const keyword = match.params.keyword\r\n const pageNumber = match.params.pageNumber || 1\r\n const category = productCategory\r\n const sort = productSort\r\n\r\n useEffect(() => {\r\n dispatch(fetchProducts(keyword,pageNumber,category,sort))\r\n }, [dispatch,keyword,pageNumber,category,sort])\r\n\r\n const handleCategoryChange = (e) => {\r\n setProductCategory(e.toLowerCase());\r\n }\r\n\r\n const handleSortChange = (e) => {\r\n setProductSort(e);\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 \r\n \r\n

Latest Products

\r\n\r\n {loading ? : error ? {error} : (\r\n <>\r\n \r\n {products.map(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
\r\n )\r\n}\r\n\r\nexport default HomeScreen\r\n","import React from 'react'\r\nimport { Button } from 'react-bootstrap'\r\nimport { GoogleLogin } from 'react-google-login'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { googleLogin } from '../../redux/actions/userActions'\r\n\r\nfunction GoogleAuth() {\r\n \r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n\r\n const googleSuccess = async (res) => {\r\n // console.log(res);\r\n const user = res?.profileObj;\r\n const token = res?.tokenId\r\n \r\n try {\r\n const data = { user, token }\r\n dispatch(googleLogin(data))\r\n history.push(\"/market\")\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n \r\n }\r\n const googleFailure = () => {\r\n console.log(\"Google Sign in was unsuccessful. Try again later\");\r\n }\r\n return (\r\n
\r\n (\r\n \r\n )}\r\n onSuccess={googleSuccess}\r\n onFailure={googleFailure}\r\n cookiePolicy=\"single_host_origin\"\r\n /> \r\n
\r\n )\r\n}\r\n\r\nexport default GoogleAuth\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Button, Col, Form, Row } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Link } from 'react-router-dom'\r\nimport { login } from '../../../redux/actions/userActions'\r\nimport FormContainer from '../FormContainer'\r\nimport GoogleAuth from '../GoogleAuth'\r\nimport Loader from '../Loader'\r\nimport Message from '../Message'\r\nimport { toastInfoMessage } from '../ToastMessage'\r\n\r\nfunction LoginScreen({location,history}) {\r\n\r\n const [email, setEmail] = useState('')\r\n const [password, setPassword] = useState('')\r\n\r\n const redirect = location.search ? location.search.split(\"=\")[1] : \"/market\"\r\n\r\n const dispatch = useDispatch()\r\n const userLogin = useSelector(state => state.userLogin)\r\n const { loading, error, userInfo } = userLogin\r\n \r\n useEffect(() => {\r\n if (userInfo) {\r\n toastInfoMessage(`Hey, nice to see you back ${userInfo.user.name}`)\r\n history.push(redirect)\r\n }\r\n }, [history,redirect,userInfo])\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault()\r\n dispatch(login(email, password))\r\n }\r\n\r\n return (\r\n \r\n

Sign In

\r\n {error && {error}}\r\n {loading && }\r\n
\r\n \r\n Email Address\r\n setEmail(e.target.value)} />\r\n \r\n\r\n \r\n Password\r\n setPassword(e.target.value)} />\r\n \r\n Forget Password ?\r\n\r\n \r\n
\r\n\r\n \r\n
Or
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Don't have an Account ? Create one\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default LoginScreen\r\n","export const ORDER_CREATE_REQUEST = \"ORDER_CREATE_REQUEST\";\r\nexport const ORDER_CREATE_SUCCESS = \"ORDER_CREATE_SUCCESS\";\r\nexport const ORDER_CREATE_FAIL = \"ORDER_CREATE_FAIL\";\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_FAIL = \"ORDER_DETAILS_FAIL\";\r\n\r\nexport const ORDER_MY_LIST_REQUEST = \"ORDER_MY_LIST_REQUEST\";\r\nexport const ORDER_MY_LIST_SUCCESS = \"ORDER_MY_LIST_SUCCESS\";\r\nexport const ORDER_MY_LIST_FAIL = \"ORDER_MY_LIST_FAIL\";\r\n\r\nexport const ORDER_LIST_REQUEST = \"ORDER_LIST_REQUEST\";\r\nexport const ORDER_LIST_SUCCESS = \"ORDER_LIST_SUCCESS\";\r\nexport const ORDER_LIST_FAIL = \"ORDER_LIST_FAIL\";\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_FAIL = \"ORDER_PAY_FAIL\";\r\nexport const ORDER_PAY_RESET = \"ORDER_PAY_RESET\";\r\n\r\nexport const ORDER_DELIVER_REQUEST = \"ORDER_DELIVER_REQUEST\";\r\nexport const ORDER_DELIVER_SUCCESS = \"ORDER_DELIVER_SUCCESS\";\r\nexport const ORDER_DELIVER_FAIL = \"ORDER_DELIVER_FAIL\";\r\nexport const ORDER_DELIVER_RESET = \"ORDER_DELIVER_RESET\";\r\n\r\nexport const ORDER_DATA_REQUEST = \"ORDER_DATA_REQUEST\";\r\nexport const ORDER_DATA_SUCCESS = \"ORDER_DATA_SUCCESS\";\r\nexport const ORDER_DATA_FAIL = \"ORDER_DATA_FAIL\";\r\n\r\nexport const ORDER_SALE_DATA_REQUEST = \"ORDER_SALE_DATA_REQUEST\";\r\nexport const ORDER_SALE_DATA_SUCCESS = \"ORDER_SALE_DATA_SUCCESS\";\r\nexport const ORDER_SALE_DATA_FAIL = \"ORDER_SALE_DATA_FAIL\";\r\n\r\n\r\n","import axios from \"axios\";\r\nimport {\r\n ORDER_CREATE_FAIL, ORDER_CREATE_REQUEST, ORDER_CREATE_SUCCESS, ORDER_DATA_FAIL, ORDER_DATA_REQUEST, ORDER_DATA_SUCCESS, ORDER_DELIVER_FAIL, ORDER_DELIVER_REQUEST, ORDER_DELIVER_SUCCESS, ORDER_DETAILS_FAIL, ORDER_DETAILS_REQUEST, ORDER_DETAILS_SUCCESS, ORDER_LIST_FAIL, ORDER_LIST_REQUEST, ORDER_LIST_SUCCESS, ORDER_MY_LIST_FAIL, ORDER_MY_LIST_REQUEST, ORDER_MY_LIST_SUCCESS, ORDER_PAY_FAIL, ORDER_PAY_REQUEST, ORDER_PAY_SUCCESS, ORDER_SALE_DATA_FAIL, ORDER_SALE_DATA_REQUEST, ORDER_SALE_DATA_SUCCESS\r\n} from \"../../constants/orderConstants\";\r\n\r\nconst baseUrl = 'https://plantland.herokuapp.com'\r\n\r\nexport const createOrder = (order) => async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: ORDER_CREATE_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.post(`${baseUrl}/api/orders`, order, config);\r\n\r\n dispatch({\r\n type: ORDER_CREATE_SUCCESS,\r\n payload: data,\r\n });\r\n /* dispatch({\r\n type: CART_CLEAR_ITEMS,\r\n payload: data,\r\n }) */\r\n /* localStorage.removeItem('cartItems') */\r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: ORDER_CREATE_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message,\r\n });\r\n /* if (message === 'Not authorized, token failed') {\r\n dispatch(logout())\r\n }\r\n dispatch({\r\n type: ORDER_CREATE_FAIL,\r\n payload: message,\r\n }) */\r\n }\r\n};\r\n\r\n\r\nexport const getOrderList = () => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:ORDER_LIST_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n const { data } = await axios.get(`${baseUrl}/api/orders`,config)\r\n\r\n dispatch({\r\n type: ORDER_LIST_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: ORDER_LIST_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\nexport const getMyOrders = () => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:ORDER_MY_LIST_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n const { data } = await axios.get(`${baseUrl}/api/orders/my-orders`,config)\r\n\r\n dispatch({\r\n type: ORDER_MY_LIST_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: ORDER_MY_LIST_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\nexport const getOrderDetails = (id) => async (dispatch,getState) => {\r\n\r\n try {\r\n \r\n dispatch({\r\n type:ORDER_DETAILS_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n \r\n }\r\n \r\n\r\n const { data } = await axios.get(`${baseUrl}/api/orders/${id}`,config)\r\n dispatch({\r\n type: ORDER_DETAILS_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: ORDER_DETAILS_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n}\r\n\r\nexport const payOrder = (id,paymentResult) => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:ORDER_PAY_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n \r\n }\r\n\r\n const { data } = await axios.put(`${baseUrl}/api/orders/${id}/pay`,paymentResult,config)\r\n\r\n console.log(data);\r\n dispatch({\r\n type: ORDER_PAY_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: ORDER_PAY_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\nexport const deliverOrder = (order) => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type: ORDER_DELIVER_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n \r\n }\r\n\r\n const { data } = await axios.put(`${baseUrl}/api/orders/${order._id}/deliver`,{},config)\r\n\r\n console.log(data);\r\n dispatch({\r\n type: ORDER_DELIVER_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: ORDER_DELIVER_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\n\r\n\r\nexport const getOrderData = () => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:ORDER_DATA_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n const { data } = await axios.get(`${baseUrl}/api/orders/order-data`, config)\r\n\r\n dispatch({\r\n type: ORDER_DATA_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: ORDER_DATA_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}\r\n\r\n\r\nexport const getSaleData = () => async (dispatch,getState) => {\r\n\r\n try {\r\n dispatch({\r\n type:ORDER_SALE_DATA_REQUEST\r\n })\r\n\r\n const { userLogin: { userInfo } } = getState()\r\n \r\n \r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${userInfo.token}`\r\n }\r\n }\r\n\r\n const { data } = await axios.get(`${baseUrl}/api/orders/saleDataByYear`, config)\r\n\r\n dispatch({\r\n type: ORDER_SALE_DATA_SUCCESS,\r\n payload:data\r\n })\r\n \r\n } catch (error) {\r\n console.log(error);\r\n dispatch({\r\n type: ORDER_SALE_DATA_FAIL,\r\n payload: error.response && error.response.data.message ? error.response.data.message : error.message\r\n \r\n })\r\n \r\n }\r\n \r\n}","import React from 'react'\r\nimport \"../../styles/ecommerce.css\"\r\nfunction Sidebar() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default Sidebar\r\n","import React, { useEffect } from 'react'\r\nimport { Col, Row, Table } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { getOrderData } from '../../../redux/actions/orderActions'\r\nimport \"../../../styles/ecommerce.css\"\r\nimport Loader from \"../Loader\"\r\nimport Message from \"../Message\"\r\nimport Sidebar from \"../Sidebar\"\r\n\r\n\r\nfunction OrderDataScreen({history}) {\r\n\r\n const dispatch = useDispatch()\r\n const { userInfo: { user } } = useSelector(state => state.userLogin)\r\n\r\n const order = useSelector(state => state.orderData)\r\n const { loading, error, orderData } = order\r\n\r\n // if(orderData) console.log(orderData)\r\n\r\n useEffect(() => {\r\n if (user && user.isAdmin) {\r\n dispatch(getOrderData())\r\n } else {\r\n history.push(\"/login\")\r\n }\r\n }, [dispatch,history,user])\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {loading ? : error ? {error} : (\r\n <>\r\n {orderData &&\r\n <>\r\n \r\n\r\n {/* Card-data */}\r\n
\r\n
\r\n
\r\n \r\n

Total Orders

\r\n
\r\n

{orderData.totalOrder}

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

Order Paid

\r\n
\r\n

{orderData.totalPaidOrder}

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

Order Delivered

\r\n
\r\n

{orderData.totalDelivered}

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

Top Sold Products

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {orderData?.productSaleData?.map(product => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
PlantQuantity Sold
{product._id}{product.total}
\r\n \r\n \r\n \r\n

Top Buyers

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {orderData?.customerBuyData?.map(customer => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
NameEmailAmount
{customer.customer_name}{customer.customer_email}{Math.ceil(customer.total)}
\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 OrderDataScreen\r\n","import React, { useEffect } from 'react'\r\nimport { Button, Col, Row, Table } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { LinkContainer } from 'react-router-bootstrap'\r\nimport { getOrderList } from '../../../redux/actions/orderActions'\r\nimport Loader from '../Loader'\r\nimport Message from '../Message'\r\nimport Sidebar from '../Sidebar'\r\n\r\nfunction OrderListScreen({history}) {\r\n\r\n const dispatch = useDispatch()\r\n const { userInfo: { user } } = useSelector(state => state.userLogin)\r\n \r\n \r\n const orderList = useSelector(state => state.orderList)\r\n const { loading, error, orders } = orderList\r\n \r\n useEffect(() => {\r\n if (user && user.isAdmin) {\r\n dispatch(getOrderList())\r\n } else {\r\n history.push(\"/login\")\r\n }\r\n }, [dispatch,history,user])\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {loading ? : error ? {error} : (\r\n <>\r\n

All Orders

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {orders.map(order=>(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
USERDATETOTALPAIDDelivered
{order.user && order.user.name}{order.createdAt.substring(0, 10)} {order.totalPrice}\r\n {order?.isPaid ? order.paidAt.substring(0,10) : }\r\n \r\n {order?.isDelivered ? order.deliverAt.substring(0,10) : }\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 OrderListScreen\r\n","import axios from \"axios\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Button, Card, Col, Image, ListGroup, Row } from \"react-bootstrap\";\r\nimport { PayPalButton } from 'react-paypal-button-v2';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { ORDER_DELIVER_RESET, ORDER_PAY_RESET } from '../../../constants/orderConstants';\r\nimport { deliverOrder, getOrderDetails, payOrder } from \"../../../redux/actions/orderActions\";\r\nimport Loader from \"../Loader\";\r\nimport Message from \"../Message\";\r\n\r\nconst OrderScreen = ({ match,history }) => {\r\n\r\n const orderId = match.params.id\r\n const dispatch = useDispatch();\r\n\r\n const [sdkReady, setSdkReady] = useState(false)\r\n \r\n \r\n const orderDetails = useSelector((state) => state.orderDetails);\r\n const { order, loading, error } = orderDetails;\r\n \r\n const orderPay = useSelector((state) => state.orderPay);\r\n const { loading: loadingPay, success: successPay } = orderPay;\r\n \r\n const orderDeliver = useSelector((state) => state.orderDeliver);\r\n const { success: successDeliver } = orderDeliver;\r\n \r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo:{user} } = userLogin;\r\n\r\n\r\n if (!loading) {\r\n const addDecimals = (num) => {\r\n return (Math.round(num * 100) / 100).toFixed(2);\r\n \r\n };\r\n order.itemsPrice = addDecimals(\r\n order?.orderedItems?.reduce((acc, item) => acc + item.price * item.qty, 0)\r\n ); \r\n }\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (!user) {\r\n return history.push('/login')\r\n }\r\n \r\n const addPayPalScript = async (req, res) => {\r\n const { data: clientId } = await axios.get('/api/config/paypal')\r\n console.log(clientId);\r\n\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 \r\n if (!order || successPay) {\r\n dispatch({ type: ORDER_PAY_RESET })\r\n dispatch({ type: ORDER_DELIVER_RESET })\r\n dispatch(getOrderDetails(orderId))\r\n } else if (!order.isPaid) {\r\n if (!window.paypal) {\r\n addPayPalScript()\r\n }else setSdkReady(true)\r\n }\r\n\r\n }, [dispatch,order,orderId,successPay,successDeliver,history,user])\r\n\r\n const successPaymentHandler = (paymentResult) => {\r\n dispatch(payOrder(orderId,paymentResult))\r\n }\r\n\r\n const handleDeliver = () => {\r\n dispatch(deliverOrder(order))\r\n }\r\n\r\n // console.log(order._id)\r\n\r\n return loading ? : error ? {error} :\r\n <>\r\n

Order {order._id}

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

Shipping

\r\n

Name:   {order.user.name}

\r\n

Email:   {order.user.email}

\r\n

\r\n Address:   \r\n {order.shippingAddress.address}, {order.shippingAddress.city}{\" \"}\r\n {order.shippingAddress.thana}, {order.shippingAddress.houseNumber}\r\n

\r\n {order.isDelivered ? Delivery Done : Not Delivered}\r\n \r\n \r\n
\r\n\r\n \r\n

Payment Method

\r\n

\r\n Method: \r\n {order.paymentMethod}\r\n

\r\n\r\n {order.isPaid ? Payment Done : Not Paid }\r\n \r\n
\r\n \r\n

Order Items

\r\n {order?.orderedItems?.length === 0 ? (\r\n Order is empty\r\n ) : (\r\n \r\n {order?.orderedItems?.map((item, index) => (\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.qty} x ৳{item.price} = ৳{item.qty * item.price}\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

Order Summary

\r\n
\r\n \r\n \r\n Items\r\n ৳{order.itemsPrice}\r\n \r\n \r\n \r\n \r\n Delivery Charge\r\n ৳{order.shippingPrice}\r\n \r\n \r\n\r\n \r\n \r\n Total\r\n ৳{order.totalPrice}\r\n \r\n \r\n \r\n {user && !user.isAdmin && !order.isPaid && (\r\n \r\n {loadingPay && }\r\n {!sdkReady ? : (\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {user && user.isAdmin && order.isPaid && !order.isDelivered && (\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 OrderScreen;\r\n","import axios from 'axios'\r\nimport React, { useState } from 'react'\r\nimport { Button, Form } from 'react-bootstrap'\r\nimport FormContainer from '../FormContainer'\r\nimport Message from '../Message'\r\nimport { toastSuccessMessage } from '../ToastMessage'\r\n\r\nfunction ForgetPasswordScreen({match,history}) {\r\n const [password, setPassword] = useState('')\r\n const [confirmPassword, setConfirmPassword] = useState('')\r\n const [error, setError] = useState('')\r\n\r\n const clear = (errorText) => {\r\n setPassword(\"\")\r\n setConfirmPassword(\"\")\r\n setTimeout(() => {\r\n setError(\"\")\r\n }, 3000);\r\n return setError(errorText)\r\n }\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault()\r\n\r\n if (password.length < 6) {\r\n return clear(\"Password must be at least 6 characters\")\r\n } \r\n if (password !== confirmPassword) {\r\n return clear(\"Password doesn't match\")\r\n }\r\n\r\n\r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n\r\n \r\n try {\r\n await axios.put(`/api/users/reset-password/${match.params.resetToken}`, { password }, config)\r\n toastSuccessMessage(\"You're password has been updated\")\r\n history.push(\"/login\")\r\n \r\n } catch (error) {\r\n setError(error.response && error.response.data.message ? error.response.data.message : error.message)\r\n setPassword(\"\")\r\n setConfirmPassword(\"\")\r\n setTimeout(() => {\r\n setError(\"\")\r\n }, 3000);\r\n\r\n }\r\n }\r\n return (\r\n \r\n

Reset Your Password

\r\n {error && {error}}\r\n
\r\n \r\n Password\r\n setPassword(e.target.value)} />\r\n \r\n\r\n \r\n Retype Password\r\n setConfirmPassword(e.target.value)} />\r\n \r\n\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ForgetPasswordScreen\r\n","import React from \"react\";\r\nimport { Nav } from \"react-bootstrap\";\r\nimport { LinkContainer } from \"react-router-bootstrap\";\r\n\r\nconst CheckoutSteps = ({ step1, step2, step3, step4 }) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutSteps;\r\n","import React, { useState } from \"react\";\r\nimport { Form, Button, Col } from \"react-bootstrap\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport FormContainer from \"../FormContainer\";\r\nimport CheckoutSteps from \"../CheckoutSteps\";\r\nimport { savePaymentMethod } from \"../../../redux/actions/cartActions\";\r\n\r\nconst PaymentScreen = ({ history }) => {\r\n const cart = useSelector((state) => state.cart);\r\n const { shippingAddress } = cart;\r\n\r\n if (!shippingAddress.address) {\r\n history.push(\"/shipping\");\r\n }\r\n\r\n const [paymentMethod, setPaymentMethod] = useState(\"PayPal\");\r\n\r\n const dispatch = useDispatch();\r\n\r\n const submitHandler = (e) => {\r\n e.preventDefault();\r\n dispatch(savePaymentMethod(paymentMethod));\r\n history.push(\"/placeorder\");\r\n };\r\n\r\n return (\r\n \r\n \r\n

Payment Method

\r\n
\r\n \r\n Select Method \r\n \r\n setPaymentMethod(e.target.value)}\r\n >\r\n setPaymentMethod(e.target.value)}\r\n >\r\n\r\n setPaymentMethod(e.target.value)}\r\n >\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PaymentScreen;\r\n","import React, { useEffect } from \"react\";\r\nimport { Button, Card, Col, Image, ListGroup, Row } from \"react-bootstrap\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { createOrder } from \"../../../redux/actions/orderActions\";\r\nimport CheckoutSteps from \"../CheckoutSteps\";\r\nimport Message from \"../Message\";\r\nimport { toastSuccessMessage } from \"../ToastMessage\";\r\n\r\nconst PlaceOrderScreen = ({ history }) => {\r\n const dispatch = useDispatch();\r\n\r\n const cart = useSelector((state) => state.cart);\r\n\r\n const orderCreate = useSelector((state) => state.orderCreate);\r\n const { order,success,error } = orderCreate;\r\n\r\n useEffect(() => {\r\n if (success) {\r\n history.push(`/order/${order._id}`);\r\n }\r\n // eslint-disable-next-line\r\n }, [history, success]);\r\n\r\n const placeOrderHandler = () => {\r\n\r\n dispatch(\r\n createOrder({\r\n orderItems: cart.cartItems,\r\n shippingAddress: cart.shippingAddress,\r\n paymentMethod: cart.paymentMethod,\r\n itemsPrice: cart.itemsPrice,\r\n shippingPrice: cart.shippingPrice,\r\n totalPrice: cart.totalPrice,\r\n })\r\n );\r\n toastSuccessMessage(\"You're order has been placed\")\r\n \r\n };\r\n //Calculate Price\r\n const addDecimals = (num) => {\r\n return (Math.round(num * 100) / 100).toFixed(2);\r\n };\r\n\r\n cart.itemsPrice = addDecimals(\r\n cart.cartItems.reduce((acc, item) => acc + item.price * item.qty, 0)\r\n );\r\n cart.shippingPrice = 30;\r\n\r\n cart.totalPrice = Number(cart.itemsPrice) + Number(cart.shippingPrice);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n

Delivery Location

\r\n

\r\n Address:\r\n {cart.shippingAddress.address}, {cart.shippingAddress.city}{\" \"}\r\n {cart.shippingAddress.thana}, {cart.shippingAddress.houseNumber}\r\n

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

Payment Method

\r\n Method: \r\n {cart.paymentMethod}\r\n
\r\n \r\n

Order Items

\r\n {cart.cartItems.length === 0 ? (\r\n Your cart is empty\r\n ) : (\r\n \r\n {cart.cartItems.map((item, index) => (\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.qty} x ৳{item.price} = ৳{item.qty * item.price}\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

Order Summary

\r\n
\r\n \r\n \r\n Items\r\n ৳{cart.itemsPrice}\r\n \r\n \r\n \r\n \r\n Delivery Charge\r\n ৳{cart.shippingPrice}\r\n \r\n \r\n {/* \r\n \r\n Tax\r\n ${cart.taxPrice}\r\n \r\n */}\r\n \r\n \r\n Total\r\n ৳{cart.totalPrice}\r\n \r\n \r\n \r\n {error && {error}}\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 axios from 'axios'\r\nimport React, { useEffect, useState } from 'react'\r\nimport { Button, Form } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Link } from 'react-router-dom'\r\nimport { PRODUCT_UPDATE_RESET } from '../../../constants/productConstants'\r\nimport { fetchProductById, updateProduct } from '../../../redux/actions/productActions'\r\nimport FormContainer from '../FormContainer'\r\nimport Loader from '../Loader'\r\nimport Message from '../Message'\r\nimport { toastSuccessMessage } from '../ToastMessage'\r\n\r\nconst ProductEditScreen = ({ match, history }) => {\r\n const productId = match.params.id\r\n\r\n const [name, setName] = useState('')\r\n const [description, setDescription] = useState('')\r\n const [category, setCategory] = useState('')\r\n const [price, setPrice] = useState(0)\r\n const [countInStock, setCountInStock] = useState(0)\r\n const [image, setImage] = useState('')\r\n const [uploading, setUploading] = useState(false)\r\n\r\n const dispatch = useDispatch()\r\n\r\n const productDetails = useSelector((state) => state.productDetails)\r\n const { loading, error, product } = productDetails\r\n const productUpdate = useSelector((state) => state.productUpdate)\r\n const { loading:loadingUpdate, error:errorUpdate, success:successUpdate } = productUpdate\r\n\r\n\r\n useEffect(() => {\r\n if (successUpdate) {\r\n dispatch({ type: PRODUCT_UPDATE_RESET })\r\n toastSuccessMessage(\"Product Updated\")\r\n history.push(\"/admin/productlist\")\r\n\r\n } else {\r\n if (!product.name || product._id !== productId) {\r\n dispatch(fetchProductById(productId))\r\n } else { \r\n setName(product.name)\r\n setDescription(product.description)\r\n setCategory(product.category)\r\n setImage(product.image)\r\n setPrice(product.price)\r\n setCountInStock(product.countInStock)\r\n }\r\n }\r\n\r\n }, [dispatch,product,productId,successUpdate,history])\r\n\r\n const submitHandler = (e) => {\r\n e.preventDefault()\r\n dispatch(updateProduct({\r\n _id: product._id,name,description,image,category,price,countInStock\r\n }))\r\n }\r\n\r\n const handleFileUpload = async (e) => {\r\n const file = e.target.files[0]\r\n const formData = new FormData()\r\n formData.append('image', file)\r\n setUploading(true)\r\n\r\n try {\r\n const config = {\r\n headers: {\r\n 'Content-Type':'multipart/form-data'\r\n }\r\n }\r\n const { data } = await axios.post(`/api/uploads`, formData, config)\r\n console.log(data);\r\n setImage(data)\r\n setUploading(false)\r\n\r\n } catch (error) {\r\n console.log(error)\r\n setUploading(false)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n Go Back\r\n \r\n \r\n

Edit Product

\r\n {loadingUpdate && }\r\n {errorUpdate && {errorUpdate}}\r\n {loading ? (\r\n \r\n ) : error ? (\r\n {error}\r\n ) : (\r\n
\r\n \r\n Name\r\n setName(e.target.value)}\r\n >\r\n \r\n\r\n \r\n Description\r\n setDescription(e.target.value)}\r\n >\r\n \r\n\r\n \r\n Category\r\n setCategory(e.target.value)}\r\n >\r\n \r\n \r\n \r\n Enter Image URL\r\n setImage(e.target.value)}\r\n >\r\n \r\n \r\n {uploading && }\r\n \r\n \r\n \r\n Price\r\n setPrice(e.target.value)}\r\n >\r\n \r\n \r\n \r\n Count In Stock\r\n setCountInStock(e.target.value)}\r\n >\r\n \r\n \r\n
\r\n )}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ProductEditScreen","import React, { useEffect } from 'react'\r\nimport { Button, Col, Row, Table } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { LinkContainer } from 'react-router-bootstrap'\r\nimport { PRODUCT_CREATE_RESET } from '../../../constants/productConstants'\r\nimport { createProduct, deleteProduct, fetchProducts } from '../../../redux/actions/productActions'\r\nimport Loader from '../Loader'\r\nimport Message from '../Message'\r\nimport Sidebar from '../Sidebar'\r\nimport { toastErrorMessage } from '../ToastMessage'\r\n\r\nfunction ProductListScreen({history}) {\r\n\r\n const dispatch = useDispatch()\r\n\r\n const { userInfo: { user } } = useSelector(state => state.userLogin)\r\n \r\n const productList = useSelector(state => state.productList)\r\n const { loading, error, products } = productList\r\n\r\n const productCreate = useSelector(state => state.productCreate)\r\n const { loading: loadingCreate, error: errorCreate, success: successCreate, product:createdProduct } = productCreate\r\n const productDelete = useSelector(state => state.productDelete)\r\n const { loading:loadingDelete, error:errorDelete, success:successDelete } = productDelete\r\n \r\n\r\n useEffect(() => {\r\n dispatch({ type: PRODUCT_CREATE_RESET })\r\n \r\n if (!user.isAdmin) \r\n history.push('/login')\r\n\r\n if (successCreate) {\r\n history.push(`/admin/product/${createdProduct._id}/edit`)\r\n } \r\n else {\r\n dispatch(fetchProducts())\r\n }\r\n }, [dispatch,history,user,successDelete,successCreate,createdProduct])\r\n\r\n const handleDelete = (id) => {\r\n if (window.confirm('Are you sure you want to delete this product ?')) {\r\n dispatch(deleteProduct(id))\r\n if(!errorDelete)\r\n toastErrorMessage(\"Product deleted\")\r\n }\r\n }\r\n const handleCreateProduct = () => {\r\n dispatch(createProduct())\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

Products

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {loadingCreate && }\r\n {errorCreate && {errorCreate}}\r\n {loadingDelete && }\r\n {errorDelete && {errorDelete}}\r\n \r\n {loading ? : error ? {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 \r\n \r\n \r\n \r\n {products.map(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
Product IDNamePriceCategoryIn Stock
{product._id}{product.name} {product.price}{product.category}{product.countInStock}\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 ProductListScreen\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Button, Card, Col, Form, FormControl, Image, ListGroup, Row } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Link } from 'react-router-dom'\r\nimport { PRODUCT_CREATE_REVIEW_RESET } from '../../../constants/productConstants'\r\nimport { createProductReview, fetchProductById } from '../../../redux/actions/productActions'\r\nimport '../../../styles/ecommerce.css'\r\nimport Loader from '../Loader'\r\nimport Message from '../Message'\r\nimport Rating from '../Rating'\r\nimport { toastSuccessMessage } from '../ToastMessage'\r\n\r\nfunction ProductScreen({ match,history }) {\r\n \r\n const [qty, setQty] = useState(1)\r\n const [rating, setRating] = useState(0)\r\n const [comment, setComment] = useState(\"\")\r\n\r\n const dispatch = useDispatch()\r\n\r\n const productDetails = useSelector(state => state.productDetails)\r\n const { loading, error, product } = productDetails\r\n\r\n const productReview = useSelector(state => state.productCreateReview)\r\n const { error: reviewError, success: reviewSuccess } = productReview\r\n \r\n const userLogin = useSelector(state => state.userLogin)\r\n const { userInfo } = userLogin\r\n\r\n useEffect(() => {\r\n if (reviewSuccess) {\r\n toastSuccessMessage('Thank you for submitting a review')\r\n setRating(0)\r\n setComment('')\r\n dispatch({type:PRODUCT_CREATE_REVIEW_RESET})\r\n }\r\n else if (reviewError) {\r\n setTimeout(() => {\r\n dispatch({type:PRODUCT_CREATE_REVIEW_RESET})\r\n }, 4000);\r\n }\r\n dispatch(fetchProductById(match.params.id))\r\n }, [dispatch,match,reviewSuccess,reviewError])\r\n\r\n const addToCartHandler = () => {\r\n history.push(`/cart/${match.params.id}?qty=${qty}`)\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault()\r\n dispatch(createProductReview(match.params.id, {\r\n rating,\r\n comment\r\n }))\r\n }\r\n\r\n return (\r\n
\r\n Go Back\r\n {loading ? : error ? {error} : (\r\n <> \r\n \r\n \r\n {product.name}\r\n \r\n\r\n \r\n \r\n

{product.name}

\r\n {product.description}\r\n \r\n  {product.price}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Price : \r\n {product.price}   Taka\r\n \r\n \r\n \r\n \r\n Status : \r\n {product.countInStock > 0 ? \"In Stock \" : \"Out of Stock\"}\r\n \r\n \r\n {product.countInStock > 0 && (\r\n \r\n \r\n Qty\r\n \r\n setQty(e.target.value)}\r\n >\r\n {[...Array(product.countInStock).keys()].map(p => (\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 {product.reviews.length === 0 && No Reviews}\r\n \r\n {product.reviews.map(r => (\r\n \r\n {r.name}\r\n \r\n

{r.createdAt.substring(0,10)}

\r\n

{r.comment}

\r\n
\r\n ))}\r\n
\r\n

Write a review

\r\n {userInfo ? (<>\r\n {reviewError && {reviewError}}\r\n
\r\n \r\n Give a rating\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 Write a comment\r\n setComment(e.target.value)} />\r\n \r\n\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\nexport default ProductScreen\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Button, Col, Form, Row, Table } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { LinkContainer } from 'react-router-bootstrap'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { getMyOrders } from '../../../redux/actions/orderActions'\r\nimport { getUserDetails, updateUserProfile } from '../../../redux/actions/userActions'\r\nimport Loader from '../Loader'\r\nimport Message from '../Message'\r\nimport { toastSuccessMessage } from '../ToastMessage'\r\n\r\n\r\nfunction ProfileScreen({history}) {\r\n\r\n const [email, setEmail] = useState('')\r\n const [name, setName] = useState('')\r\n const [password, setPassword] = useState('')\r\n const [confirmPassword, setConfirmPassword] = useState('')\r\n\r\n const dispatch = useDispatch()\r\n const location = useLocation()\r\n\r\n const userLogin = useSelector(state => state.userLogin)\r\n const {userInfo} = userLogin\r\n\r\n const userDetails = useSelector(state => state.userDetails)\r\n const { loading, error, user } = userDetails\r\n\r\n const myOrderList = useSelector(state => state.myOrderList)\r\n const { loading: loadingOrders, error: errorOrders, orders } = myOrderList\r\n\r\n \r\n useEffect(() => {\r\n if (!userInfo) {\r\n history.push(\"/login\")\r\n }\r\n else {\r\n // for google users\r\n if (userInfo.token.length > 500) {\r\n setEmail(userInfo.user.email)\r\n setName(userInfo.user.name)\r\n \r\n } else {\r\n if (!user.name) { \r\n dispatch(getUserDetails('profile'))\r\n dispatch(getMyOrders())\r\n }\r\n \r\n else {\r\n setEmail(user.email)\r\n setName(user.name)\r\n }\r\n }\r\n }\r\n }, [history,userInfo,dispatch,user,location,name])\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault()\r\n dispatch(updateUserProfile({ id: user._id, email, name, password }))\r\n toastSuccessMessage(\"Your profile has been updated\")\r\n }\r\n\r\n return (\r\n \r\n \r\n

User Profile

\r\n {error && {error}}\r\n {loading && }\r\n
\r\n \r\n \r\n Name\r\n setName(e.target.value)} />\r\n \r\n\r\n \r\n Email Address\r\n setEmail(e.target.value)} />\r\n \r\n\r\n \r\n Password\r\n setPassword(e.target.value)} />\r\n \r\n\r\n \r\n Retype Password\r\n setConfirmPassword(e.target.value)} />\r\n \r\n\r\n \r\n
\r\n \r\n \r\n <>\r\n

MY Orders

\r\n {loadingOrders ? : errorOrders ? {errorOrders} : (\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 {orders.map(order=>(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
IDDATETOTALPAIDDelivered
{order._id}{order.createdAt.substring(0, 10)} {order.totalPrice}\r\n {order.isPaid ? order.paidAt.substring(0,10) : }\r\n \r\n {order.isDelivered ? order.deliverAt.substring(0,10) : }\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\nimport { Button, Col, Form, Row } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Link } from 'react-router-dom'\r\nimport { toast } from 'react-toastify'\r\nimport 'react-toastify/dist/ReactToastify.css'\r\nimport { register } from '../../../redux/actions/userActions'\r\nimport FormContainer from '../FormContainer'\r\nimport GoogleAuth from '../GoogleAuth'\r\nimport Loader from '../Loader'\r\nimport Message from '../Message'\r\ntoast.configure()\r\n\r\nfunction RegisterScreen({location,history}) {\r\n\r\n const [name, setName] = useState('')\r\n const [email, setEmail] = useState('')\r\n const [password, setPassword] = useState('')\r\n const [confirmPassword, setConfirmPassword] = useState('')\r\n\r\n const redirect = location.search ? location.search.split(\"=\")[1] : \"/login\"\r\n\r\n const dispatch = useDispatch()\r\n const userRegister = useSelector(state => state.userRegister)\r\n const { loading, error, userInfo } = userRegister\r\n \r\n useEffect(() => {\r\n if (userInfo) {\r\n toast.success(\"Account created successfully. Please login to see profile\", {autoClose: 3000,})\r\n history.push(\"/login\")\r\n }\r\n }, [history,redirect,userInfo])\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault()\r\n dispatch(register(name,email,password,confirmPassword))\r\n }\r\n\r\n return (\r\n \r\n

Sign Up

\r\n {error && {error}}\r\n {loading && }\r\n
\r\n \r\n \r\n Name\r\n setName(e.target.value)} />\r\n \r\n\r\n \r\n Email Address\r\n setEmail(e.target.value)} />\r\n \r\n\r\n \r\n Password\r\n setPassword(e.target.value)} />\r\n \r\n\r\n \r\n Retype Password\r\n setConfirmPassword(e.target.value)} />\r\n \r\n\r\n \r\n
\r\n\r\n \r\n
Or
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Already Have an Account ? Sign in\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default RegisterScreen\r\n","import React from 'react';\r\nimport { Bar } from 'react-chartjs-2';\r\n\r\nfunction BarChart({ orderData }) {\r\n \r\n const saleByMonth = []\r\n if (orderData) {\r\n for (let od of orderData) {\r\n saleByMonth.push(od.numOfOrder)\r\n }\r\n }\r\n\r\n\r\n const data = {\r\n labels: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n datasets: [\r\n {\r\n label: '# of Sales by Months',\r\n data: saleByMonth,\r\n backgroundColor: [\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n \r\n ],\r\n \r\n borderColor: [\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n ],\r\n \r\n borderWidth: 1,\r\n },\r\n ],\r\n };\r\n \r\n const options = {\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n };\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default BarChart\r\n","import React from 'react';\r\nimport { Line } from 'react-chartjs-2';\r\n\r\nfunction LineChart({ orderData }) {\r\n const saleByMonth=[]\r\n if (orderData) {\r\n for (let od of orderData) {\r\n saleByMonth.push(od.numOfOrder)\r\n }\r\n }\r\n const data = {\r\n \r\n labels: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n datasets: [\r\n {\r\n label: '# of Sales By Month',\r\n data: saleByMonth,\r\n fill: false,\r\n pointRadius:5,\r\n backgroundColor: 'rgb(0,158,96)',\r\n borderColor: 'rgba(0,158,96, 0.2)',\r\n },\r\n ],\r\n };\r\n \r\n\r\n const options = {\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default LineChart\r\n","import React from 'react';\r\nimport { Bar } from 'react-chartjs-2';\r\n\r\nfunction BarChart({ monthSaleData }) {\r\n \r\n const saleByMonth = []\r\n if (monthSaleData) {\r\n for (let i = 1; i <= monthSaleData.length;i++) {\r\n saleByMonth.push(monthSaleData[i])\r\n }\r\n }\r\n\r\n const daysOfMonthLabel = []\r\n const colorArray = []\r\n const colorArrayBorder = []\r\n\r\n for (let i = 0; i < monthSaleData.length; i++) {\r\n daysOfMonthLabel[i] = i + 1\r\n colorArray[i] = 'rgba(0,158,96, 0.2)'\r\n colorArrayBorder[i]='rgba(0,158,96, 0.8)'\r\n }\r\n\r\n const data = {\r\n labels: daysOfMonthLabel,\r\n datasets: [\r\n {\r\n label: 'Sale per day',\r\n data: saleByMonth,\r\n backgroundColor: colorArray,\r\n borderColor: colorArrayBorder,\r\n \r\n borderWidth: 1,\r\n },\r\n ],\r\n };\r\n \r\n const options = {\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n };\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default BarChart\r\n","import React from 'react';\r\nimport { Bar } from 'react-chartjs-2';\r\n\r\nfunction ProductSaleBarChart({ monthWiseQty,productName}) {\r\n\r\n\r\n const data = {\r\n labels: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n datasets: [\r\n {\r\n label: `Sale of ${productName} by each month`,\r\n data: monthWiseQty,\r\n backgroundColor: [\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n 'rgba(0,158,96, 0.2)',\r\n \r\n ],\r\n \r\n borderColor: [\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n 'rgba(0,158,96, 0.8)',\r\n ],\r\n \r\n borderWidth: 1,\r\n },\r\n ],\r\n };\r\n \r\n const options = {\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n };\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default ProductSaleBarChart\r\n","import React from 'react';\r\nimport { Pie } from 'react-chartjs-2';\r\n\r\nfunction SalesPieChart({ pie_data }) {\r\n \r\n\r\n const dataLabel = []\r\n const dataValues = []\r\n\r\n for (let pd of pie_data) {\r\n const val = parseInt(pd.value)\r\n dataLabel.push(pd.name)\r\n dataValues.push(val)\r\n }\r\n\r\n const bgColPalette = [\r\n 'rgba(255, 99, 132, 0.2)', //Red\r\n 'rgba(54, 162, 235, 0.2)', //Blue\r\n 'rgba(255, 206, 86, 0.2)', // Yellow\r\n 'rgba(75, 192, 192, 0.2)', // Green\r\n 'rgba(153, 102, 255, 0.2)', // Purple\r\n 'rgba(255, 159, 64, 0.2)', // Orange\r\n 'rgba(255, 99, 132, 0.8)', //Red\r\n 'rgba(54, 162, 235, 0.8)', //Blue\r\n 'rgba(255, 206, 86, 0.8)', // Yellow\r\n 'rgba(75, 192, 192, 0.8)', // Green\r\n 'rgba(153, 102, 255, 0.8)', // Purple\r\n 'rgba(255, 159, 64, 0.8)', // Orange\r\n 'rgba(255, 99, 132,1)', //Red\r\n 'rgba(54, 162, 235, 1)', //Blue\r\n 'rgba(255, 206, 86, 1)', // Yellow\r\n 'rgba(75, 192, 192, 1)', // Green\r\n 'rgba(153, 102, 255, 1)', // Purple\r\n 'rgba(255, 159, 64, 1)', // Orange\r\n ]\r\n const borderColPalette = [\r\n 'rgba(255, 99, 132, 1)',\r\n 'rgba(54, 162, 235, 1)',\r\n 'rgba(255, 206, 86, 1)',\r\n 'rgba(75, 192, 192, 1)',\r\n 'rgba(153, 102, 255, 1)',\r\n 'rgba(255, 159, 64, 1)',\r\n 'rgba(255, 99, 132, 1)',\r\n 'rgba(54, 162, 235, 1)',\r\n 'rgba(255, 206, 86, 1)',\r\n 'rgba(75, 192, 192, 1)',\r\n 'rgba(153, 102, 255, 1)',\r\n 'rgba(255, 159, 64, 1)',\r\n 'rgba(255, 99, 132, 1)',\r\n 'rgba(54, 162, 235, 1)',\r\n 'rgba(255, 206, 86, 1)',\r\n 'rgba(75, 192, 192, 1)',\r\n 'rgba(153, 102, 255, 1)',\r\n 'rgba(255, 159, 64, 1)',\r\n ]\r\n\r\n\r\n const background = []\r\n const border = []\r\n\r\n for (let i = 0; i < pie_data.length; i++){\r\n background[i] = bgColPalette[i]\r\n border[i] = borderColPalette[i]\r\n }\r\n\r\n const data = {\r\n labels: dataLabel,\r\n datasets: [\r\n {\r\n label: 'Contribution of each product',\r\n data: dataValues,\r\n backgroundColor:background ,\r\n borderColor:border,\r\n borderWidth: 1,\r\n },\r\n ],\r\n \r\n };\r\n \r\n return (\r\n \r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default SalesPieChart\r\n","import React from 'react';\r\nimport { CSVLink } from 'react-csv';\r\n\r\nfunction CSVReportGeneration({ data }) {\r\n \r\n const csv_data = data\r\n const headers = [\r\n { label: \"Date\", key: \"date\" },\r\n { label: \"Product ID\", key: \"product_id\" },\r\n { label: \"Product Name\", key: \"product_name\" },\r\n { label: \"Price/Per unit\", key: \"product_price\" },\r\n { label: \"Quantity\", key: \"product_qty\" },\r\n { label: \"Total\", key: \"total\" },\r\n ]\r\n\r\n const csvReport = {\r\n filename: 'SalesReport.csv',\r\n headers,\r\n data:csv_data\r\n }\r\n \r\n\r\n return (\r\n
\r\n Export to CSV\r\n
\r\n )\r\n}\r\n\r\nexport default CSVReportGeneration\r\n","export const monthData = [\r\n { id: \"jan\", label: \"January\" },\r\n { id: \"feb\", label: \"February\" },\r\n { id: \"mar\", label: \"March\" },\r\n { id: \"apr\", label: \"April\" },\r\n { id: \"may\", label: \"May\" },\r\n { id: \"jun\", label: \"June\" },\r\n { id: \"jul\", label: \"July\" },\r\n { id: \"aug\", label: \"August\" },\r\n { id: \"sep\", label: \"September\" },\r\n { id: \"oct\", label: \"October\" },\r\n { id: \"nov\", label: \"November\" },\r\n { id: \"dec\", label: \"December\" },\r\n];\r\n\r\n\r\n\r\n","import React from \"react\";\r\nconst { useState} = React;\r\n\r\nconst SaleDataCategory = ({onSelect,data}) => {\r\n const [isOpen, setOpen] = useState(false);\r\n const [items] = useState(data);\r\n const [selectedItem, setSelectedItem] = useState(null);\r\n \r\n const toggleDropdown = () => setOpen(!isOpen);\r\n \r\n const handleItemClick = (id) => {\r\n onSelect(id)\r\n selectedItem === id ? setSelectedItem(null) : setSelectedItem(id);\r\n setOpen(false)\r\n }\r\n \r\n return (\r\n
\r\n
\r\n {selectedItem ? items.find(item => item.id === selectedItem).label : \"Select Month\"}\r\n \r\n
\r\n
\r\n {items.map(item => (\r\n
handleItemClick(e.target.id)} id={item.id}>\r\n \r\n {item.label}\r\n
\r\n ))}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SaleDataCategory","import axios from 'axios';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Button, Col, Dropdown, DropdownButton, Form, FormControl, Row } from 'react-bootstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getSaleData } from '../../../redux/actions/orderActions';\r\nimport \"../../../styles/ecommerce.css\";\r\nimport BarChart from '../Charts/BarChart';\r\nimport LineChart from '../Charts/LineChart';\r\nimport MonthBarChart from '../Charts/MonthBarChart';\r\nimport ProductSaleBarChart from '../Charts/ProductSaleBarChart';\r\nimport SalesPieChart from '../Charts/SalesPieChart';\r\nimport CSVReportGeneration from '../CSVReportGeneration';\r\nimport { monthData } from \"../EcommSeedData\";\r\nimport SaleDataCategory from '../SaleDataCategory';\r\nimport Sidebar from '../Sidebar';\r\n\r\nfunction SaleDataScreen({ history }) {\r\n \r\n const [graphType, setGraphType] = useState(\"line\")\r\n const [monthSale, setMonthSale] = useState(\"\")\r\n const [productSale, setProductSale] = useState(\"\")\r\n const [search, setSearch] = useState(\"\")\r\n const [reportData, setReportData] = useState(\"\")\r\n const [salesPieData, setSalesPieData] = useState(\"\")\r\n\r\n const dispatch = useDispatch()\r\n const { userInfo: { user,token } } = useSelector(state => state.userLogin)\r\n\r\n const order = useSelector(state => state.orderSaleData)\r\n const { orderSaleData } = order\r\n\r\n\r\n useEffect(() => {\r\n if (user && user.isAdmin) {\r\n dispatch(getSaleData())\r\n } else {\r\n history.push(\"/login\")\r\n }\r\n }, [dispatch, history, user])\r\n \r\n const handleSelect = (e) => {\r\n setGraphType(e)\r\n }\r\n\r\n const onSalesMonthSelect = (e) => {\r\n const { totalOrder } = orderSaleData?.find(el => el.month === e)\r\n const saleData = []\r\n const salesPieData = []\r\n\r\n for (let data of totalOrder) {\r\n for (let pd of data.orderedItems) {\r\n const date = data.createdAt.substring(0, 10);\r\n const product_id = pd._id;\r\n const product_name = pd.name;\r\n const product_price = pd.price;\r\n const product_qty = pd.qty;\r\n const total = pd.price * pd.qty\r\n saleData.push({ date, product_id, product_name, product_price, product_qty, total })\r\n\r\n // for pie chart\r\n salesPieData.push({ name: product_name, value: total })\r\n \r\n }\r\n }\r\n\r\n // console.log(salesPieData);\r\n\r\n // for pie chart\r\n const res = Array.from(salesPieData.reduce(\r\n (m, { name, value }) => m.set(name, (m.get(name) || 0) + value), new\r\n Map()), ([name, value]) => ({ name, value }));\r\n \r\n setSalesPieData(res)\r\n setReportData(saleData)\r\n }\r\n\r\n const onMonthSelect = async (e) => {\r\n try {\r\n const selectedMonth = e;\r\n\r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n const { data } = await axios.post(`/api/orders/saleDataByMonth`, { selectedMonth }, config)\r\n setMonthSale(data)\r\n \r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n const handleSearchSubmit = async(e) => {\r\n e.preventDefault()\r\n console.log(search);\r\n // 60ee9cc0da14312998e1a300\r\n try {\r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n const { data } = await axios.post(`/api/orders/saleByAProduct`, {product_id:search }, config)\r\n setProductSale(data)\r\n \r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n <>\r\n
\r\n

Month wise sale

\r\n
\r\n \r\n Line Graph\r\n Bar Graph\r\n \r\n
\r\n
\r\n {orderSaleData && <>{graphType === 'line' ? : } }\r\n \r\n\r\n

Day wise Sales of a Month

\r\n \r\n {monthSale && }\r\n\r\n
\r\n

Sale of a product by each month

\r\n
\r\n setSearch(e.target.value)}\r\n />\r\n \r\n \r\n \r\n
\r\n {productSale && }\r\n \r\n
\r\n

Sales Report Generation

\r\n \r\n {reportData && }\r\n {salesPieData &&\r\n
\r\n

Contribution of sold products

\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 SaleDataScreen\r\n","import React, { useState } from \"react\";\r\nimport { Button, Form } from \"react-bootstrap\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { saveShippingAddress } from \"../../../redux/actions/cartActions\";\r\nimport CheckoutSteps from \"../CheckoutSteps\";\r\nimport FormContainer from \"../FormContainer\";\r\n\r\nconst ShippingScreen = ({ history }) => {\r\n const cart = useSelector((state) => state.cart);\r\n const { shippingAddress } = cart;\r\n\r\n const [address, setAddress] = useState(shippingAddress.address || \"\");\r\n const [city, setCity] = useState(shippingAddress.city || \"\");\r\n const [thana, setThana] = useState(shippingAddress.thana || \"\");\r\n const [houseNumber, setHouseNumber] = useState(\r\n shippingAddress.houseNumber || \"\"\r\n );\r\n const dispatch = useDispatch();\r\n\r\n const submitHandler = (e) => {\r\n e.preventDefault();\r\n dispatch(saveShippingAddress({ address, city, thana, houseNumber }));\r\n history.push(\"/payment\");\r\n };\r\n\r\n return (\r\n \r\n \r\n

Shipping

\r\n
\r\n \r\n Address\r\n setAddress(e.target.value)}\r\n >\r\n \r\n\r\n \r\n City\r\n setCity(e.target.value)}\r\n >\r\n \r\n\r\n \r\n Thana\r\n setThana(e.target.value)}\r\n >\r\n \r\n\r\n \r\n House Number\r\n setHouseNumber(e.target.value)}\r\n >\r\n \r\n\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ShippingScreen;\r\n","import React, { useEffect } from 'react'\r\nimport { Button, Col, Row, Table } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { deleteUser, getUserList } from '../../../redux/actions/userActions'\r\nimport Loader from '../Loader'\r\nimport Message from '../Message'\r\nimport Sidebar from '../Sidebar'\r\nimport { toastErrorMessage } from '../ToastMessage'\r\n\r\nfunction UserListScreen({history}) {\r\n\r\n const dispatch = useDispatch()\r\n const userList = useSelector(state => state.userList)\r\n const { userInfo: { user } } = useSelector(state => state.userLogin)\r\n const { success: deleteSuccess } = useSelector(state => state.userDelete)\r\n \r\n\r\n const { loading, error, users } = userList\r\n \r\n useEffect(() => {\r\n if (user && user.isAdmin) {\r\n dispatch(getUserList())\r\n } else {\r\n history.push(\"/login\")\r\n }\r\n }, [dispatch,history,user,deleteSuccess])\r\n\r\n const handleDelete = (id) => {\r\n if (window.confirm('Are you sure you want to delete this user ?')) {\r\n dispatch(deleteUser(id))\r\n toastErrorMessage(\"User deleted\")\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {loading ? : error ? {error} : (\r\n <>\r\n

All Users

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {users.map(user=>(\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n ))}\r\n \r\n
IDNameEmailAdmin
{user._id}{user.name}\r\n {user.email}\r\n \r\n {user.isAdmin ?\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 UserListScreen\r\n","import React, { useState } from 'react';\r\nimport { Button, Modal } from 'react-bootstrap';\r\nimport \"../../styles/plant-identify.css\";\r\n\r\nfunction PIDetailsModal({ name, desc, synonyms, taxonomy, authority, common_names }) {\r\n const [show, setShow] = useState(false);\r\n\r\n const handleClose = () => setShow(false);\r\n const handleShow = () => setShow(true);\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n {name}\r\n {authority}\r\n \r\n \r\n
Common Names
\r\n {common_names?.map(cn => (\r\n
{cn}
\r\n ))}\r\n
\r\n \r\n \r\n
Description
\r\n
{desc}
\r\n
\r\n \r\n
Taxonomy
\r\n
\r\n
Kingdom: {taxonomy.kingdom}
\r\n
Phylum: {taxonomy.phylum}
\r\n
Class: {taxonomy.class}
\r\n
Order: {taxonomy.order}
\r\n
Family: {taxonomy.family}
\r\n
Genus: {taxonomy.genus}
\r\n
\r\n
\r\n \r\n \r\n
Synonyms
\r\n {synonyms?.map(syn => (\r\n
{syn}
\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 PIDetailsModal\r\n","import axios from 'axios';\r\nimport React, { useState } from 'react';\r\nimport { Button, Col, Form, Row } from 'react-bootstrap';\r\nimport FileBase64 from 'react-file-base64';\r\nimport \"../../styles/plant-identify.css\";\r\nimport Loader from \"../Ecommerce/Loader\";\r\nimport PIDetailsModal from './PIDetailsModal';\r\n\r\nfunction PlantIdentify() {\r\n const [file, setFile] = useState()\r\n const [imageUrl, setImageUrl] = useState(\"\")\r\n const [plantSuggestion, setPlantSuggestion] = useState([])\r\n const [loading, setLoading] = useState(false)\r\n\r\n const handleFileInput = (e) => {\r\n e.preventDefault()\r\n getPlantInfo()\r\n setLoading(true)\r\n }\r\n\r\n const getPlantInfo = async () => {\r\n try {\r\n const {data} = await axios.post(`/api/identify-plant`, { file })\r\n setImageUrl(data.imageUrl)\r\n setPlantSuggestion(data.plantSuggestions)\r\n setLoading(false)\r\n } catch (error) {\r\n console.log('Error',error);\r\n }\r\n }\r\n\r\n const covertNumber = (num) => {\r\n let n = num.toFixed(2)\r\n n *= 100\r\n if (n.toString().length > 2) n = n.toFixed()\r\n return `${n} %`\r\n }\r\n\r\n \r\n return (\r\n
\r\n
\r\n setFile(base64)} />\r\n\r\n \r\n \r\n\r\n {loading ? : (\r\n <>\r\n {imageUrl && \r\n
\r\n \"pi-img\"\r\n
\r\n }\r\n\r\n {plantSuggestion &&\r\n
\r\n {plantSuggestion.map(plant => (\r\n \r\n \r\n
\r\n {plant.similar_images.map(i =>\r\n (\r\n \"plant-img\"\r\n )\r\n )}\r\n
\r\n \r\n \r\n
\r\n

{plant.plant_name}

\r\n
Scientific Name:{plant.plant_details.scientific_name}
\r\n
Genus:{plant.plant_details.structured_name.genus}
\r\n
Species:{plant.plant_details.structured_name.species}
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {/*

{`${((plant.probability).toFixed(2)) * 100} %`}

*/}\r\n

{covertNumber(plant.probability)}

\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 PlantIdentify\r\n","import axios from 'axios';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Table } from 'react-bootstrap';\r\nimport '../../styles/plant-search.css';\r\n\r\nfunction PlantDetails({ match }) {\r\n \r\n const [plantData, setPlantData] = useState(\"\")\r\n const plantSearchAPI = \"https://openfarm.cc/api/v1/crops\"\r\n useEffect(() => {\r\n async function fetchPlant() {\r\n const res = await axios.get(`${plantSearchAPI}/${match.params.id}`)\r\n setPlantData(res.data.data)\r\n }\r\n fetchPlant()\r\n\r\n }, [match])\r\n return (\r\n
\r\n {plantData && (\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\n \r\n \r\n
Name{plantData.attributes.name}
Binomial Name{plantData.attributes.binomial_name}
Taxon{plantData.attributes.taxon}
Description{plantData.attributes.description}
Sun Requirements{plantData.attributes.sun_requirements}
Sowing Method{plantData.attributes.sowing_method}
Growing Degree Days{plantData.attributes.growing_degree_days}
Row Spacing{plantData.attributes.row_spacing} cm
Height{plantData.attributes.height} cm
\r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport default PlantDetails\r\n","export default __webpack_public_path__ + \"static/media/not.6ea7f4d0.svg\";","export default __webpack_public_path__ + \"static/media/sample-plant.31640ee6.jpg\";","import React from 'react';\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport { LinkContainer } from 'react-router-bootstrap';\r\nimport sample from '../../images/sample-plant.jpg';\r\n\r\nfunction PlantSearchCard({ data }) {\r\n \r\n return (\r\n <>\r\n {data &&\r\n \r\n {data.map(d => (\r\n \r\n \r\n
\r\n {d.attributes.main_image_path.includes(\"/assets/baren_field_square\") ? \"sample\": \"sample\"}\r\n \r\n
\r\n
{d.attributes.name}
\r\n
Binomial Name: {d.attributes.binomial_name}
\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 PlantSearchCard\r\n","import axios from 'axios'\r\nimport React, { useState } from 'react'\r\nimport notFound from '../../images/not.svg'\r\nimport '../../styles/plant-search.css'\r\nimport Loader from '../Ecommerce/Loader'\r\nimport PlantSearchCard from './PlantSearchCard'\r\n\r\nfunction PlantSearch() {\r\n\r\n const [searchTerm, setSearchTerm] = useState(\"\")\r\n const [result, setResult] = useState([])\r\n const [found,setFound] = useState(true)\r\n const [loading,setLoading] = useState(false)\r\n\r\n const plantSearchAPI = \"https://openfarm.cc/api/v1/crops\"\r\n\r\n const handlePlantSearch = (e) => {\r\n e.preventDefault()\r\n console.log(searchTerm);\r\n setLoading(true)\r\n fetchPlant(searchTerm)\r\n }\r\n \r\n const fetchPlant = async (plant) => {\r\n const { data } = await axios.get(`${plantSearchAPI}?filter=${plant}`)\r\n \r\n if (data?.data.length === 0) {\r\n setFound(false)\r\n }\r\n else {\r\n setResult(data.data)\r\n setFound(true)\r\n }\r\n setLoading(false)\r\n }\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n setSearchTerm(e.target.value)} />\r\n \r\n
\r\n
\r\n
\r\n\r\n {loading ? :\r\n (\r\n
\r\n {found ?\r\n \r\n :\r\n
\r\n \"not-found\"\r\n

No Result

\r\n
\r\n }\r\n
\r\n )\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default PlantSearch\r\n","export default __webpack_public_path__ + \"static/media/blog.fc0941d6.svg\";","export default __webpack_public_path__ + \"static/media/diary.d6286fce.svg\";","export default __webpack_public_path__ + \"static/media/online-community.1ac5ba23.svg\";","export default __webpack_public_path__ + \"static/media/search.7b1accb2.svg\";","export default __webpack_public_path__ + \"static/media/server.b628c0c9.svg\";","export default __webpack_public_path__ + \"static/media/store.2b5ae666.svg\";","import Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport React from 'react';\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n minWidth: 200,\r\n height:'250px',\r\n borderTop:'5px solid #81fbb8',\r\n margin:'auto'\r\n },\r\n title: {\r\n fontSize: '1.7rem',\r\n fontFamily:'Asap',\r\n textAlign:'center'\r\n },\r\n text: {\r\n textAlign: 'center',\r\n fontFamily: 'Lato',\r\n fontSize:'1.1rem'\r\n },\r\n image: {\r\n height: '75px',\r\n marginLeft:'70%'\r\n }\r\n});\r\n\r\nfunction FeatureCard({ title, text,image }) {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n {text}\r\n \r\n \r\n card_img\r\n \r\n );\r\n}\r\n\r\nexport default FeatureCard","import { Container, Grid } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport React from 'react';\r\nimport blog from '../../images/blog.svg';\r\nimport diary from '../../images/diary.svg';\r\nimport forum from '../../images/online-community.svg';\r\nimport search from '../../images/search.svg';\r\nimport db from '../../images/server.svg';\r\nimport market from '../../images/store.svg';\r\nimport FeatureCard from './FeatureCard';\r\n\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n backgroundColor: '#f7f7f7',\r\n // margin:'5rem auto'\r\n },\r\n gridContainer:{\r\n padding:'10rem auto'\r\n },\r\n text: {\r\n textAlign: 'center',\r\n padding: '2rem 0rem'\r\n }\r\n});\r\n\r\nfunction Feature() {\r\n const data = [\r\n {\r\n title: \"Market Place\",\r\n text: \"Platform for buying plants, flowers, seeds and other equipments\",\r\n image: market\r\n },\r\n {\r\n title: \"Plant Database\",\r\n text:\"A database that contains plant related information\",\r\n image: db \r\n },\r\n {\r\n title: \"Plant Identification\",\r\n text:\"Identify any plants just by uploading it in the website\",\r\n image: search\r\n },\r\n {\r\n title: \"Plant Diary\",\r\n text:\"In a personalized gardening notebook, keep track of your plants progress\",\r\n image: diary\r\n },\r\n {\r\n title: \"Blog\",\r\n text:\"Read blog about plants, nature and environmental issues\",\r\n image: blog\r\n },\r\n {\r\n title: \"Community\",\r\n text:\"Ask and give answers regarding plant related questions\",\r\n image: forum\r\n },\r\n ]\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n

Features

\r\n \r\n \r\n {data.map(d => (\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 Feature\r\n\r\n","export default __webpack_public_path__ + \"static/media/pngwing.com.d99df108.png\";","import React from 'react'\r\nimport heroImg from '../../images/pngwing.com.png'\r\nimport '../../styles/landingPage.css'\r\n\r\nfunction HeroSection() {\r\n return (\r\n
\r\n
\r\n

Plant Land

\r\n

A place where plant enthusiastic people meet and get along with each other

\r\n \r\n
\r\n
\r\n \"hero\"\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default HeroSection\r\n","import React from 'react'\r\nimport { Container, Nav, Navbar } from 'react-bootstrap'\r\nimport '../../styles/landingPage.css'\r\nfunction NavBar() {\r\n return (\r\n <>\r\n \r\n \r\n PlantLand\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default NavBar\r\n","import React from 'react'\r\nimport Feature from '../components/LandingPage/Feature'\r\nimport HeroSection from '../components/LandingPage/HeroSection'\r\nimport NavBar from '../components/LandingPage/Navbar'\r\n\r\nfunction LandingPage() {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default LandingPage\r\n","import React from \"react\";\r\nimport { Container } from \"react-bootstrap\";\r\nimport { BrowserRouter as Router, Route } from \"react-router-dom\";\r\n// Blog Section\r\nimport Blog from \"../components/Blog/Blog\";\r\nimport BlogDetails from \"../components/Blog/BlogDetails\";\r\nimport NewBlog from \"../components/Blog/NewBlog\";\r\n// E-Commerce Section\r\nimport Footer from \"../components/Ecommerce/Footer\";\r\nimport Header from '../components/Ecommerce/Header';\r\nimport CartScreen from '../components/Ecommerce/Screen/CartScreen';\r\nimport ForgetPasswordScreen from '../components/Ecommerce/Screen/ForgetPasswordScreen';\r\nimport HomeScreen from '../components/Ecommerce/Screen/HomeScreen';\r\nimport LoginScreen from '../components/Ecommerce/Screen/LoginScreen';\r\nimport OrderDataScreen from \"../components/Ecommerce/Screen/OrderDataScreen\";\r\nimport OrderListScreen from \"../components/Ecommerce/Screen/OrderListScreen\";\r\nimport OrderScreen from \"../components/Ecommerce/Screen/OrderScreen\";\r\nimport PasswordResetScreen from '../components/Ecommerce/Screen/PasswordResetScreen';\r\nimport PaymentScreen from \"../components/Ecommerce/Screen/PaymentScreen\";\r\nimport PlaceOrderScreen from \"../components/Ecommerce/Screen/PlaceOrderScreen\";\r\nimport ProductEditScreen from \"../components/Ecommerce/Screen/ProductEditScreen\";\r\nimport ProductListScreen from \"../components/Ecommerce/Screen/ProductListScreen\";\r\nimport ProductScreen from '../components/Ecommerce/Screen/ProductScreen';\r\nimport ProfileScreen from '../components/Ecommerce/Screen/ProfileScreen';\r\nimport RegisterScreen from '../components/Ecommerce/Screen/RegisterScreen';\r\nimport SaleDataScreen from \"../components/Ecommerce/Screen/SaleDataScreen\";\r\nimport ShippingScreen from \"../components/Ecommerce/Screen/ShippingScreen\";\r\nimport UserListScreen from \"../components/Ecommerce/Screen/UserListScreen\";\r\nimport PlantIdentify from \"../components/PlantIdentify/PlantIdentify\";\r\nimport PlantDetails from \"../components/PlantSearch/PlantDetails\";\r\n// Plant Search Page\r\nimport PlantSearch from \"../components/PlantSearch/PlantSearch\";\r\nimport '../styles/ecommerce.css';\r\n// Landing Page\r\nimport LandingPage from './LandingPage';\r\n\r\n\r\nfunction MainPage() {\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n {/* Ecommerce Routes */}\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 {/* Blog Routes */}\r\n \r\n \r\n \r\n {/* Plant Search */}\r\n \r\n \r\n {/* Plant Identify */}\r\n \r\n\r\n
\r\n