"use client"; /** * MENU PAGE — Premium Sidebar Navigation */ import { useEffect, useState, useMemo } from "react"; import { menuCategories } from "@/lib/menu-data"; import { gsap } from "gsap"; import { ScrollTrigger } from "gsap/ScrollTrigger"; import Navbar from "@/components/Navbar"; import Footer from "@/components/Footer"; import { useCart } from "@/components/CartContext"; gsap.registerPlugin(ScrollTrigger); export default function MenuPage() { const [activeCategory, setActiveCategory] = useState("All"); const [searchQuery, setSearchQuery] = useState(""); const [showVegetarianOnly, setShowVegetarianOnly] = useState(false); const { addToCart } = useCart(); // Sidebar categories const sidebarCategories = [ { id: "All", name: "All Dishes" }, ...menuCategories.map((cat) => ({ id: cat.id, name: cat.name })), ]; // Filtering logic const filteredCategories = useMemo(() => { return menuCategories .map((category) => { let items = category.items; // Sidebar filter if (activeCategory !== "All" && category.id !== activeCategory) { items = []; } // Search if (searchQuery.trim()) { const q = searchQuery.toLowerCase().trim(); items = items.filter( (item) => item.name.toLowerCase().includes(q) || (item.description && item.description.toLowerCase().includes(q)) ); } // Vegetarian if (showVegetarianOnly) { items = items.filter((item) => item.isVegetarian); } return { ...category, items }; }) .filter((category) => category.items.length > 0); }, [searchQuery, showVegetarianOnly, activeCategory]); const handleCategorySelect = (id: string) => { setActiveCategory(id); window.scrollTo({ top: 220, behavior: "smooth" }); }; return (
Traditional recipes. Generous portions. Made with heart.
{item.description}
)}