"use client"; /** * SHAHI KITCHEN HOMEPAGE * Version with advanced Signature Menu + elegant hero (pre full Sultan redesign) */ import React, { useEffect, useMemo, useState } from "react"; import Lenis from "lenis"; import { ArrowRight, UtensilsCrossed } from "lucide-react"; import Navbar from "@/components/Navbar"; import Footer from "@/components/Footer"; import { useCart } from "@/components/CartContext"; import { useLanguage } from "@/lib/language-context"; import { heroBannerSources } from "@/lib/assets"; import { useMenu } from "@/presentation/providers/menu-provider"; import { buildCartLineFromMenuItem } from "@/application/cart/cart-line-builder"; import type { MenuItem } from "@/domain/menu/entities"; import { getTranslation } from "@/lib/translations"; import { getMenuItemDescription, getMenuItemName, } from "@/application/i18n/menu-localization"; import SignatureMenuMarquee, { type SignatureDish } from "@/components/SignatureMenuMarquee"; type SignatureFilter = "All" | "Rice" | "Curry" | "Meat" | "Street" | "Roll" | "Sweets"; type HomepageDish = SignatureDish & { filterTag: SignatureFilter | null }; export default function ShahiKitchenHomepage() { const { addToCart } = useCart(); const { categories: menuCategories } = useMenu(); const { language } = useLanguage(); const t = getTranslation(language); const [menuFilter, setMenuFilter] = useState("All"); // Lenis smooth scroll — desktop only (native scroll feels better on touch devices) useEffect(() => { const isMobile = window.matchMedia('(max-width: 767px)').matches; const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; if (isMobile || prefersReducedMotion) return; const lenis = new Lenis({ duration: 1.1, easing: (t: number) => Math.min(1, 1.001 * (-Math.pow(2, -10 * t) + 1)), smoothWheel: true, }); const raf = (time: number) => { lenis.raf(time); requestAnimationFrame(raf); }; requestAnimationFrame(raf); return () => lenis.destroy(); }, []); const getDishFilterTag = (item: MenuItem, categoryId: string): SignatureFilter | null => { if (categoryId === "sweets") return "Sweets"; if (categoryId === "street-food") return "Street"; if (categoryId === "naan-roll") return "Roll"; if (categoryId === "meat") return "Meat"; if (item.id.includes("biryani")) return "Rice"; if (categoryId === "vegetarian" || categoryId === "chicken") return "Curry"; return null; }; const allDishes = useMemo( () => menuCategories.flatMap((category) => category.items.map((item) => ({ ...item, name: getMenuItemName(language, item), desc: getMenuItemDescription(language, t, item), filterTag: getDishFilterTag(item, category.id), })) ), [language, t, menuCategories] ); const filtered = useMemo(() => { if (menuFilter === "All") return allDishes; return allDishes.filter((dish) => dish.filterTag === menuFilter); }, [allDishes, menuFilter]); const banner = heroBannerSources(); const addDish = (d: SignatureDish) => { addToCart(buildCartLineFromMenuItem(d)); }; return (
{/* HERO - Full Banner Video (no text overlay) */}
{/* Banner Video - Responsive sources for proper mobile/iPad visualization (portrait asset) + desktop (landscape). Mobile/iPad (<=1024px) uses the compressed banner_mobile-optimized versions (WebM primary for size/speed, MP4 fallback). These were generated from the provided banner_mobile.mp4 (original kept as source asset). */} {/* Cinematic overlays */}
{/* ADVANCED SIGNATURE MENU */} {/* THE SHAHI EXPERIENCE */}
{language === 'sv' ? 'SHAHI-SÄTTET' : 'THE SHAHI WAY'}

{language === 'sv' ? 'Mer än en måltid.\nEtt ögonblick av Shahi.' : 'More than a meal.\nA moment of Shahi.'}

{(language === 'sv' ? [ { title: "Den Legendariska Buffén", desc: "Vår berömda lunchbuffé har över 20 roterande rätter — curry, biryani, färsk naan och sötsaker." }, { title: "Shahi Sötsaker", desc: "Hemgjord mithai dagligen. Från färsk jalebi till rasmalai — det perfekta söta avslutet." }, { title: "Varm Gästfrihet", desc: "Oavsett om du är här för en snabb lunch eller familjefest, behandlas du alltid som shahi." }, ] : [ { title: "The Legendary Buffet", desc: "Our famous lunch buffet features over 20 rotating dishes — curries, biryanis, fresh naan, and sweets." }, { title: "Shahi Sweets", desc: "Homemade mithai made daily. From fresh Jalebi to Rasmalai — the perfect sweet ending." }, { title: "Warm Hospitality", desc: "Whether you're here for a quick lunch or a family celebration, you will always be treated like Shahi." }, ]).map((item, index) => (
0{index + 1}

{item.title}

{item.desc}

))}
); }