Repository: ShariqAnsari88/shoe-store-frontend Branch: main Commit: c5405a37a753 Files: 33 Total size: 64.7 KB Directory structure: gitextract_oskfoxu2/ ├── .eslintrc.json ├── .gitignore ├── README.md ├── components/ │ ├── CartItem.jsx │ ├── Footer.jsx │ ├── Header.jsx │ ├── HeroBanner.jsx │ ├── Menu.jsx │ ├── MenuMobile.jsx │ ├── ProductCard.jsx │ ├── ProductDetailsCarousel.jsx │ ├── RelatedProducts.jsx │ └── Wrapper.jsx ├── jsconfig.json ├── next.config.js ├── package.json ├── pages/ │ ├── _app.js │ ├── _document.js │ ├── api/ │ │ └── hello.js │ ├── cart.js │ ├── category/ │ │ └── [slug].js │ ├── failed.js │ ├── index.js │ ├── product/ │ │ └── [slug].js │ └── success.js ├── postcss.config.js ├── store/ │ ├── cartSlice.js │ └── store.js ├── styles/ │ └── globals.css ├── tailwind.config.js └── utils/ ├── api.js ├── helper.js └── urls.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .eslintrc.json ================================================ { "extends": "next/core-web-vitals", "rules": { "react/no-unescaped-entities": "off", "@next/next/no-page-custom-font": "off" } } ================================================ FILE: .gitignore ================================================ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies /node_modules /.pnp .pnp.js # testing /coverage # next.js /.next/ /out/ # production /build # misc .DS_Store *.pem # debug npm-debug.log* yarn-debug.log* yarn-error.log* .pnpm-debug.log* # local env files .env*.local .env # vercel .vercel ================================================ FILE: README.md ================================================ This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). ## Getting Started First, run the development server: ```bash npm run dev # or yarn dev # or pnpm dev ``` Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. [API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`. The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. ## Learn More To learn more about Next.js, take a look at the following resources: - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! ## Deploy on Vercel The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. ================================================ FILE: components/CartItem.jsx ================================================ import Image from "next/image"; import React from "react"; import { RiDeleteBin6Line } from "react-icons/ri"; import { updateCart, removeFromCart } from "@/store/cartSlice"; import { useDispatch } from "react-redux"; const CartItem = ({ data }) => { const p = data.attributes; const dispatch = useDispatch(); const updateCartItem = (e, key) => { let payload = { key, val: key === "quantity" ? parseInt(e.target.value) : e.target.value, id: data.id, }; dispatch(updateCart(payload)); }; return (
₹{p.price}
{p.original_price && ( <>₹{p.original_price}
{getDiscountedPricePercentage( p.original_price, p.price )} % off
> )}
*/}
MRP : ₹{p.price}
{p.original_price && ( <>₹{p.original_price}
{getDiscountedPricePercentage( p.original_price, p.price )} % off
> )}