From 68d494e4e8356ab8348830a1535838d78be39284 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Wed, 17 Jun 2026 12:01:09 +0000 Subject: [PATCH 1/2] Bob AI: Add products page --- src/App.tsx | 2 + src/components/Layout.tsx | 4 +- src/pages/ProductsPage.tsx | 75 ++++++++++++++++++++++++++++++++++++++ src/routes.ts | 1 + 4 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 src/pages/ProductsPage.tsx diff --git a/src/App.tsx b/src/App.tsx index 33d15f9..c9c6d8e 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -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 ( }> } /> + } /> ); diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index 08ea4de..ee9f357 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -27,7 +27,9 @@ export default function Layout() { }, { "name": "Testimonials", "href": "#testimonials" - } + }, + { name: "Products", href: "/products" }, + ]; return ( diff --git a/src/pages/ProductsPage.tsx b/src/pages/ProductsPage.tsx new file mode 100644 index 0000000..1fdaca6 --- /dev/null +++ b/src/pages/ProductsPage.tsx @@ -0,0 +1,75 @@ +import React from "react"; +import { routes } from "@/routes"; +import NavbarCentered from "@/components/ui/NavbarCentered"; +import HeroBillboard from "@/components/sections/hero/HeroBillboard"; +import PricingSimpleCards from "@/components/sections/pricing/PricingSimpleCards"; +import ContactCta from "@/components/sections/contact/ContactCta"; +import FooterMinimal from "@/components/sections/footer/FooterMinimal"; + +export default function ProductsPage() { + return ( +
+ ({ name: r.label, href: r.path }))} + ctaButton={{ text: "Book Appointment", href: "/book" }} + /> + +
+ + + + + +
+ + +
+ ); +} \ No newline at end of file diff --git a/src/routes.ts b/src/routes.ts index 362ecb5..93d7fae 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -6,4 +6,5 @@ export interface Route { export const routes: Route[] = [ { path: '/', label: 'Home', pageFile: 'HomePage' }, + { path: '/products', label: 'Products', pageFile: 'ProductsPage' }, ]; From 72b954864f021d77065e96775d7ddf1157a8182a Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Wed, 17 Jun 2026 12:01:51 +0000 Subject: [PATCH 2/2] Bob AI: Populate src/pages/ProductsPage.tsx (snippet builder, 2 sections) --- src/pages/ProductsPage.tsx | 83 ++++++-------------------------------- 1 file changed, 12 insertions(+), 71 deletions(-) diff --git a/src/pages/ProductsPage.tsx b/src/pages/ProductsPage.tsx index 1fdaca6..788d9c1 100644 --- a/src/pages/ProductsPage.tsx +++ b/src/pages/ProductsPage.tsx @@ -1,75 +1,16 @@ -import React from "react"; -import { routes } from "@/routes"; -import NavbarCentered from "@/components/ui/NavbarCentered"; -import HeroBillboard from "@/components/sections/hero/HeroBillboard"; -import PricingSimpleCards from "@/components/sections/pricing/PricingSimpleCards"; -import ContactCta from "@/components/sections/contact/ContactCta"; -import FooterMinimal from "@/components/sections/footer/FooterMinimal"; +import { ArrowUpRight, Loader2 } from "lucide-react"; +import Button from "@/components/ui/Button"; +import TextAnimation from "@/components/ui/TextAnimation"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; +import GridOrCarousel from "@/components/ui/GridOrCarousel"; +import ScrollReveal from "@/components/ui/ScrollReveal"; +import useProducts from "@/hooks/useProducts"; export default function ProductsPage() { return ( -
- ({ name: r.label, href: r.path }))} - ctaButton={{ text: "Book Appointment", href: "/book" }} - /> - -
- - - - - -
- - -
+ <> +
+

Book Your Cut

+ ); -} \ No newline at end of file +}