diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx
index 5cc5542..d728847 100644
--- a/src/app/about/page.tsx
+++ b/src/app/about/page.tsx
@@ -30,11 +30,11 @@ export default function AboutPage() {
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
- { name: "Contact", id: "/contact" }
+ { name: "Contact", id: "/contact" },
+ { name: "Shop", id: "/shop" }
]}
button={{
- text: "Reserve Now",
- href: "/contact"
+ text: "Reserve Now", href: "/contact"
}}
/>
@@ -78,14 +78,10 @@ export default function AboutPage() {
tagAnimation="slide-up"
metrics={[
{
- id: "1",
- value: "45K+",
- description: "Guests have experienced authentic Lebanese hospitality at our tables"
+ id: "1", value: "45K+", description: "Guests have experienced authentic Lebanese hospitality at our tables"
},
{
- id: "2",
- value: "120+",
- description: "Traditional family recipes preserved and shared with our community"
+ id: "2", value: "120+", description: "Traditional family recipes preserved and shared with our community"
}
]}
metricsAnimation="opacity"
@@ -99,12 +95,10 @@ export default function AboutPage() {
diff --git a/src/app/blog/page.tsx b/src/app/blog/page.tsx
index f31b35a..18a572f 100644
--- a/src/app/blog/page.tsx
+++ b/src/app/blog/page.tsx
@@ -29,11 +29,12 @@ export default function BlogPage() {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
- { name: "Menu", id: "product" },
- { name: "About", id: "about" },
- { name: "Contact", id: "contact" }
+ { name: "Menu", id: "/menu" },
+ { name: "About", id: "/about" },
+ { name: "Contact", id: "/contact" },
+ { name: "Shop", id: "/shop" }
]}
- button={{ text: "Reserve Now", href: "contact" }}
+ button={{ text: "Reserve Now", href: "/contact" }}
/>
diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx
index ac75ac0..e2e7670 100644
--- a/src/app/contact/page.tsx
+++ b/src/app/contact/page.tsx
@@ -30,11 +30,11 @@ export default function ContactPage() {
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
- { name: "Contact", id: "/contact" }
+ { name: "Contact", id: "/contact" },
+ { name: "Shop", id: "/shop" }
]}
button={{
- text: "Reserve Now",
- href: "/contact"
+ text: "Reserve Now", href: "/contact"
}}
/>
@@ -81,22 +81,10 @@ export default function ContactPage() {
tagAnimation="slide-up"
testimonials={[
{
- id: "1",
- title: "Perfect Anniversary Dinner",
- quote: "We celebrated our anniversary here and the staff made it extra special. The lamb shawarma was perfectly cooked, and the service was impeccable.",
- name: "Emily Rodriguez",
- role: "Anniversary Guest",
- imageSrc: "https://img.b2bpic.net/free-photo/smiling-woman-sitting-cafe-with-closed-laptop_1262-1151.jpg",
- imageAlt: "Emily Rodriguez, anniversary dinner guest"
+ id: "1", title: "Perfect Anniversary Dinner", quote: "We celebrated our anniversary here and the staff made it extra special. The lamb shawarma was perfectly cooked, and the service was impeccable.", name: "Emily Rodriguez", role: "Anniversary Guest", imageSrc: "https://img.b2bpic.net/free-photo/smiling-woman-sitting-cafe-with-closed-laptop_1262-1151.jpg", imageAlt: "Emily Rodriguez, anniversary dinner guest"
},
{
- id: "2",
- title: "A Hidden Gem in the City",
- quote: "Finally found authentic Lebanese food that matches my childhood memories. The ambiance, service, and food are all top-notch. Highly recommended!",
- name: "David Kim",
- role: "Food Blogger",
- imageSrc: "https://img.b2bpic.net/free-photo/young-female-with-pinkish-hair-posing_344912-846.jpg",
- imageAlt: "David Kim, food blogger and guest"
+ id: "2", title: "A Hidden Gem in the City", quote: "Finally found authentic Lebanese food that matches my childhood memories. The ambiance, service, and food are all top-notch. Highly recommended!", name: "David Kim", role: "Food Blogger", imageSrc: "https://img.b2bpic.net/free-photo/young-female-with-pinkish-hair-posing_344912-846.jpg", imageAlt: "David Kim, food blogger and guest"
}
]}
ariaLabel="Recent customer testimonials and dining experiences"
@@ -108,12 +96,10 @@ export default function ContactPage() {
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 5cdf98b..99c8e59 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -3,36 +3,23 @@ import { Mulish } from "next/font/google";
import "./globals.css";
const mulish = Mulish({
- variable: "--font-mulish",
- subsets: ["latin"],
+ variable: "--font-mulish", subsets: ["latin"],
});
export const metadata: Metadata = {
- title: "Beirut Kitchen - Authentic Lebanese Restaurant & Cuisine",
- description: "Experience authentic Lebanese cuisine at Beirut Kitchen. Traditional recipes, premium ingredients, and warm hospitality since 2015. Reserve your table today.",
- keywords: ["Lebanese restaurant", "authentic cuisine", "Lebanese food", "hummus", "mezze", "shawarma", "Mediterranean dining"],
+ title: "Beirut Kitchen - Authentic Lebanese Restaurant & Cuisine", description: "Experience authentic Lebanese cuisine at Beirut Kitchen. Traditional recipes, premium ingredients, and warm hospitality since 2015. Reserve your table today.", keywords: ["Lebanese restaurant", "authentic cuisine", "Lebanese food", "hummus", "mezze", "shawarma", "Mediterranean dining"],
robots: {
index: true,
follow: true,
},
openGraph: {
- title: "Beirut Kitchen - Authentic Lebanese Restaurant",
- description: "Discover traditional Lebanese cuisine prepared with family recipes and the finest ingredients.",
- url: "https://beirutkitchen.example.com",
- siteName: "Beirut Kitchen",
- type: "website",
- images: [
+ title: "Beirut Kitchen - Authentic Lebanese Restaurant", description: "Discover traditional Lebanese cuisine prepared with family recipes and the finest ingredients.", url: "https://beirutkitchen.example.com", siteName: "Beirut Kitchen", type: "website", images: [
{
- url: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg",
- alt: "Authentic Lebanese mezze platter",
- },
+ url: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg", alt: "Authentic Lebanese mezze platter"},
],
},
twitter: {
- card: "summary_large_image",
- title: "Beirut Kitchen - Authentic Lebanese Restaurant",
- description: "Experience traditional Lebanese cuisine with warm hospitality.",
- images: ["https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg"],
+ card: "summary_large_image", title: "Beirut Kitchen - Authentic Lebanese Restaurant", description: "Experience traditional Lebanese cuisine with warm hospitality.", images: ["https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg"],
},
};
diff --git a/src/app/menu/page.tsx b/src/app/menu/page.tsx
index e139e87..831841c 100644
--- a/src/app/menu/page.tsx
+++ b/src/app/menu/page.tsx
@@ -30,11 +30,11 @@ export default function MenuPage() {
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
- { name: "Contact", id: "/contact" }
+ { name: "Contact", id: "/contact" },
+ { name: "Shop", id: "/shop" }
]}
button={{
- text: "Reserve Now",
- href: "/contact"
+ text: "Reserve Now", href: "/contact"
}}
/>
@@ -53,46 +53,22 @@ export default function MenuPage() {
useInvertedBackground={false}
products={[
{
- id: "1",
- name: "Classic Hummus",
- price: "$8.99",
- imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg",
- imageAlt: "Traditional Lebanese hummus with olive oil and tahini"
+ id: "1", name: "Classic Hummus", price: "$8.99", imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg", imageAlt: "Traditional Lebanese hummus with olive oil and tahini"
},
{
- id: "2",
- name: "Fattoush Salad",
- price: "$14.99",
- imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg",
- imageAlt: "Fresh fattoush with vegetables and sumac vinaigrette"
+ id: "2", name: "Fattoush Salad", price: "$14.99", imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg", imageAlt: "Fresh fattoush with vegetables and sumac vinaigrette"
},
{
- id: "3",
- name: "Kibbeh Plate",
- price: "$16.99",
- imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg",
- imageAlt: "Golden kibbeh with traditional meat and bulgur filling"
+ id: "3", name: "Kibbeh Plate", price: "$16.99", imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg", imageAlt: "Golden kibbeh with traditional meat and bulgur filling"
},
{
- id: "4",
- name: "Lamb Shawarma",
- price: "$22.99",
- imageSrc: "https://img.b2bpic.net/free-photo/top-view-delicious-hummus-plate-still-life_23-2149595639.jpg",
- imageAlt: "Tender lamb shawarma with tahini and herbs"
+ id: "4", name: "Lamb Shawarma", price: "$22.99", imageSrc: "https://img.b2bpic.net/free-photo/top-view-delicious-hummus-plate-still-life_23-2149595639.jpg", imageAlt: "Tender lamb shawarma with tahini and herbs"
},
{
- id: "5",
- name: "Baklava Selection",
- price: "$9.99",
- imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg",
- imageAlt: "Assorted baklava pastries with honey and nuts"
+ id: "5", name: "Baklava Selection", price: "$9.99", imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg", imageAlt: "Assorted baklava pastries with honey and nuts"
},
{
- id: "6",
- name: "Lebanese Coffee",
- price: "$4.99",
- imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg",
- imageAlt: "Traditional Lebanese coffee service"
+ id: "6", name: "Lebanese Coffee", price: "$4.99", imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg", imageAlt: "Traditional Lebanese coffee service"
}
]}
ariaLabel="Complete Lebanese restaurant menu with prices"
@@ -112,16 +88,12 @@ export default function MenuPage() {
tagAnimation="slide-up"
negativeCard={{
items: [
- "Generic Mediterranean blends",
- "Processed convenience ingredients",
- "Mass-produced bread and pita"
+ "Generic Mediterranean blends", "Processed convenience ingredients", "Mass-produced bread and pita"
]
}}
positiveCard={{
items: [
- "Authentic Lebanese spice blends imported directly",
- "Fresh vegetables and herbs delivered daily",
- "House-made pita bread baked fresh throughout the day"
+ "Authentic Lebanese spice blends imported directly", "Fresh vegetables and herbs delivered daily", "House-made pita bread baked fresh throughout the day"
]
}}
ariaLabel="Quality comparison of our authentic Lebanese ingredients"
@@ -142,18 +114,10 @@ export default function MenuPage() {
useInvertedBackground={true}
products={[
{
- id: "7",
- name: "Khalil Family Mezze Platter",
- price: "$34.99",
- imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg",
- imageAlt: "Family-style mezze platter with multiple Lebanese appetizers"
+ id: "7", name: "Khalil Family Mezze Platter", price: "$34.99", imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg", imageAlt: "Family-style mezze platter with multiple Lebanese appetizers"
},
{
- id: "8",
- name: "Cedar Mountain Lamb",
- price: "$28.99",
- imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg",
- imageAlt: "Slow-roasted lamb with Lebanese mountain herbs"
+ id: "8", name: "Cedar Mountain Lamb", price: "$28.99", imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg", imageAlt: "Slow-roasted lamb with Lebanese mountain herbs"
}
]}
ariaLabel="Chef's signature Lebanese specialties and family recipes"
@@ -165,12 +129,10 @@ export default function MenuPage() {
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 480789e..6469a12 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -35,11 +35,11 @@ export default function HomePage() {
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
- { name: "Contact", id: "/contact" }
+ { name: "Contact", id: "/contact" },
+ { name: "Shop", id: "/shop" }
]}
button={{
- text: "Reserve Now",
- href: "/contact"
+ text: "Reserve Now", href: "/contact"
}}
/>
@@ -94,25 +94,13 @@ export default function HomePage() {
useInvertedBackground={false}
products={[
{
- id: "1",
- name: "Fattoush Salad",
- price: "$14.99",
- imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg",
- imageAlt: "Crisp fattoush salad with fresh vegetables and sumac vinaigrette"
+ id: "1", name: "Fattoush Salad", price: "$14.99", imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg", imageAlt: "Crisp fattoush salad with fresh vegetables and sumac vinaigrette"
},
{
- id: "2",
- name: "Kibbeh",
- price: "$12.99",
- imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg",
- imageAlt: "Golden fried kibbeh with traditional meat and bulgur filling"
+ id: "2", name: "Kibbeh", price: "$12.99", imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg", imageAlt: "Golden fried kibbeh with traditional meat and bulgur filling"
},
{
- id: "3",
- name: "Grilled Lamb Shawarma",
- price: "$18.99",
- imageSrc: "https://img.b2bpic.net/free-photo/top-view-delicious-hummus-plate-still-life_23-2149595639.jpg",
- imageAlt: "Tender grilled lamb shawarma with tahini sauce and fresh herbs"
+ id: "3", name: "Grilled Lamb Shawarma", price: "$18.99", imageSrc: "https://img.b2bpic.net/free-photo/top-view-delicious-hummus-plate-still-life_23-2149595639.jpg", imageAlt: "Tender grilled lamb shawarma with tahini sauce and fresh herbs"
}
]}
ariaLabel="Featured Lebanese dishes and menu items"
@@ -127,14 +115,10 @@ export default function HomePage() {
tagAnimation="slide-up"
metrics={[
{
- id: "1",
- value: "15K+",
- description: "Happy guests enjoy our authentic Lebanese cuisine every year"
+ id: "1", value: "15K+", description: "Happy guests enjoy our authentic Lebanese cuisine every year"
},
{
- id: "2",
- value: "100%",
- description: "Ingredients sourced from trusted Lebanese and Mediterranean suppliers"
+ id: "2", value: "100%", description: "Ingredients sourced from trusted Lebanese and Mediterranean suppliers"
}
]}
metricsAnimation="opacity"
@@ -155,22 +139,10 @@ export default function HomePage() {
tagAnimation="slide-up"
testimonials={[
{
- id: "1",
- title: "An Unforgettable Dining Experience",
- quote: "The hummus here is absolutely divine. It tastes exactly like my grandmother made it in Beirut. Every visit feels like coming home.",
- name: "Sarah Mitchell",
- role: "Regular Guest",
- imageSrc: "https://img.b2bpic.net/free-photo/smiling-middle-aged-woman-showing-ok-sign_1262-17571.jpg",
- imageAlt: "Sarah Mitchell, satisfied restaurant guest"
+ id: "1", title: "An Unforgettable Dining Experience", quote: "The hummus here is absolutely divine. It tastes exactly like my grandmother made it in Beirut. Every visit feels like coming home.", name: "Sarah Mitchell", role: "Regular Guest", imageSrc: "https://img.b2bpic.net/free-photo/smiling-middle-aged-woman-showing-ok-sign_1262-17571.jpg", imageAlt: "Sarah Mitchell, satisfied restaurant guest"
},
{
- id: "2",
- title: "Authentic Flavors Worth Celebrating",
- quote: "The freshness of ingredients and attention to detail in every dish is remarkable. This is true Lebanese cuisine, prepared with love.",
- name: "Michael Chen",
- role: "Restaurant Critic",
- imageSrc: "https://img.b2bpic.net/free-photo/smiling-middle-aged-attractive-woman-showing-thumb-up-outdoors_1262-12526.jpg",
- imageAlt: "Michael Chen, professional restaurant critic"
+ id: "2", title: "Authentic Flavors Worth Celebrating", quote: "The freshness of ingredients and attention to detail in every dish is remarkable. This is true Lebanese cuisine, prepared with love.", name: "Michael Chen", role: "Restaurant Critic", imageSrc: "https://img.b2bpic.net/free-photo/smiling-middle-aged-attractive-woman-showing-thumb-up-outdoors_1262-12526.jpg", imageAlt: "Michael Chen, professional restaurant critic"
}
]}
ariaLabel="Customer testimonials and reviews"
@@ -190,18 +162,12 @@ export default function HomePage() {
tagAnimation="slide-up"
negativeCard={{
items: [
- "Mass-produced ingredients",
- "Inconsistent flavors",
- "Rushed preparation",
- "Impersonal service"
+ "Mass-produced ingredients", "Inconsistent flavors", "Rushed preparation", "Impersonal service"
]
}}
positiveCard={{
items: [
- "Premium sourced ingredients from trusted suppliers",
- "Consistent authentic taste in every dish",
- "Slow-cooked with traditional methods",
- "Warm, personalized hospitality for every guest"
+ "Premium sourced ingredients from trusted suppliers", "Consistent authentic taste in every dish", "Slow-cooked with traditional methods", "Warm, personalized hospitality for every guest"
]
}}
ariaLabel="Why choose our Lebanese restaurant for authentic dining"
@@ -228,12 +194,10 @@ export default function HomePage() {
diff --git a/src/app/shop/[id]/page.tsx b/src/app/shop/[id]/page.tsx
index 8606d70..fe0c1fd 100644
--- a/src/app/shop/[id]/page.tsx
+++ b/src/app/shop/[id]/page.tsx
@@ -1,6 +1,6 @@
"use client";
-import { use, useCallback } from "react";
+import { use, useCallback, useState } from "react";
import { useRouter } from "next/navigation";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
@@ -19,6 +19,7 @@ interface ProductPageProps {
export default function ProductPage({ params }: ProductPageProps) {
const { id } = use(params);
const router = useRouter();
+ const [cartOpen, setCartOpen] = useState(false);
const {
product,
@@ -33,8 +34,6 @@ export default function ProductPage({ params }: ProductPageProps) {
const {
items: cartItems,
- isOpen: cartOpen,
- setIsOpen: setCartOpen,
addItem,
updateQuantity,
removeItem,
@@ -86,9 +85,9 @@ export default function ProductPage({ params }: ProductPageProps) {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
- { name: "Menu", id: "product" },
- { name: "About", id: "about" },
- { name: "Contact", id: "contact" },
+ { name: "Menu", id: "/menu" },
+ { name: "About", id: "/about" },
+ { name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
@@ -130,9 +129,9 @@ export default function ProductPage({ params }: ProductPageProps) {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
- { name: "Menu", id: "product" },
- { name: "About", id: "about" },
- { name: "Contact", id: "contact" },
+ { name: "Menu", id: "/menu" },
+ { name: "About", id: "/about" },
+ { name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
@@ -181,9 +180,9 @@ export default function ProductPage({ params }: ProductPageProps) {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
- { name: "Menu", id: "product" },
- { name: "About", id: "about" },
- { name: "Contact", id: "contact" },
+ { name: "Menu", id: "/menu" },
+ { name: "About", id: "/about" },
+ { name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
diff --git a/src/app/shop/page.tsx b/src/app/shop/page.tsx
index d2797cd..c93a7cf 100644
--- a/src/app/shop/page.tsx
+++ b/src/app/shop/page.tsx
@@ -1,5 +1,6 @@
"use client";
+import { useState } from "react";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
@@ -8,14 +9,19 @@ import ProductCatalog from "@/components/ecommerce/productCatalog/ProductCatalog
import { useProductCatalog } from "@/hooks/useProductCatalog";
export default function ShopPage() {
+ const [cartOpen, setCartOpen] = useState(false);
+
const {
products,
isLoading,
search,
setSearch,
+ category,
+ setCategory,
+ sort,
+ setSort,
filters,
- cartOpen,
- setCartOpen,
+ categories,
} = useProductCatalog({ basePath: "/shop" });
if (isLoading) {
@@ -38,9 +44,9 @@ export default function ShopPage() {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
- { name: "Menu", id: "product" },
- { name: "About", id: "about" },
- { name: "Contact", id: "contact" },
+ { name: "Menu", id: "/menu" },
+ { name: "About", id: "/about" },
+ { name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
@@ -81,9 +87,9 @@ export default function ShopPage() {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
- { name: "Menu", id: "product" },
- { name: "About", id: "about" },
- { name: "Contact", id: "contact" },
+ { name: "Menu", id: "/menu" },
+ { name: "About", id: "/about" },
+ { name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}