diff --git a/src/app/cart/page.tsx b/src/app/cart/page.tsx new file mode 100644 index 0000000..ede2d06 --- /dev/null +++ b/src/app/cart/page.tsx @@ -0,0 +1,38 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import ReactLenis from "lenis/react"; +import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline'; +import ProductCart from '@/components/ecommerce/cart/ProductCart'; +import FooterBase from '@/components/sections/footer/FooterBase'; +import { useState } from "react"; + +export default function CartPage() { + const [items, setItems] = useState([ + { id: "p1", name: "Premium Gadget", price: "$129", quantity: 1, imageSrc: "http://img.b2bpic.net/free-photo/green-leaves-stacked-book-against-white-backdrop_23-2147924495.jpg" } + ]); + + return ( + + + + + {}} + items={items} + total="$129" + buttons={[{ text: "Checkout Now", href: "/checkout" }]} + /> + + + + + ); +} \ No newline at end of file diff --git a/src/app/checkout/page.tsx b/src/app/checkout/page.tsx new file mode 100644 index 0000000..7a6120a --- /dev/null +++ b/src/app/checkout/page.tsx @@ -0,0 +1,40 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import ReactLenis from "lenis/react"; +import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline'; +import FooterBase from '@/components/sections/footer/FooterBase'; + +export default function CheckoutPage() { + return ( + + + + + Checkout + + Order Summary + + Premium Gadget (x1) + $129 + + + Total + $129 + + + Confirm & Pay + + + + + + + ); +} \ No newline at end of file diff --git a/src/app/page.tsx b/src/app/page.tsx index e199cff..d7cc833 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -2,15 +2,17 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import ReactLenis from "lenis/react"; -import ContactText from '@/components/sections/contact/ContactText'; -import FooterBase from '@/components/sections/footer/FooterBase'; -import HeroSplitDualMedia from '@/components/sections/hero/HeroSplitDualMedia'; -import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline'; -import PricingCardOne from '@/components/sections/pricing/PricingCardOne'; -import ProductCatalog from '@/components/ecommerce/productCatalog/ProductCatalog'; -import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen'; +import { Suspense, lazy } from "react"; import { Sparkles } from "lucide-react"; +const ContactText = lazy(() => import('@/components/sections/contact/ContactText')); +const FooterBase = lazy(() => import('@/components/sections/footer/FooterBase')); +const HeroSplitDualMedia = lazy(() => import('@/components/sections/hero/HeroSplitDualMedia')); +const NavbarLayoutFloatingInline = lazy(() => import('@/components/navbar/NavbarLayoutFloatingInline')); +const PricingCardOne = lazy(() => import('@/components/sections/pricing/PricingCardOne')); +const ProductCatalog = lazy(() => import('@/components/ecommerce/productCatalog/ProductCatalog')); +const TestimonialCardFifteen = lazy(() => import('@/components/sections/testimonial/TestimonialCardFifteen')); + export default function LandingPage() { return ( - - - + }> + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + + );