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() {
({ name: item.name, id: item.id }))}
+ navItems={navItems}
/>
@@ -79,11 +74,13 @@ export default function AboutPage() {
/>
-
+
);
}
\ No newline at end of file
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 ? (
-
- ) : (
-
-
-
- )}
+ return (
+
+
+
+
-
-
-
- );
-}
+
+
+
+
+
+
+ );
+}
\ No newline at end of file
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() {
({ name: item.name, id: item.id }))}
+ navItems={navItems}
/>
@@ -82,12 +78,27 @@ export default function ContactPage() {
]}
/>
+
+
+
+
-
+
);
}
\ No newline at end of file
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,
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() {
({ name: item.name, id: item.id }))}
+ navItems={navItems}
/>
@@ -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
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() {
({ name: item.name, id: item.id }))}
+ navItems={navItems}
/>
@@ -81,11 +76,13 @@ export default function ProductsPage() {
/>
-
+
);
}
\ No newline at end of file
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 (
-
-
-
- setCartOpen(true) }}
- />
-
-
- Loading product...
-
-
-
-
- );
- }
-
- if (!product) {
- return (
-
-
-
- setCartOpen(true) }}
- />
-
-
-
-
Product not found
-
-
-
-
-
-
- );
- }
-
- return (
-
-
-
- setCartOpen(true) }}
- />
-
-
-
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.
+
+
+
+
+
+ );
}
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 (
-
-
-
- setCartOpen(true) }}
- />
-
-
- Loading products...
-
-
-
-
- );
- }
-
- return (
-
-
-
- setCartOpen(true) }}
- />
-
-
-
-
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 (
+
+
+
+
+
+
+
+
+
+ );
}