From 1fa9e23efd40cddf7dc396f9ff48a752443c8174 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Sun, 21 Jun 2026 13:51:30 +0000 Subject: [PATCH 1/2] Bob AI: Add menu page --- src/App.tsx | 2 + src/components/Layout.tsx | 4 +- src/pages/MenuPage.tsx | 98 +++++++++++++++++++++++++++++++++++++++ src/routes.ts | 1 + 4 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 src/pages/MenuPage.tsx diff --git a/src/App.tsx b/src/App.tsx index 33d15f9..f22bf6b 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 MenuPage from "@/pages/MenuPage"; export default function App() { return ( }> } /> + } /> ); diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index 551757a..7787e21 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -26,7 +26,9 @@ export default function Layout() { { "name": "Contact", "href": "#contact" - } + }, + { name: "Menu", href: "/menu" }, + ]; return ( diff --git a/src/pages/MenuPage.tsx b/src/pages/MenuPage.tsx new file mode 100644 index 0000000..f486e0b --- /dev/null +++ b/src/pages/MenuPage.tsx @@ -0,0 +1,98 @@ +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 FeaturesTaggedCards from "@/components/sections/features/FeaturesTaggedCards"; +import ContactCta from "@/components/sections/contact/ContactCta"; +import FooterMinimal from "@/components/sections/footer/FooterMinimal"; + +export default function MenuPage() { + return ( +
+ ({ name: r.label, href: r.path }))} + ctaButton={{ text: "Reservations", href: "/reservations" }} + /> + + + + {} + }, + { + name: "Kibbeh Intention", + price: "$18", + imageSrc: "https://images.unsplash.com/photo-1604908176997-125f25cc6f3d?auto=format&fit=crop&q=80", + onClick: () => {} + }, + { + name: "Mixed Grill", + price: "$35", + imageSrc: "https://images.unsplash.com/photo-1555939594-58d7cb561ad1?auto=format&fit=crop&q=80", + onClick: () => {} + } + ]} + /> + + + + + + +
+ ); +} \ No newline at end of file diff --git a/src/routes.ts b/src/routes.ts index 362ecb5..9687857 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: '/menu', label: 'Menu', pageFile: 'MenuPage' }, ]; -- 2.49.1 From 3d4e368514d01bbda75c551d4fd7ecce81f6fc8e Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Sun, 21 Jun 2026 13:52:39 +0000 Subject: [PATCH 2/2] Bob AI: Populate src/pages/MenuPage.tsx (snippet builder, 6 sections) --- src/pages/MenuPage.tsx | 119 +++++++++-------------------------------- 1 file changed, 25 insertions(+), 94 deletions(-) diff --git a/src/pages/MenuPage.tsx b/src/pages/MenuPage.tsx index f486e0b..9c73c63 100644 --- a/src/pages/MenuPage.tsx +++ b/src/pages/MenuPage.tsx @@ -1,98 +1,29 @@ -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 FeaturesTaggedCards from "@/components/sections/features/FeaturesTaggedCards"; -import ContactCta from "@/components/sections/contact/ContactCta"; -import FooterMinimal from "@/components/sections/footer/FooterMinimal"; +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 AvatarGroup from "@/components/ui/AvatarGroup"; +import ScrollReveal from "@/components/ui/ScrollReveal"; +import { cls } from "@/lib/utils"; +import { ArrowUpRight, Loader2 } from "lucide-react"; +import GridOrCarousel from "@/components/ui/GridOrCarousel"; +import useProducts from "@/hooks/useProducts"; export default function MenuPage() { return ( -
- ({ name: r.label, href: r.path }))} - ctaButton={{ text: "Reservations", href: "/reservations" }} - /> - - - - {} - }, - { - name: "Kibbeh Intention", - price: "$18", - imageSrc: "https://images.unsplash.com/photo-1604908176997-125f25cc6f3d?auto=format&fit=crop&q=80", - onClick: () => {} - }, - { - name: "Mixed Grill", - price: "$35", - imageSrc: "https://images.unsplash.com/photo-1555939594-58d7cb561ad1?auto=format&fit=crop&q=80", - onClick: () => {} - } - ]} - /> - - - - - - -
+ <> +
+

Culinary Excellence

+
+
+
+
+
+
+
+
+
+

Dine With Us

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