From 09772e23b160c212b22fb44a865b316ce02a0ab6 Mon Sep 17 00:00:00 2001 From: bender Date: Mon, 8 Jun 2026 12:08:05 +0000 Subject: [PATCH 1/2] Update src/app/page.tsx --- src/app/page.tsx | 312 ++++++++++------------------------------------- 1 file changed, 65 insertions(+), 247 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 432fb38..1e87c99 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -33,25 +33,15 @@ export default function LandingPage() { @@ -140,34 +110,16 @@ export default function LandingPage() { useInvertedBackground={false} features={[ { - id: "quality", - label: "Premium Quality", - title: "Handpicked Excellence", - items: [ - "Only top-rated products", - "Rigorous quality checks", - "Durable and long-lasting items", - ], + id: "quality", label: "Premium Quality", title: "Handpicked Excellence", items: [ + "Only top-rated products", "Rigorous quality checks", "Durable and long-lasting items"], }, { - id: "delivery", - label: "Fast Delivery", - title: "Swift & Secure Shipping", - items: [ - "Expedited delivery options", - "Track your order live", - "Secure packaging guaranteed", - ], + id: "delivery", label: "Fast Delivery", title: "Swift & Secure Shipping", items: [ + "Expedited delivery options", "Track your order live", "Secure packaging guaranteed"], }, { - id: "support", - label: "24/7 Support", - title: "Dedicated Customer Care", - items: [ - "Assistance anytime, anywhere", - "Friendly and knowledgeable team", - "Hassle-free returns & exchanges", - ], + id: "support", label: "24/7 Support", title: "Dedicated Customer Care", items: [ + "Assistance anytime, anywhere", "Friendly and knowledgeable team", "Hassle-free returns & exchanges"], }, ]} title="Why Choose E-Shop Pro?" @@ -177,60 +129,24 @@ export default function LandingPage() {
@@ -374,27 +233,16 @@ export default function LandingPage() { description="Have questions or need assistance? Our support team is here to help." inputs={[ { - name: "name", - type: "text", - placeholder: "Your Name", - required: true, + name: "name", type: "text", placeholder: "Your Name", required: true, }, { - name: "email", - type: "email", - placeholder: "Your Email", - required: true, + name: "email", type: "email", placeholder: "Your Email", required: true, }, { - name: "subject", - type: "text", - placeholder: "Subject", - }, + name: "subject", type: "text", placeholder: "Subject"}, ]} textarea={{ - name: "message", - placeholder: "Your Message", - rows: 4, + name: "message", placeholder: "Your Message", rows: 4, required: true, }} imageSrc="http://img.b2bpic.net/free-photo/young-beautiful-female-support-phone-operator-speaking-consulting-office_176420-954.jpg" @@ -413,77 +261,47 @@ export default function LandingPage() { { items: [ { - label: "Shop", - href: "#products", - }, + label: "Shop", href: "#products"}, { - label: "Best Sellers", - href: "#products", - }, + label: "Best Sellers", href: "#products"}, { - label: "New Arrivals", - href: "#products", - }, + label: "New Arrivals", href: "#products"}, { - label: "Categories", - href: "#products", - }, + label: "Categories", href: "#products"}, ], }, { items: [ { - label: "About Us", - href: "#about", - }, + label: "About Us", href: "#about"}, { - label: "Our Story", - href: "#about", - }, + label: "Our Story", href: "#about"}, { - label: "Careers", - href: "#", - }, + label: "Careers", href: "#"}, { - label: "Partners", - href: "#social-proof", - }, + label: "Partners", href: "#social-proof"}, ], }, { items: [ { - label: "Support", - href: "#faq", - }, + label: "Support", href: "#faq"}, { - label: "FAQ", - href: "#faq", - }, + label: "FAQ", href: "#faq"}, { - label: "Contact", - href: "#contact", - }, + label: "Contact", href: "#contact"}, { - label: "Shipping & Returns", - href: "#faq", - }, + label: "Shipping & Returns", href: "#faq"}, ], }, { items: [ { - label: "Legal", - href: "#", - }, + label: "Legal", href: "#"}, { - label: "Privacy Policy", - href: "#", - }, + label: "Privacy Policy", href: "#"}, { - label: "Terms of Service", - href: "#", - }, + label: "Terms of Service", href: "#"}, ], }, ]} -- 2.49.1 From 138926f27c96a5ef650e4199d0ab9bae6cbd5c55 Mon Sep 17 00:00:00 2001 From: bender Date: Mon, 8 Jun 2026 12:08:05 +0000 Subject: [PATCH 2/2] Add src/app/products/page.tsx --- src/app/products/page.tsx | 230 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 src/app/products/page.tsx diff --git a/src/app/products/page.tsx b/src/app/products/page.tsx new file mode 100644 index 0000000..fecfbe6 --- /dev/null +++ b/src/app/products/page.tsx @@ -0,0 +1,230 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import ReactLenis from "lenis/react"; +import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen'; +import ProductCardFour from '@/components/sections/product/ProductCardFour'; +import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis'; +import { useState } from 'react'; + +// Helper function to generate mock products for demonstration of 100+ items +const generateMockProducts = (count: number) => { + const products = []; + const baseProducts = [ + { name: "Smart Fitness Watch", price: "$129.99", variant: "Black", imageSrc: "http://img.b2bpic.net/free-photo/smartwatch-with-augmented-reality_1134-124.jpg", imageAlt: "Smart Fitness Watch", description: "Track your health and fitness with advanced sensors and a sleek design." }, + { name: "Wireless Headphones", price: "$199.00", variant: "Space Gray", imageSrc: "http://img.b2bpic.net/free-photo/close-up-headphones-near-vinyl-record-with-fingerprint_23-2147781812.jpg", imageAlt: "Wireless Noise-Cancelling Headphones", description: "Immerse yourself in premium sound quality with active noise cancellation." }, + { name: "Portable Speaker", price: "$79.50", variant: "Blue", imageSrc: "http://img.b2bpic.net/free-photo/managing-smart-speakers-concept_23-2150170100.jpg", imageAlt: "Portable Bluetooth Speaker", description: "Take your music anywhere with this compact, powerful, and waterproof Bluetooth speaker." }, + { name: "Ergonomic Office Chair", price: "$299.00", variant: "Grey", imageSrc: "http://img.b2bpic.net/free-photo/still-life-office-chair-indoors_23-2151108699.jpg", imageAlt: "Ergonomic Office Chair", description: "Experience ultimate comfort and support during long work hours with adjustable features." }, + { name: "Gaming Mouse", price: "$59.99", variant: "RGB", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-gaming-setup-arrangement_23-2149680238.jpg", imageAlt: "High-Performance Gaming Mouse", description: "Achieve precision and speed with customizable buttons and dynamic RGB lighting." }, + { name: "Mirrorless Camera", price: "$649.00", variant: "Silver", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-professional-reflex-camera_52683-128977.jpg", imageAlt: "Compact Mirrorless Camera", description: "Capture stunning photos and videos with professional-grade imaging in a compact body." }, + { name: "Smart Home Hub", price: "$89.00", variant: "White", imageSrc: "http://img.b2bpic.net/free-photo/concept-smart-home-digital-device_23-2148560965.jpg", imageAlt: "Smart Home Hub", description: "Control all your smart devices from one central hub, compatible with major smart home ecosystems." }, + { name: "Wireless Charger Pad", price: "$35.00", variant: "Black", imageSrc: "http://img.b2bpic.net/free-photo/cropped-shot-person-charging-mobile-phone-while-working-table_23-2147814429.jpg", imageAlt: "Wireless Charger Pad", description: "Charge your phone effortlessly with this sleek and fast wireless charging pad." }, + { name: "Robot Vacuum Cleaner", price: "$349.00", variant: "White", imageSrc: "http://img.b2bpic.net/free-photo/modern-robot-vacuum-cleaner-working-home_23-2148810756.jpg", imageAlt: "Robot Vacuum Cleaner", description: "Keep your floors spotless with intelligent navigation and powerful suction." }, + { name: "Espresso Machine", price: "$499.00", variant: "Stainless Steel", imageSrc: "http://img.b2bpic.net/free-photo/barista-serving-coffee-with-coffee-machine_23-2147775947.jpg", imageAlt: "Espresso Machine", description: "Brew cafe-quality espresso at home with this elegant and easy-to-use machine." }, + ]; + + for (let i = 0; i < count; i++) { + const baseProduct = baseProducts[i % baseProducts.length]; + products.push({ + ...baseProduct, + id: `prod${i + 1}`, + name: `${baseProduct.name} ${Math.floor(i / baseProducts.length) + 1}`, + price: `$${(parseFloat(baseProduct.price.replace('$', '')) + (i % 10) * 0.5).toFixed(2)}`, + imageSrc: baseProduct.imageSrc, + imageAlt: `${baseProduct.imageAlt} ${Math.floor(i / baseProducts.length) + 1}`, + }); + } + return products; +}; + +const MOCK_PRODUCTS = generateMockProducts(120); // Generate 120 mock products + +export default function ProductsPage() { + const [searchTerm, setSearchTerm] = useState(''); + const [selectedCategory, setSelectedCategory] = useState('All'); + const [selectedPriceRange, setSelectedPriceRange] = useState('All'); + const [currentPage, setCurrentPage] = useState(1); + const itemsPerPage = 12; + + const categories = ['All', 'Electronics', 'Home Goods', 'Office', 'Gaming', 'Kitchen']; + const priceRanges = ['All', '$0-50', '$51-200', '$201-500', '$500+']; + + const filteredProducts = MOCK_PRODUCTS.filter(product => { + const matchesSearch = product.name.toLowerCase().includes(searchTerm.toLowerCase()); + + let matchesCategory = true; + if (selectedCategory !== 'All') { + matchesCategory = product.description.toLowerCase().includes(selectedCategory.toLowerCase()); // Simple category match from description for mock + } + + let matchesPrice = true; + if (selectedPriceRange !== 'All') { + const price = parseFloat(product.price.replace('$', '')); + if (selectedPriceRange === '$0-50') matchesPrice = price >= 0 && price <= 50; + else if (selectedPriceRange === '$51-200') matchesPrice = price > 50 && price <= 200; + else if (selectedPriceRange === '$201-500') matchesPrice = price > 200 && price <= 500; + else if (selectedPriceRange === '$500+') matchesPrice = price > 500; + } + + return matchesSearch && matchesCategory && matchesPrice; + }); + + const totalPages = Math.ceil(filteredProducts.length / itemsPerPage); + const paginatedProducts = filteredProducts.slice( + (currentPage - 1) * itemsPerPage, + currentPage * itemsPerPage + ); + + return ( + + + + +
+

Our Product Catalog

+ + {/* Filters and Search */} +
+ { + setSearchTerm(e.target.value); + setCurrentPage(1); + }} + /> + + +
+ +
+ setCurrentPage(prev => Math.min(totalPages, prev + 1)), + href: "#"}, + ]} + buttonAnimation="slide-up" + /> +
+ + {/* Pagination */} + {totalPages > 1 && ( +
+ + Page {currentPage} of {totalPages} + +
+ )} +
+ + +
+
+ ); +} -- 2.49.1