diff --git a/src/app/categories/[...id]/page.jsx b/src/app/categories/[...id]/page.jsx new file mode 100644 index 0000000..f5e376f --- /dev/null +++ b/src/app/categories/[...id]/page.jsx @@ -0,0 +1,210 @@ +import React from "react"; +import CategoriesData from "src/view/Categories"; + +const page = async ({ params, searchParams }) => { + const data = [ + { + id: 1, + persianName: "Hydrating Cream", + englishName: "Hydrating Cream", + description: + "A deeply moisturizing cream that keeps your skin hydrated all day long.", + cost: 250000, + costWithDiscount: 200000, + hasDiscount: true, + discountPercent: 20, + stock: 5, + mainImage: "4", + }, + { + id: 2, + persianName: "Hair Strengthening Shampoo", + englishName: "Hair Strengthening Shampoo", + description: + "A nourishing shampoo that strengthens hair roots and prevents hair fall.", + cost: 180000, + costWithDiscount: 150000, + hasDiscount: true, + discountPercent: 17, + stock: 2, + mainImage: "3", + }, + { + id: 3, + persianName: "Vitamin C Serum", + englishName: "Vitamin C Serum", + description: + "An antioxidant-rich serum that brightens skin and reduces signs of aging.", + cost: 300000, + costWithDiscount: 270000, + hasDiscount: true, + discountPercent: 10, + stock: 3, + mainImage: "1", + }, + { + id: 4, + persianName: "Charcoal Face Mask", + englishName: "Charcoal Face Mask", + description: + "A detoxifying mask that removes impurities and unclogs pores for a fresh look.", + cost: 220000, + costWithDiscount: 220000, + hasDiscount: false, + discountPercent: 0, + stock: 8, + mainImage: "4", + }, + { + id: 5, + persianName: "Body Lotion", + englishName: "Body Lotion", + description: + "A lightweight body lotion that nourishes and hydrates dry skin.", + cost: 210000, + costWithDiscount: 185000, + hasDiscount: true, + discountPercent: 12, + stock: 6, + mainImage: "2", + }, + { + id: 6, + persianName: "Aloe Vera Gel", + englishName: "Aloe Vera Gel", + description: + "A soothing gel enriched with aloe vera to calm irritated skin.", + cost: 160000, + costWithDiscount: 160000, + hasDiscount: false, + discountPercent: 0, + stock: 10, + mainImage: "3", + }, + { + id: 7, + persianName: "Sunscreen SPF 50", + englishName: "Sunscreen SPF 50", + description: + "A broad-spectrum sunscreen that protects against UV rays and prevents sunburn.", + cost: 280000, + costWithDiscount: 230000, + hasDiscount: true, + discountPercent: 18, + stock: 4, + mainImage: "1", + }, + { + id: 8, + persianName: "Face Cleanser", + englishName: "Face Cleanser", + description: + "A gentle face cleanser that removes dirt and oil without stripping moisture.", + cost: 190000, + costWithDiscount: 170000, + hasDiscount: true, + discountPercent: 10, + stock: 7, + mainImage: "2", + }, + { + id: 9, + persianName: "Moisturizing Cream", + englishName: "Moisturizing Cream", + description: + "A rich cream that provides deep hydration for soft and smooth skin.", + cost: 260000, + costWithDiscount: 260000, + hasDiscount: false, + discountPercent: 0, + stock: 9, + mainImage: "4", + }, + { + id: 10, + persianName: "Eye Serum", + englishName: "Eye Serum", + description: + "A lightweight eye serum that reduces puffiness and dark circles.", + cost: 350000, + costWithDiscount: 310000, + hasDiscount: true, + discountPercent: 12, + stock: 5, + mainImage: "3", + }, + { + id: 11, + persianName: "Lip Balm", + englishName: "Lip Balm", + description: + "A moisturizing lip balm that prevents chapped lips and adds a subtle shine.", + cost: 90000, + costWithDiscount: 80000, + hasDiscount: true, + discountPercent: 11, + stock: 12, + mainImage: "1", + }, + { + id: 12, + persianName: "Hand Cream", + englishName: "Hand Cream", + description: + "A fast-absorbing hand cream that keeps hands soft and hydrated.", + cost: 170000, + costWithDiscount: 150000, + hasDiscount: true, + discountPercent: 12, + stock: 6, + mainImage: "2", + }, + { + id: 13, + persianName: "Night Repair Serum", + englishName: "Night Repair Serum", + description: + "A serum that works overnight to repair and rejuvenate your skin.", + cost: 390000, + costWithDiscount: 350000, + hasDiscount: true, + discountPercent: 10, + stock: 4, + mainImage: "3", + }, + { + id: 14, + persianName: "Shaving Cream", + englishName: "Shaving Cream", + description: + "A rich shaving cream that provides a smooth and irritation-free shave.", + cost: 200000, + costWithDiscount: 200000, + hasDiscount: false, + discountPercent: 0, + stock: 9, + mainImage: "4", + }, + + { + id: 15, + persianName: "Shaving ", + englishName: "Shaving ", + description: + "A fast-absorbing hand cream that keeps hands soft and hydrated.", + cost: 200000, + costWithDiscount: 200000, + hasDiscount: false, + discountPercent: 0, + stock: 9, + mainImage: "1", + }, + ]; + return ( +
+ +
+ ); +}; + +export default page; diff --git a/src/app/categories/page.jsx b/src/app/categories/page.jsx new file mode 100644 index 0000000..420225f --- /dev/null +++ b/src/app/categories/page.jsx @@ -0,0 +1,14 @@ +"use client"; +import { useRouter } from "next/navigation"; +import React, { useEffect } from "react"; + +const Page = (props) => { + const router = useRouter(); + useEffect(() => { + router.push("/categories/0"); + }, []); + + return; +}; + +export default Page; diff --git a/src/app/products/[...id]/page.jsx b/src/app/products/[...id]/page.jsx new file mode 100644 index 0000000..15115dd --- /dev/null +++ b/src/app/products/[...id]/page.jsx @@ -0,0 +1,12 @@ +import ProductData from "@comp/AppsComponent/ProductData/page"; +import { notFound, redirect } from "next/navigation"; + +async function getData(id) { + return ( + <> + + + ); +} + +export default Page; diff --git a/src/view/Categories/components/Content.jsx b/src/view/Categories/components/Content.jsx new file mode 100644 index 0000000..adc3d1f --- /dev/null +++ b/src/view/Categories/components/Content.jsx @@ -0,0 +1,28 @@ +import React from "react"; +import CardNormal from "src/components/Cards/CardNormal/page"; + +const Content = ({ products }) => { + return ( +
+
+
+

+ Product Listing Page +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Corporis,{" "} +

+
+
+
+ {products.map((product, index) => ( +
+ +
+ ))} +
+
+ ); +}; + +export default Content; diff --git a/src/view/Categories/components/Filters.jsx b/src/view/Categories/components/Filters.jsx new file mode 100644 index 0000000..5df3dc5 --- /dev/null +++ b/src/view/Categories/components/Filters.jsx @@ -0,0 +1,48 @@ +import React from "react"; + +const Filters = () => { + return ( + + ); +}; + +export default Filters; diff --git a/src/view/Categories/index.jsx b/src/view/Categories/index.jsx new file mode 100644 index 0000000..4df9e77 --- /dev/null +++ b/src/view/Categories/index.jsx @@ -0,0 +1,21 @@ +import React from "react"; +import CardNormal from "src/components/Cards/CardNormal/page"; +import Navbar from "src/components/NavBar"; +import Content from "./components/Content"; +import Filters from "./components/Filters"; +import Footer from "../Landing/components/Footer"; + +const CategoriesData = ({ products }) => { + return ( + <> + +
+ + +
+