'use client' import { useTranslations } from 'next-intl' import { useEffect } from 'react' export default function MenuPage() { const t = useTranslations('menu') useEffect(() => { // Intersection Observer to highlight current menu category const sections = document.querySelectorAll('section[id]'); const navLinks = document.querySelectorAll('a[href^="#"]'); const observerOptions = { root: null, threshold: 0.5, rootMargin: '0px' }; const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { const id = entry.target.getAttribute('id'); navLinks.forEach(link => { if (link.getAttribute('href') === `#${id}`) { link.classList.add('text-tertiary', 'font-bold'); link.classList.remove('text-on-surface-variant'); } else { link.classList.remove('text-tertiary', 'font-bold'); link.classList.add('text-on-surface-variant'); } }); } }); }, observerOptions); sections.forEach(section => observer.observe(section)); // Subtle parallax effect on mouse move for cards const handleMouseMove = (e: MouseEvent) => { const cards = document.querySelectorAll('.copper-glow'); cards.forEach(card => { const rect = card.getBoundingClientRect(); const cardX = rect.left + rect.width / 2; const cardY = rect.top + rect.height / 2; const angleX = (e.clientY - cardY) / 50; const angleY = (cardX - e.clientX) / 50; (card as HTMLElement).style.transform = `perspective(1000px) rotateX(${angleX}deg) rotateY(${angleY}deg)`; }); }; document.addEventListener('mousemove', handleMouseMove); return () => document.removeEventListener('mousemove', handleMouseMove); }, []) return (
{/* Hero Header */}

{t('title')}

{t('subtitle')}

{/* Category Navigation (Sticky) */}
{t('nav_starters')} {t('nav_prime_cuts')} {t('nav_sides')} {t('nav_dessert')}
{/* Menu Sections */}
{/* Starters Section */}

{t('starters_title')}

{t('starters_desc')}

{t('starter1_title')}

22

{t('starter1_desc')}

{t('starter2_title')}

34

{t('starter2_desc')}

{/* Featured Highlight - Prime Cuts */}
Tomahawk
{t('prime_cuts_tag')}

{t('prime_cuts_title')}

{t('prime_cuts_desc')}

{t('mkt_price')}

{t('cut1_title')}

{t('cut1_desc')}

58

{t('cut2_title')}

{t('cut2_desc')}

145

{t('cut3_title')}

{t('cut3_desc')}

74
{/* Sides Section */}

{t('sides_title')}

{t('sides_desc')}

{t('side1_title')}

{t('side1_desc')}

18

{t('side2_title')}

{t('side2_desc')}

16
{/* Dessert Section */}

{t('dessert1_title')}

{t('dessert1_desc')}

18

{t('dessert2_title')}

{t('dessert2_desc')}

16
Chocolate Fondant

{t('dessert_title')}

) }