Bob AI: Populate src/pages/ProductsPage.tsx (snippet builder, 2 sections)
This commit is contained in:
@@ -1,117 +1,18 @@
|
||||
import React from "react";
|
||||
import { routes } from "@/routes";
|
||||
import NavbarCentered from "@/components/ui/NavbarCentered";
|
||||
import HeroSplit from "@/components/sections/hero/HeroSplit";
|
||||
import ProductMediaCards from "@/components/sections/product/ProductMediaCards";
|
||||
import FeaturesIconCards from "@/components/sections/features/FeaturesIconCards";
|
||||
import ContactCta from "@/components/sections/contact/ContactCta";
|
||||
import FooterSimple from "@/components/sections/footer/FooterSimple";
|
||||
import Button from "@/components/ui/Button";
|
||||
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import AvatarGroup from "@/components/ui/AvatarGroup";
|
||||
import { ArrowUpRight, Loader2 } from "lucide-react";
|
||||
import GridOrCarousel from "@/components/ui/GridOrCarousel";
|
||||
import useProducts from "@/hooks/useProducts";
|
||||
|
||||
export default function ProductsPage() {
|
||||
return (
|
||||
<div className="min-h-screen bg-background text-foreground flex flex-col">
|
||||
<NavbarCentered
|
||||
logo="Lumina"
|
||||
navItems={routes.map((r) => ({ name: r.label, href: r.path }))}
|
||||
ctaButton={{ text: "Get Started", href: "/contact" }}
|
||||
/>
|
||||
|
||||
<main className="flex-grow">
|
||||
<HeroSplit
|
||||
tag="New Arrivals"
|
||||
title="Discover Our Premium Collection"
|
||||
description="Explore our latest range of high-quality products designed to elevate your everyday experience with unmatched style and durability."
|
||||
primaryButton={{ text: "Shop Now", href: "#products" }}
|
||||
secondaryButton={{ text: "Learn More", href: "#features" }}
|
||||
imageSrc="https://images.unsplash.com/photo-1491553895911-0055eca6402d?auto=format&fit=crop&q=80"
|
||||
/>
|
||||
|
||||
<div id="products">
|
||||
<ProductMediaCards
|
||||
tag="Our Catalog"
|
||||
title="Featured Products"
|
||||
description="Handpicked items that our customers love. Find the perfect addition to your lifestyle."
|
||||
products={[
|
||||
{
|
||||
name: "Classic Minimalist Watch",
|
||||
price: "$199.00",
|
||||
imageSrc: "https://images.unsplash.com/photo-1523275335684-37898b6baf30?auto=format&fit=crop&q=80",
|
||||
onClick: () => console.log("Clicked Watch")
|
||||
},
|
||||
{
|
||||
name: "Premium Leather Tote",
|
||||
price: "$249.00",
|
||||
imageSrc: "https://images.unsplash.com/photo-1548036328-c9fa89d128fa?auto=format&fit=crop&q=80",
|
||||
onClick: () => console.log("Clicked Bag")
|
||||
},
|
||||
{
|
||||
name: "Polarized Aviator Sunglasses",
|
||||
price: "$129.00",
|
||||
imageSrc: "https://images.unsplash.com/photo-1511499767150-a48a237f0083?auto=format&fit=crop&q=80",
|
||||
onClick: () => console.log("Clicked Sunglasses")
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="features">
|
||||
<FeaturesIconCards
|
||||
tag="Why Choose Us"
|
||||
title="Crafted with Excellence"
|
||||
description="We don't compromise on quality. Every product is built to last and designed to impress."
|
||||
features={[
|
||||
{
|
||||
icon: "✨",
|
||||
title: "Premium Materials",
|
||||
description: "Sourced from the best suppliers globally to ensure longevity and a luxurious feel."
|
||||
},
|
||||
{
|
||||
icon: "🌱",
|
||||
title: "Sustainable Practices",
|
||||
description: "Eco-friendly packaging and ethical production methods you can feel good about."
|
||||
},
|
||||
{
|
||||
icon: "🛡️",
|
||||
title: "Lifetime Warranty",
|
||||
description: "We stand behind our products forever. If it breaks, we fix it or replace it."
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<ContactCta
|
||||
tag="Ready to Upgrade?"
|
||||
text="Join thousands of satisfied customers and experience the Lumina difference today."
|
||||
primaryButton={{ text: "Browse Full Catalog", href: "/products" }}
|
||||
secondaryButton={{ text: "Contact Sales", href: "/contact" }}
|
||||
/>
|
||||
</main>
|
||||
|
||||
<FooterSimple
|
||||
brand="Lumina"
|
||||
columns={[
|
||||
{
|
||||
title: "Shop",
|
||||
items: [
|
||||
{ label: "All Products", href: "/products" },
|
||||
{ label: "New Arrivals", href: "/products" },
|
||||
{ label: "Best Sellers", href: "/products" }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
{ label: "About Us", href: "/about" },
|
||||
{ label: "Contact", href: "/contact" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
copyright="© 2024 Lumina Inc. All rights reserved."
|
||||
links={[
|
||||
{ label: "Privacy Policy", href: "#" },
|
||||
{ label: "Terms of Service", href: "#" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<>
|
||||
<div data-webild-section="HeroBillboard"><section aria-label="Hero section" className="relative pt-25 pb-20 md:pt-30"><HeroBackgroundSlot /><div className="flex flex-col gap-12 md:gap-15 w-content-width mx-auto"><div className="flex flex-col items-center gap-3 text-center"><AvatarGroup avatarsSrc={["https://img.freepik.com/free-photo/young-beautiful-woman-smiling-looking-camera-standing-office_176420-17482.jpg","https://img.freepik.com/free-photo/handsome-corporate-man-real-estate-agent-assistant-smiling-holding-digital-tablet_176420-18071.jpg","https://img.freepik.com/free-photo/young-creative-woman-holding-notebook-smiling_176420-17483.jpg"]} label="Trusted by creatives in Vacoas-Phoenix" className="mb-1" /><TextAnimation text="Premium Stationery & Office Supplies" variant="fade-blur" gradientText={true} tag="h1" className="md:max-w-8/10 text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Discover our curated selection of professional office essentials and unique artistic tools. Elevate your workspace with MyLab's high-quality products." variant="fade-blur" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Shop Now" href="#products" variant="primary" /><Button text="View Categories" href="#categories" variant="secondary" animationDelay={0.1} /></div></div><ScrollReveal variant="slide-up" delay={0.2} className="w-full p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/flat-lay-desk-concept-with-copy-space_23-2148236814.jpg" className="aspect-4/5 md:aspect-video" /></ScrollReveal></div></section></div>
|
||||
<div data-webild-section="ProductMediaCards"><section aria-label="Products section" className="py-20"><div className="w-content-width mx-auto flex justify-center"><Loader2 className="size-8 animate-spin text-foreground" strokeWidth={1.5} /></div></section></div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user