diff --git a/src/app/shop/[id]/page.tsx b/src/app/shop/[id]/page.tsx index 23bc474..e08f869 100644 --- a/src/app/shop/[id]/page.tsx +++ b/src/app/shop/[id]/page.tsx @@ -1,180 +1,39 @@ "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 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 }>; + params: { 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]); - const themeProviderProps = { - defaultButtonVariant: "expand-hover" as const, - defaultTextAnimation: "background-highlight" as const, - borderRadius: "pill", - contentWidth: "compact", - sizing: "largeSmallSizeLargeTitles", - background: "circleGradient", - cardStyle: "gradient-radial", - primaryButtonStyle: "double-inset", - secondaryButtonStyle: "layered", - headingFontWeight: "light" + defaultButtonVariant: "expand-hover", defaultTextAnimation: "background-highlight", borderRadius: "pill", contentWidth: "compact", sizing: "largeSmallSizeLargeTitles", background: "circleGradient", cardStyle: "gradient-radial", primaryButtonStyle: "double-inset", secondaryButtonStyle: "layered", headingFontWeight: "light" }; const navbarProps = { brandName: "No song", navItems: [ { name: "Home", id: "/" }, - { name: "Shop", id: "/shop" } - ], - button: { text: "Cart", onClick: () => setCartOpen(true) } + { name: "Products", id: "/#products-section" }, + { name: "About", id: "/#about-section" }, + { name: "Contact", id: "/#contact-section" }, + ] }; - if (isLoading) { - return ( - - - - - - - Loading product... - - - - ); - } - - if (!product) { - return ( - - - - - - - - Product not found - router.push("/shop")} - className="primary-button px-6 py-2 rounded-theme text-primary-cta-text" - > - Back to Shop - - - - - - ); - } - return ( - - - + + + + + + Product Details + + Details for product ID: {params.id} will be displayed here soon. + - - 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, - }, - ]} - /> - - + ); -} \ No newline at end of file +}
Loading product...
Product not found
+ Details for product ID: {params.id} will be displayed here soon. +