From 9a05dc98bab08c1ffd42bd4440c518e806ba623c Mon Sep 17 00:00:00 2001 From: bender Date: Sun, 22 Feb 2026 12:13:27 +0000 Subject: [PATCH 1/8] Update src/app/about/page.tsx --- src/app/about/page.tsx | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index 4321097..b399cc7 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -5,21 +5,18 @@ import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleAp import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard'; import FooterBase from '@/components/sections/footer/FooterBase'; import { Sparkles, ShieldCheck } from 'lucide-react'; -import Link from 'next/link'; export default function AboutPage() { const navItems = [ { name: "Home", id: "/" }, { name: "Products", id: "/products" }, { name: "About", id: "/about" }, - { name: "Blog", id: "/blog" }, { name: "Contact", id: "/contact" } ]; const footerColumns = [ { - title: "Shop", - items: [ + title: "Shop", items: [ { label: "Hookahs", href: "/products" }, { label: "Tobacco", href: "/products" }, { label: "Charcoal", href: "/products" }, @@ -27,18 +24,16 @@ export default function AboutPage() { ], }, { - title: "Company", - items: [ + title: "Company", items: [ { label: "About Us", href: "/about" }, { label: "Blog", href: "/blog" }, { label: "Contact", href: "/contact" }, ], }, { - title: "Legal", - items: [ - { label: "Privacy Policy", href: "/" }, - { label: "Terms of Service", href: "/" }, + title: "Legal", items: [ + { label: "Privacy Policy", href: "/privacy" }, + { label: "Terms of Service", href: "/terms" }, ], }, ]; @@ -59,7 +54,7 @@ export default function AboutPage() { @@ -79,11 +74,13 @@ export default function AboutPage() { /> - + ); } \ No newline at end of file From c74e20f7280ec501a80c951624e37f837e7c1680 Mon Sep 17 00:00:00 2001 From: bender Date: Sun, 22 Feb 2026 12:13:27 +0000 Subject: [PATCH 2/8] Update src/app/blog/page.tsx --- src/app/blog/page.tsx | 160 ++++++++++++++++++++---------------------- 1 file changed, 76 insertions(+), 84 deletions(-) diff --git a/src/app/blog/page.tsx b/src/app/blog/page.tsx index 1a896ae..0d47a40 100644 --- a/src/app/blog/page.tsx +++ b/src/app/blog/page.tsx @@ -1,94 +1,86 @@ "use client"; -import ReactLenis from "lenis/react"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import { useBlogPosts } from "@/hooks/useBlogPosts"; - import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple'; +import BlogCardTwo from '@/components/sections/blog/BlogCardTwo'; import FooterBase from '@/components/sections/footer/FooterBase'; -import BlogCardOne from '@/components/sections/blog/BlogCardOne'; export default function BlogPage() { - const { posts, isLoading } = useBlogPosts(); + const navItems = [ + { name: "Home", id: "/" }, + { name: "Products", id: "/products" }, + { name: "About", id: "/about" }, + { name: "Contact", id: "/contact" } + ]; - return ( - - - + const footerColumns = [ + { + title: "Shop", items: [ + { label: "Hookahs", href: "/products" }, + { label: "Tobacco", href: "/products" }, + { label: "Charcoal", href: "/products" }, + { label: "Accessories", href: "/products" }, + ], + }, + { + title: "Company", items: [ + { label: "About Us", href: "/about" }, + { label: "Blog", href: "/blog" }, + { label: "Contact", href: "/contact" }, + ], + }, + { + title: "Legal", items: [ + { label: "Privacy Policy", href: "/privacy" }, + { label: "Terms of Service", href: "/terms" }, + ], + }, + ]; - {isLoading ? ( -
-

Loading posts...

-
- ) : ( -
- -
- )} + return ( + + - -
-
- ); -} +
+ +
+ + + + ); +} \ No newline at end of file From 96032609146150dd5e5055ffd9ed1398c35a740e Mon Sep 17 00:00:00 2001 From: bender Date: Sun, 22 Feb 2026 12:13:28 +0000 Subject: [PATCH 3/8] Update src/app/contact/page.tsx --- src/app/contact/page.tsx | 43 +++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx index 8bf7996..dd11af9 100644 --- a/src/app/contact/page.tsx +++ b/src/app/contact/page.tsx @@ -3,22 +3,20 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple'; import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia'; +import ContactCenter from '@/components/sections/contact/ContactCenter'; import FooterBase from '@/components/sections/footer/FooterBase'; -import Link from 'next/link'; export default function ContactPage() { const navItems = [ { name: "Home", id: "/" }, { name: "Products", id: "/products" }, { name: "About", id: "/about" }, - { name: "Blog", id: "/blog" }, { name: "Contact", id: "/contact" } ]; const footerColumns = [ { - title: "Shop", - items: [ + title: "Shop", items: [ { label: "Hookahs", href: "/products" }, { label: "Tobacco", href: "/products" }, { label: "Charcoal", href: "/products" }, @@ -26,18 +24,16 @@ export default function ContactPage() { ], }, { - title: "Company", - items: [ + title: "Company", items: [ { label: "About Us", href: "/about" }, { label: "Blog", href: "/blog" }, { label: "Contact", href: "/contact" }, ], }, { - title: "Legal", - items: [ - { label: "Privacy Policy", href: "/" }, - { label: "Terms of Service", href: "/" }, + title: "Legal", items: [ + { label: "Privacy Policy", href: "/privacy" }, + { label: "Terms of Service", href: "/terms" }, ], }, ]; @@ -58,7 +54,7 @@ export default function ContactPage() { @@ -82,12 +78,27 @@ export default function ContactPage() { ]} /> + +
+ +
- + ); } \ No newline at end of file From fcebf346f247401e299a7225688550e5f4c465c3 Mon Sep 17 00:00:00 2001 From: bender Date: Sun, 22 Feb 2026 12:13:28 +0000 Subject: [PATCH 4/8] Update src/app/layout.tsx --- src/app/layout.tsx | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index e52aab3..307657b 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -3,37 +3,23 @@ import { Inter_Tight } from "next/font/google"; import "./globals.css"; const interTight = Inter_Tight({ - variable: "--font-inter-tight", - subsets: ["latin"], + variable: "--font-inter-tight", subsets: ["latin"], weight: ["100", "200", "300", "400", "500", "600", "700", "800", "900"], }); export const metadata: Metadata = { - title: "Hookah Haven - Premium Hookah, Tobacco & Accessories", - description: "Discover a premium selection of hookahs, high-quality tobacco, natural charcoal, and essential accessories for an unparalleled smoking experience. Shop now at Hookah Haven.", - keywords: ["hookah", "shisha", "tobacco", "charcoal", "hookah accessories", "premium hookah", "online hookah store"], + title: "Hookah Haven - Premium Hookah, Tobacco & Accessories", description: "Discover a premium selection of hookahs, high-quality tobacco, natural charcoal, and essential accessories for an unparalleled smoking experience. Shop now at Hookah Haven.", keywords: ["hookah", "shisha", "tobacco", "charcoal", "hookah accessories", "premium hookah", "online hookah store"], metadataBase: new URL("https://www.hookahhaven.com"), alternates: { - canonical: "https://www.hookahhaven.com", - }, + canonical: "https://www.hookahhaven.com"}, openGraph: { - title: "Hookah Haven - Premium Hookah, Tobacco & Accessories", - description: "Discover a premium selection of hookahs, high-quality tobacco, natural charcoal, and essential accessories for an unparalleled smoking experience. Shop now at Hookah Haven.", - url: "https://www.hookahhaven.com", - siteName: "Hookah Haven", - images: [ + title: "Hookah Haven - Premium Hookah, Tobacco & Accessories", description: "Discover a premium selection of hookahs, high-quality tobacco, natural charcoal, and essential accessories for an unparalleled smoking experience. Shop now at Hookah Haven.", url: "https://www.hookahhaven.com", siteName: "Hookah Haven", images: [ { - url: "https://img.b2bpic.net/free-photo/classic-hookah-beautiful-colored-rays-light-smoke-concept-hookah-smoking_169016-5136.jpg", - alt: "Elegant hookah setup", - }, + url: "https://img.b2bpic.net/free-photo/classic-hookah-beautiful-colored-rays-light-smoke-concept-hookah-smoking_169016-5136.jpg", alt: "Elegant hookah setup"}, ], - type: "website", - }, + type: "website"}, twitter: { - card: "summary_large_image", - title: "Hookah Haven - Premium Hookah, Tobacco & Accessories", - description: "Discover a premium selection of hookahs, high-quality tobacco, natural charcoal, and essential accessories for an unparalleled smoking experience. Shop now at Hookah Haven.", - images: ["https://img.b2bpic.net/free-photo/classic-hookah-beautiful-colored-rays-light-smoke-concept-hookah-smoking_169016-5136.jpg"], + card: "summary_large_image", title: "Hookah Haven - Premium Hookah, Tobacco & Accessories", description: "Discover a premium selection of hookahs, high-quality tobacco, natural charcoal, and essential accessories for an unparalleled smoking experience. Shop now at Hookah Haven.", images: ["https://img.b2bpic.net/free-photo/classic-hookah-beautiful-colored-rays-light-smoke-concept-hookah-smoking_169016-5136.jpg"], }, robots: { index: true, From 2d590065f68e9de21cee5381e2baa55cc1857db4 Mon Sep 17 00:00:00 2001 From: bender Date: Sun, 22 Feb 2026 12:13:29 +0000 Subject: [PATCH 5/8] Update src/app/page.tsx --- src/app/page.tsx | 43 ++++++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 688a688..75c3975 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -9,21 +9,18 @@ import BlogCardTwo from '@/components/sections/blog/BlogCardTwo'; import ContactCenter from '@/components/sections/contact/ContactCenter'; import FooterBase from '@/components/sections/footer/FooterBase'; import { Gift, Leaf, Plug, Truck } from 'lucide-react'; -import Link from 'next/link'; export default function HomePage() { const navItems = [ { name: "Home", id: "/" }, { name: "Products", id: "/products" }, { name: "About", id: "/about" }, - { name: "Blog", id: "/blog" }, { name: "Contact", id: "/contact" } ]; const footerColumns = [ { - title: "Shop", - items: [ + title: "Shop", items: [ { label: "Hookahs", href: "/products" }, { label: "Tobacco", href: "/products" }, { label: "Charcoal", href: "/products" }, @@ -31,18 +28,16 @@ export default function HomePage() { ], }, { - title: "Company", - items: [ + title: "Company", items: [ { label: "About Us", href: "/about" }, { label: "Blog", href: "/blog" }, { label: "Contact", href: "/contact" }, ], }, { - title: "Legal", - items: [ - { label: "Privacy Policy", href: "/" }, - { label: "Terms of Service", href: "/" }, + title: "Legal", items: [ + { label: "Privacy Policy", href: "/privacy" }, + { label: "Terms of Service", href: "/terms" }, ], }, ]; @@ -63,7 +58,7 @@ export default function HomePage() { @@ -80,7 +75,7 @@ export default function HomePage() { enableKpiAnimation={true} buttons={[ { text: "Shop Now", href: "/products" }, - { text: "Explore Flavors", href: "/products" }, + { text: "Explore Flavors", href: "/products#tobacco" }, ]} imageSrc="https://img.b2bpic.net/free-photo/classic-hookah-beautiful-colored-rays-light-smoke-concept-hookah-smoking_169016-5136.jpg" imageAlt="Elegant hookah setup with smoke in a luxurious setting" @@ -115,11 +110,11 @@ export default function HomePage() { useInvertedBackground={false} testimonials={[ { id: "1", name: "Omar K.", handle: "@hookahfanatic", testimonial: "Hookah Haven has the best selection, period. My 'Classic Elegance' hookah arrived fast and is a beauty. Five stars!", imageSrc: "https://img.b2bpic.net/free-photo/smiling-millennial-man-looking-camera-cafe-headshot-portrait_1163-5163.jpg", imageAlt: "Omar K. avatar" }, - { id: "2", name: "Sophia R.", handle: "@shishaqueen", testimonial: "The 'Rich Vanilla Tobacco' is heavenly. The flavors are so intense and smooth. My new go-to for quality shisha.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-young-smiling-pretty-girl-plaid-shirt-posing_114579-70643.jpg?_wi=1", imageAlt: "Sophia R. avatar" }, + { id: "2", name: "Sophia R.", handle: "@shishaqueen", testimonial: "The 'Rich Vanilla Tobacco' is heavenly. The flavors are so intense and smooth. My new go-to for quality shisha.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-young-smiling-pretty-girl-plaid-shirt-posing_114579-70643.jpg", imageAlt: "Sophia R. avatar" }, { id: "3", name: "Ahmed G.", handle: "@charcoalguru", testimonial: "Their natural coconut charcoal burns perfectly, no weird taste, just clean heat. It makes a huge difference to my sessions.", imageSrc: "https://img.b2bpic.net/free-photo/handsome-man-outdoors-portrait_158595-3552.jpg", imageAlt: "Ahmed G. avatar" }, { id: "4", name: "Lena M.", handle: "@flavorchaser", testimonial: "I love the 'Exotic Flavor Assortment'! It's a great way to try new things. Always fresh and packed with flavor.", imageSrc: "https://img.b2bpic.net/free-photo/young-businesswoman-portrait-office_1262-1506.jpg", imageAlt: "Lena M. avatar" }, { id: "5", name: "Jamal P.", handle: "@chillhookah", testimonial: "The customer service is outstanding. They helped me choose the perfect starter kit. Highly recommend for beginners!", imageSrc: "https://img.b2bpic.net/free-photo/portrait-cute-smiling-boy-cafe_23-2148436234.jpg", imageAlt: "Jamal P. avatar" }, - { id: "6", name: "Chloe T.", handle: "@smoketricks", testimonial: "Found my favorite hookah accessory here, the ceramic bowl. It truly enhances the smoke. Great quality and prices!", imageSrc: "https://img.b2bpic.net/free-photo/portrait-young-smiling-pretty-girl-plaid-shirt-posing_114579-70643.jpg?_wi=2", imageAlt: "Chloe T. avatar" } + { id: "6", name: "Chloe T.", handle: "@smoketricks", testimonial: "Found my favorite hookah accessory here, the ceramic bowl. It truly enhances the smoke. Great quality and prices!", imageSrc: "https://img.b2bpic.net/free-photo/portrait-young-smiling-pretty-girl-plaid-shirt-posing_114579-70643.jpg", imageAlt: "Chloe T. avatar" } ]} speed={35} /> @@ -134,10 +129,10 @@ export default function HomePage() { animationType="slide-up" useInvertedBackground={false} blogs={[ - { id: "1", category: ["Tips", "Setup"], title: "Mastering Your Hookah Setup: A Beginner's Guide", excerpt: "Learn the essential steps to setting up your hookah for the best smoke, from base to bowl.", imageSrc: "https://img.b2bpic.net/free-photo/bartender-pouring-cocktail-incredients-lounge-atmosphere_482257-24652.jpg?_wi=1", imageAlt: "Person setting up a hookah", authorName: "Hookah Haven Team", authorAvatar: "https://img.b2bpic.net/free-vector/gradient-labels-collection-luxurious-hotel-experience_23-2150241639.jpg", date: "May 10, 2024" }, - { id: "2", category: ["Flavors", "Review"], title: "Top 5 New Tobacco Flavors You Must Try This Season", excerpt: "Dive into our review of the freshest and most exciting tobacco blends hitting the market.", imageSrc: "https://img.b2bpic.net/free-photo/hookah-with-mixed-fruits-wooden-board-cocktails-side-view_141793-12246.jpg?_wi=1", imageAlt: "Variety of hookah tobacco flavors", authorName: "Hookah Haven Team", authorAvatar: "https://img.b2bpic.net/free-vector/gradient-labels-collection-luxurious-hotel-experience_23-2150241639.jpg", date: "April 28, 2024" }, - { id: "3", category: ["Charcoal", "Guide"], title: "The Ultimate Guide to Hookah Charcoal: Types & Usage", excerpt: "Everything you need to know about choosing and managing your charcoal for a smooth session.", imageSrc: "https://img.b2bpic.net/free-photo/close-up-hookah-ready-smoke_23-2149173608.jpg?_wi=1", imageAlt: "Various types of hookah charcoal", authorName: "Hookah Haven Team", authorAvatar: "https://img.b2bpic.net/free-vector/gradient-labels-collection-luxurious-hotel-experience_23-2150241639.jpg", date: "April 15, 2024" }, - { id: "4", category: ["Maintenance", "Tips"], title: "Keeping Your Hookah Pristine: Cleaning & Care Tips", excerpt: "Extend the life of your hookah and ensure optimal performance with our expert cleaning advice.", imageSrc: "https://img.b2bpic.net/free-photo/hookah-still-life-composition_23-2149213330.jpg?_wi=1", imageAlt: "Cleaning supplies for a hookah", authorName: "Hookah Haven Team", authorAvatar: "https://img.b2bpic.net/free-vector/gradient-labels-collection-luxurious-hotel-experience_23-2150241639.jpg", date: "March 20, 2024" } + { id: "1", category: ["Tips", "Setup"], title: "Mastering Your Hookah Setup: A Beginner's Guide", excerpt: "Learn the essential steps to setting up your hookah for the best smoke, from base to bowl.", imageSrc: "https://img.b2bpic.net/free-photo/bartender-pouring-cocktail-incredients-lounge-atmosphere_482257-24652.jpg", imageAlt: "Person setting up a hookah", authorName: "Hookah Haven Team", authorAvatar: "https://img.b2bpic.net/free-vector/gradient-labels-collection-luxurious-hotel-experience_23-2150241639.jpg", date: "May 10, 2024" }, + { id: "2", category: ["Flavors", "Review"], title: "Top 5 New Tobacco Flavors You Must Try This Season", excerpt: "Dive into our review of the freshest and most exciting tobacco blends hitting the market.", imageSrc: "https://img.b2bpic.net/free-photo/hookah-with-mixed-fruits-wooden-board-cocktails-side-view_141793-12246.jpg", imageAlt: "Variety of hookah tobacco flavors", authorName: "Hookah Haven Team", authorAvatar: "https://img.b2bpic.net/free-vector/gradient-labels-collection-luxurious-hotel-experience_23-2150241639.jpg", date: "April 28, 2024" }, + { id: "3", category: ["Charcoal", "Guide"], title: "The Ultimate Guide to Hookah Charcoal: Types & Usage", excerpt: "Everything you need to know about choosing and managing your charcoal for a smooth session.", imageSrc: "https://img.b2bpic.net/free-photo/close-up-hookah-ready-smoke_23-2149173608.jpg", imageAlt: "Various types of hookah charcoal", authorName: "Hookah Haven Team", authorAvatar: "https://img.b2bpic.net/free-vector/gradient-labels-collection-luxurious-hotel-experience_23-2150241639.jpg", date: "April 15, 2024" }, + { id: "4", category: ["Maintenance", "Tips"], title: "Keeping Your Hookah Pristine: Cleaning & Care Tips", excerpt: "Extend the life of your hookah and ensure optimal performance with our expert cleaning advice.", imageSrc: "https://img.b2bpic.net/free-photo/hookah-still-life-composition_23-2149213330.jpg", imageAlt: "Cleaning supplies for a hookah", authorName: "Hookah Haven Team", authorAvatar: "https://img.b2bpic.net/free-vector/gradient-labels-collection-luxurious-hotel-experience_23-2150241639.jpg", date: "March 20, 2024" } ]} /> @@ -155,11 +150,13 @@ export default function HomePage() { /> - + ); } \ No newline at end of file From 883103ca8f3fd647657243d904599f550fad91c0 Mon Sep 17 00:00:00 2001 From: bender Date: Sun, 22 Feb 2026 12:13:29 +0000 Subject: [PATCH 6/8] Update src/app/products/page.tsx --- src/app/products/page.tsx | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/app/products/page.tsx b/src/app/products/page.tsx index b888c80..f1d909a 100644 --- a/src/app/products/page.tsx +++ b/src/app/products/page.tsx @@ -4,21 +4,18 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple'; import ProductCardOne from '@/components/sections/product/ProductCardOne'; import FooterBase from '@/components/sections/footer/FooterBase'; -import Link from 'next/link'; export default function ProductsPage() { const navItems = [ { name: "Home", id: "/" }, { name: "Products", id: "/products" }, { name: "About", id: "/about" }, - { name: "Blog", id: "/blog" }, { name: "Contact", id: "/contact" } ]; const footerColumns = [ { - title: "Shop", - items: [ + title: "Shop", items: [ { label: "Hookahs", href: "/products" }, { label: "Tobacco", href: "/products" }, { label: "Charcoal", href: "/products" }, @@ -26,18 +23,16 @@ export default function ProductsPage() { ], }, { - title: "Company", - items: [ + title: "Company", items: [ { label: "About Us", href: "/about" }, { label: "Blog", href: "/blog" }, { label: "Contact", href: "/contact" }, ], }, { - title: "Legal", - items: [ - { label: "Privacy Policy", href: "/" }, - { label: "Terms of Service", href: "/" }, + title: "Legal", items: [ + { label: "Privacy Policy", href: "/privacy" }, + { label: "Terms of Service", href: "/terms" }, ], }, ]; @@ -58,7 +53,7 @@ export default function ProductsPage() { @@ -81,11 +76,13 @@ export default function ProductsPage() { /> - + ); } \ No newline at end of file From 78a2712954922bb7be2da29c35b27bc0da6f6417 Mon Sep 17 00:00:00 2001 From: bender Date: Sun, 22 Feb 2026 12:13:29 +0000 Subject: [PATCH 7/8] Update src/app/shop/[id]/page.tsx --- src/app/shop/[id]/page.tsx | 302 +++++++++---------------------------- 1 file changed, 70 insertions(+), 232 deletions(-) diff --git a/src/app/shop/[id]/page.tsx b/src/app/shop/[id]/page.tsx index a0f6b11..5406ef6 100644 --- a/src/app/shop/[id]/page.tsx +++ b/src/app/shop/[id]/page.tsx @@ -1,238 +1,76 @@ -use client"; +"use client"; -import { Suspense, use, useCallback } from "react"; -import { useRouter } from "next/navigation"; -import ReactLenis from "lenis/react"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple"; import FooterBase from '@/components/sections/footer/FooterBase'; -import ProductDetailCard from "@/components/ecommerce/productDetail/ProductDetailCard"; -import ProductCart from "@/components/ecommerce/cart/ProductCart"; -import { useProductDetail } from "@/hooks/useProductDetail"; -import { useCart } from "@/hooks/useCart"; -import { useCheckout } from "@/hooks/useCheckout"; -interface ProductPageProps { - params: Promise<{ id: string }>; -} - -export default function ProductPage({ params }: ProductPageProps) { - return ( - - - - ); -} - -function ProductPageContent({ params }: ProductPageProps) { - const { id } = use(params); - const router = useRouter(); - - const { - product, - isLoading, - images, - meta, - variants, - quantityVariant, - selectedQuantity, - createCartItem, - } = useProductDetail(id); - - const { - items: cartItems, - isOpen: cartOpen, - setIsOpen: setCartOpen, - addItem, - updateQuantity, - removeItem, - total: cartTotal, - getCheckoutItems, - } = useCart(); - - const { buyNow, checkout, isLoading: isCheckoutLoading } = useCheckout(); - - const handleAddToCart = useCallback(() => { - const item = createCartItem(); - if (item) { - addItem(item); - } - }, [createCartItem, addItem]); - - const handleBuyNow = useCallback(() => { - if (product) { - buyNow(product, selectedQuantity); - } - }, [product, selectedQuantity, buyNow]); - - const handleCheckout = useCallback(async () => { - if (cartItems.length === 0) return; - - const currentUrl = new URL(window.location.href); - currentUrl.searchParams.set("success", "true"); - - await checkout(getCheckoutItems(), { successUrl: currentUrl.toString() }); - }, [cartItems, checkout, getCheckoutItems]); - - if (isLoading) { - return ( - - - -
-

Loading product...

-
- -
-
- ); - } - - if (!product) { - return ( - - - -
-
-

Product not found

- -
-
- -
-
- ); - } - - return ( - - - -
- 0 ? variants : undefined} - quantity={quantityVariant} - ribbon={meta.ribbon} - inventoryStatus={meta.inventoryStatus} - inventoryQuantity={meta.inventoryQuantity} - sku={meta.sku} - buttons={[ - { text: "Add To Cart", onClick: handleAddToCart }, - { text: "Buy Now", onClick: handleBuyNow }, - ]} - /> -
-
- setCartOpen(false)} - items={cartItems} - onQuantityChange={updateQuantity} - onRemove={removeItem} - total={`$${cartTotal}`} - buttons={[ - { - text: isCheckoutLoading ? "Processing..." : "Check Out", onClick: handleCheckout, - }, - ]} - /> -
- -
-
- ); +export default function ProductPage({ params }: { params: { id: string } }) { + const navItems = [ + { name: "Home", id: "/" }, + { name: "Products", id: "/products" }, + { name: "About", id: "/about" }, + { name: "Contact", id: "/contact" } + ]; + + const footerColumns = [ + { + title: "Shop", items: [ + { label: "Hookahs", href: "/products" }, + { label: "Tobacco", href: "/products" }, + { label: "Charcoal", href: "/products" }, + { label: "Accessories", href: "/products" }, + ], + }, + { + title: "Company", items: [ + { label: "About Us", href: "/about" }, + { label: "Blog", href: "/blog" }, + { label: "Contact", href: "/contact" }, + ], + }, + { + title: "Legal", items: [ + { label: "Privacy Policy", href: "/privacy" }, + { label: "Terms of Service", href: "/terms" }, + ], + }, + ]; + + return ( + + + +
+
+

Product Detail Page

+

Product ID: {params.id}

+

Details for this product will be shown here.

+
+
+ + +
+ ); } From 5e9de77a4a877594744c76e7512502a49f1bc4ff Mon Sep 17 00:00:00 2001 From: bender Date: Sun, 22 Feb 2026 12:13:30 +0000 Subject: [PATCH 8/8] Update src/app/shop/page.tsx --- src/app/shop/page.tsx | 228 +++++++++++++++--------------------------- 1 file changed, 81 insertions(+), 147 deletions(-) diff --git a/src/app/shop/page.tsx b/src/app/shop/page.tsx index 599fa4b..9f29ac3 100644 --- a/src/app/shop/page.tsx +++ b/src/app/shop/page.tsx @@ -1,154 +1,88 @@ -use client"; +"use client"; -import { Suspense, useCallback } from "react"; -import ReactLenis from "lenis/react"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple'; +import ProductCardOne from '@/components/sections/product/ProductCardOne'; import FooterBase from '@/components/sections/footer/FooterBase'; -import ProductCatalog from "@/components/ecommerce/productCatalog/ProductCatalog"; -import ProductCart from "@/components/ecommerce/cart/ProductCart"; -import { useProductCatalog } from "@/hooks/useProductCatalog"; -import { useCart } from "@/hooks/useCart"; -import { useCheckout } from "@/hooks/useCheckout"; - -function ShopPageContent() { - const { - products, - isLoading, - search, - setSearch, - filters, - } = useProductCatalog({ basePath: "/shop" }); - - const { - items: cartItems, - isOpen: cartOpen, - setIsOpen: setCartOpen, - updateQuantity, - removeItem, - total: cartTotal, - getCheckoutItems, - } = useCart(); - - const { checkout, isLoading: isCheckoutLoading } = useCheckout(); - - const handleCheckout = useCallback(async () => { - if (cartItems.length === 0) return; - - const currentUrl = new URL(window.location.href); - currentUrl.searchParams.set("success", "true"); - - await checkout(getCheckoutItems(), { successUrl: currentUrl.toString() }); - }, [cartItems, checkout, getCheckoutItems]); - - if (isLoading) { - return ( - - - -
-

Loading products...

-
- -
-
- ); - } - - return ( - - - -
- -
-
- setCartOpen(false)} - items={cartItems} - onQuantityChange={updateQuantity} - onRemove={removeItem} - total={`$${cartTotal}`} - buttons={[ - { - text: isCheckoutLoading ? "Processing..." : "Check Out", onClick: handleCheckout, - }, - ]} - /> -
- -
-
- ); -} export default function ShopPage() { - return ( - - - - ); + const navItems = [ + { name: "Home", id: "/" }, + { name: "Products", id: "/products" }, + { name: "About", id: "/about" }, + { name: "Contact", id: "/contact" } + ]; + + const footerColumns = [ + { + title: "Shop", items: [ + { label: "Hookahs", href: "/products" }, + { label: "Tobacco", href: "/products" }, + { label: "Charcoal", href: "/products" }, + { label: "Accessories", href: "/products" }, + ], + }, + { + title: "Company", items: [ + { label: "About Us", href: "/about" }, + { label: "Blog", href: "/blog" }, + { label: "Contact", href: "/contact" }, + ], + }, + { + title: "Legal", items: [ + { label: "Privacy Policy", href: "/privacy" }, + { label: "Terms of Service", href: "/terms" }, + ], + }, + ]; + + return ( + + + +
+ +
+ + +
+ ); }