Bob AI: Add products page

This commit is contained in:
kudinDmitriyUp
2026-06-21 17:55:18 +00:00
parent 20b76e613a
commit 8feae5d918
4 changed files with 123 additions and 1 deletions

View File

@@ -2,11 +2,13 @@ import { Routes, Route } from 'react-router-dom';
import Layout from './components/Layout';
import HomePage from './pages/HomePage';
import ProductsPage from "@/pages/ProductsPage";
export default function App() {
return (
<Routes>
<Route element={<Layout />}>
<Route path="/" element={<HomePage />} />
<Route path="/products" element={<ProductsPage />} />
</Route>
</Routes>
);

View File

@@ -34,7 +34,9 @@ export default function Layout() {
{
"name": "Testimonials",
"href": "#testimonials"
}
},
{ name: "Products", href: "/products" },
];
return (

117
src/pages/ProductsPage.tsx Normal file
View File

@@ -0,0 +1,117 @@
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";
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>
);
}

View File

@@ -6,4 +6,5 @@ export interface Route {
export const routes: Route[] = [
{ path: '/', label: 'Home', pageFile: 'HomePage' },
{ path: '/products', label: 'Products', pageFile: 'ProductsPage' },
];