"use client"; import ReactLenis from "lenis/react"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; import ProductCatalog from "@/components/ecommerce/productCatalog/ProductCatalog"; import { useProductCatalog } from "@/hooks/useProductCatalog"; import { useCart } from "@/hooks/useCart"; import { useCheckout } from "@/hooks/useCheckout"; import { useCallback } from "react"; import ProductCart from "@/components/ecommerce/cart/ProductCart"; import FooterCard from '@/components/sections/footer/FooterCard'; import { Instagram, Facebook, Twitter } from 'lucide-react'; export default function ShopPage() { 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, }, ]} />
); }