Bob AI: Add menu page
This commit is contained in:
@@ -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 (
|
||||
<Routes>
|
||||
<Route element={<Layout />}>
|
||||
<Route path="/" element={<HomePage />} />
|
||||
<Route path="/menu" element={<MenuPage />} />
|
||||
</Route>
|
||||
</Routes>
|
||||
);
|
||||
|
||||
@@ -26,7 +26,9 @@ export default function Layout() {
|
||||
{
|
||||
"name": "Contact",
|
||||
"href": "#contact"
|
||||
}
|
||||
},
|
||||
{ name: "Menu", href: "/menu" },
|
||||
|
||||
];
|
||||
|
||||
return (
|
||||
|
||||
98
src/pages/MenuPage.tsx
Normal file
98
src/pages/MenuPage.tsx
Normal file
@@ -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 (
|
||||
<div className="min-h-screen bg-background text-foreground">
|
||||
<NavbarCentered
|
||||
logo="Al Shams"
|
||||
navItems={routes.map((r) => ({ name: r.label, href: r.path }))}
|
||||
ctaButton={{ text: "Reservations", href: "/reservations" }}
|
||||
/>
|
||||
|
||||
<HeroSplit
|
||||
tag="Since 1975"
|
||||
title="A Legacy of Culinary Excellence"
|
||||
description="Explore our extensive menu featuring authentic Lebanese cuisine, fresh seafood, and international favorites, crafted with passion and tradition."
|
||||
primaryButton={{ text: "View Full Menu", href: "#menu" }}
|
||||
secondaryButton={{ text: "Call Now", href: "tel:+123456789" }}
|
||||
imageSrc="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?auto=format&fit=crop&q=80"
|
||||
/>
|
||||
|
||||
<ProductMediaCards
|
||||
tag="Highlights"
|
||||
title="Signature Dishes"
|
||||
description="Experience the flavors that have made Al Shams a dining destination for decades."
|
||||
products={[
|
||||
{
|
||||
name: "Soufflé Potatoes Chips",
|
||||
price: "$12",
|
||||
imageSrc: "https://images.unsplash.com/photo-1585109649139-366815a0d713?auto=format&fit=crop&q=80",
|
||||
onClick: () => {}
|
||||
},
|
||||
{
|
||||
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: () => {}
|
||||
}
|
||||
]}
|
||||
/>
|
||||
|
||||
<FeaturesTaggedCards
|
||||
tag="Categories"
|
||||
title="Explore the Menu"
|
||||
description="From traditional mezze to decadent desserts, discover our diverse offerings."
|
||||
items={[
|
||||
{
|
||||
tag: "Starters",
|
||||
title: "Appetizers & Salads",
|
||||
description: "Hot and cold mezze, fresh tabbouleh, fattoush, and our famous hummus.",
|
||||
primaryButton: { text: "View Category", href: "#" }
|
||||
},
|
||||
{
|
||||
tag: "Mains",
|
||||
title: "Raw Meat & Hot Plates",
|
||||
description: "Premium cuts, traditional raw dishes, and hearty hot plates prepared to perfection.",
|
||||
primaryButton: { text: "View Category", href: "#" }
|
||||
},
|
||||
{
|
||||
tag: "Specialties",
|
||||
title: "Seafood & Italian",
|
||||
description: "Fresh daily catch, classic Italian pastas, and rich risottos.",
|
||||
primaryButton: { text: "View Category", href: "#" }
|
||||
},
|
||||
{
|
||||
tag: "Sweets",
|
||||
title: "Desserts",
|
||||
description: "End your meal with our selection of traditional and international sweets.",
|
||||
primaryButton: { text: "View Category", href: "#" }
|
||||
}
|
||||
]}
|
||||
/>
|
||||
|
||||
<ContactCta
|
||||
tag="Visit Us"
|
||||
text="Ready to experience Al Shams?"
|
||||
primaryButton={{ text: "Make a Reservation", href: "/reservations" }}
|
||||
secondaryButton={{ text: "Get Directions", href: "/directions" }}
|
||||
/>
|
||||
|
||||
<FooterMinimal
|
||||
brand="Al Shams Restaurant"
|
||||
copyright="© 2024 Al Shams. All rights reserved."
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -6,4 +6,5 @@ export interface Route {
|
||||
|
||||
export const routes: Route[] = [
|
||||
{ path: '/', label: 'Home', pageFile: 'HomePage' },
|
||||
{ path: '/menu', label: 'Menu', pageFile: 'MenuPage' },
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user