Files
saffron-table/src/components/Header.tsx
T
joewee 923d105fab Rebrand to Saffron Table - Persian-Mediterranean restaurant in Shoreditch
- Updated brand name from Aurum to Saffron Table across all pages
- Changed location from Mayfair to Shoreditch (127 Shoreditch High Street)
- Created Persian-Mediterranean menu with GBP prices
- Updated hero tagline: "Charcoal-Grilled Mezze & Saffron Cocktails"
- New menu items: hummus, lamb kofta, saffron salmon, Persian desserts
- Saffron cocktail program added
- Updated chef bio: Chef Yasmin Kashani
- New testimonials reflecting Persian-Mediterranean cuisine
- Updated opening hours: Tue-Sun 5pm-11pm
- Updated events and private dining rooms
- Modern stats: 5+ years, 15 mezze dishes, 8 saffron cocktails

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-08-21 14:35:05 +00:00

59 lines
2.7 KiB
TypeScript

import { useState, useEffect } from "react";
import { Link } from "react-router-dom";
import { Button } from "@/components/ui/button";
import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet";
import { Menu } from "lucide-react";
import { ThemeToggle } from "@/components/ThemeToggle";
export default function Header() {
const [open, setOpen] = useState(false);
const [scrolled, setScrolled] = useState(false);
useEffect(() => {
const fn = () => setScrolled(window.scrollY > 20);
window.addEventListener("scroll", fn);
return () => window.removeEventListener("scroll", fn);
}, []);
const links = [
{ label: "Menu", to: "/menu" },
{ label: "Reservations", to: "/reservations" },
{ label: "Events", to: "/events" },
{ label: "About", to: "/about" },
];
return (
<header className={`fixed top-0 inset-x-0 z-50 transition-all duration-300 ${scrolled ? "bg-stone-950/95 backdrop-blur-lg border-b border-stone-800 shadow-sm" : "bg-transparent"}`}>
<div className="mx-auto max-w-7xl flex items-center justify-between px-6 py-4">
<Link to="/" className="text-lg font-semibold tracking-widest uppercase text-white">Saffron Table</Link>
<nav className="hidden md:flex items-center gap-8">
{links.map((l) => (
<Link key={l.to} to={l.to} className="text-sm text-stone-300 hover:text-amber-400 transition-colors tracking-wide uppercase">{l.label}</Link>
))}
</nav>
<div className="hidden md:flex items-center gap-3">
<ThemeToggle />
<Button asChild size="sm" className="bg-amber-700 hover:bg-amber-600 text-white rounded-none tracking-wide uppercase text-xs px-6 active:scale-[0.98]">
<Link to="/reservations">Book a Table</Link>
</Button>
</div>
<Sheet open={open} onOpenChange={setOpen}>
<SheetTrigger asChild className="md:hidden">
<Button variant="ghost" size="icon" className="text-white"><Menu className="h-5 w-5" /></Button>
</SheetTrigger>
<SheetContent side="right" className="w-72 bg-stone-950 border-stone-800">
<nav className="mt-8 flex flex-col gap-4">
{links.map((l) => (
<Link key={l.to} to={l.to} className="text-lg font-medium text-stone-200 tracking-wide uppercase" onClick={() => setOpen(false)}>{l.label}</Link>
))}
<Button asChild className="mt-4 w-full bg-amber-700 hover:bg-amber-600 text-white rounded-none tracking-wide uppercase active:scale-[0.98]">
<Link to="/reservations" onClick={() => setOpen(false)}>Book a Table</Link>
</Button>
<ThemeToggle />
</nav>
</SheetContent>
</Sheet>
</div>
</header>
);
}