├── public ├── p1.png ├── p2.png ├── p3.png ├── p4.png ├── p5.png ├── p6.png ├── p7.png ├── favicon.ico ├── slide-1.png ├── slide-2.png ├── slide-3.png ├── empty-cart.jpg ├── product-1.webp ├── start-black.svg ├── start-black2.svg ├── start-gold.svg ├── start-gray.svg ├── logo.svg └── spinner.svg ├── jsconfig.json ├── postcss.config.js ├── utils ├── urls.js ├── helper.js └── api.js ├── .eslintrc.json ├── pages ├── api │ └── hello.js ├── _document.js ├── failed.js ├── success.js ├── _app.js ├── index.js ├── category │ └── [slug].js ├── cart.js └── product │ └── [slug].js ├── store ├── store.js └── cartSlice.js ├── next.config.js ├── components ├── Wrapper.jsx ├── RelatedProducts.jsx ├── ProductDetailsCarousel.jsx ├── ProductCard.jsx ├── HeroBanner.jsx ├── Menu.jsx ├── MenuMobile.jsx ├── Header.jsx ├── CartItem.jsx └── Footer.jsx ├── .gitignore ├── tailwind.config.js ├── package.json ├── README.md └── styles └── globals.css /public/p1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/p1.png -------------------------------------------------------------------------------- /public/p2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/p2.png -------------------------------------------------------------------------------- /public/p3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/p3.png -------------------------------------------------------------------------------- /public/p4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/p4.png -------------------------------------------------------------------------------- /public/p5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/p5.png -------------------------------------------------------------------------------- /public/p6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/p6.png -------------------------------------------------------------------------------- /public/p7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/p7.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/slide-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/slide-1.png -------------------------------------------------------------------------------- /public/slide-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/slide-2.png -------------------------------------------------------------------------------- /public/slide-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/slide-3.png -------------------------------------------------------------------------------- /public/empty-cart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/empty-cart.jpg -------------------------------------------------------------------------------- /public/product-1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShariqAnsari88/shoe-store-frontend/HEAD/public/product-1.webp -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "paths": { 4 | "@/*": ["./*"] 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /utils/urls.js: -------------------------------------------------------------------------------- 1 | export const STRAPI_API_TOKEN = process.env.NEXT_PUBLIC_STRAPI_API_TOKEN; 2 | 3 | export const API_URL = 4 | process.env.NEXT_PUBLIC_API_URL || "http://127.0.0.1:1337"; 5 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals", 3 | "rules": { 4 | "react/no-unescaped-entities": "off", 5 | "@next/next/no-page-custom-font": "off" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pages/api/hello.js: -------------------------------------------------------------------------------- 1 | // Next.js API route support: https://nextjs.org/docs/api-routes/introduction 2 | 3 | export default function handler(req, res) { 4 | res.status(200).json({ name: 'John Doe' }) 5 | } 6 | -------------------------------------------------------------------------------- /store/store.js: -------------------------------------------------------------------------------- 1 | import { configureStore } from "@reduxjs/toolkit"; 2 | import cartSlice from "./cartSlice"; 3 | 4 | export default configureStore({ 5 | reducer: { 6 | cart: cartSlice, 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /public/start-black.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /public/start-black2.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /public/start-gold.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /public/start-gray.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | reactStrictMode: true, 4 | eslint: { 5 | ignoreDuringBuilds: true, 6 | }, 7 | images: { 8 | domains: ["res.cloudinary.com"], 9 | }, 10 | }; 11 | 12 | module.exports = nextConfig; 13 | -------------------------------------------------------------------------------- /pages/_document.js: -------------------------------------------------------------------------------- 1 | import { Html, Head, Main, NextScript } from 'next/document' 2 | 3 | export default function Document() { 4 | return ( 5 | 6 |
8 | 9 |
23 |
24 |
25 |
26 |
27 |
*/}
28 | 21 | ₹{p.price} 22 |
23 | 24 | {p.original_price && ( 25 | <> 26 |27 | ₹{p.original_price} 28 |
29 |30 | {getDiscountedPricePercentage( 31 | p.original_price, 32 | p.price 33 | )} 34 | % off 35 |
36 | > 37 | )} 38 |
39 |
49 |
59 | 60 | MRP : ₹{p.price} 61 |
62 | {p.original_price && ( 63 | <> 64 |65 | ₹{p.original_price} 66 |
67 |68 | {getDiscountedPricePercentage( 69 | p.original_price, 70 | p.price 71 | )} 72 | % off 73 |
74 | > 75 | )} 76 |