ScanMenu / src /components /layout /dashboard-header.tsx
HamzaAri's picture
๐Ÿš€ Deploy ScanMenu - Production-ready SaaS web app for digital restaurant menus & QR ordering
e1ef9fc verified
'use client';
import { Bell, Search, ChevronDown } from 'lucide-react';
import { getInitials } from '@/lib/utils';
import { demoUser, demoRestaurant } from '@/lib/demo-data';
export function DashboardHeader() {
return (
<header className="sticky top-0 z-30 flex h-16 items-center justify-between border-b border-zinc-200/60 bg-white/80 px-4 backdrop-blur-xl sm:px-6 dark:border-zinc-800 dark:bg-zinc-950/80">
{/* Search */}
<div className="flex items-center gap-3">
<div className="relative hidden sm:block">
<Search className="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-zinc-400" />
<input
type="text"
placeholder="Search menus, orders, products..."
className="h-9 w-72 rounded-xl border border-zinc-200 bg-zinc-50 pl-9 pr-4 text-sm placeholder:text-zinc-400 focus:border-emerald-500 focus:bg-white focus:outline-none focus:ring-2 focus:ring-emerald-500/20 transition-all dark:border-zinc-700 dark:bg-zinc-900"
/>
<kbd className="absolute right-3 top-1/2 -translate-y-1/2 hidden rounded-md border border-zinc-200 bg-white px-1.5 py-0.5 text-[10px] font-medium text-zinc-400 sm:inline-block dark:border-zinc-700 dark:bg-zinc-800">
โŒ˜K
</kbd>
</div>
</div>
{/* Right side */}
<div className="flex items-center gap-2">
{/* Restaurant switcher */}
<button className="hidden items-center gap-2 rounded-xl border border-zinc-200 px-3 py-2 text-sm font-medium text-zinc-700 transition-all hover:bg-zinc-50 sm:flex dark:border-zinc-700 dark:text-zinc-300 dark:hover:bg-zinc-800">
<div className="h-5 w-5 rounded-md bg-gradient-to-br from-emerald-500 to-cyan-500" />
<span className="max-w-[120px] truncate">{demoRestaurant.name}</span>
<ChevronDown className="h-3.5 w-3.5 text-zinc-400" />
</button>
{/* Notifications */}
<button className="relative rounded-xl p-2.5 text-zinc-500 transition-all hover:bg-zinc-100 hover:text-zinc-700 dark:hover:bg-zinc-800">
<Bell className="h-[18px] w-[18px]" />
<span className="absolute right-1.5 top-1.5 h-2 w-2 rounded-full bg-emerald-500 ring-2 ring-white dark:ring-zinc-950" />
</button>
{/* Avatar */}
<button className="flex items-center gap-2 rounded-xl p-1.5 transition-all hover:bg-zinc-100 dark:hover:bg-zinc-800">
<div className="flex h-8 w-8 items-center justify-center rounded-lg bg-gradient-to-br from-violet-500 to-fuchsia-500 text-xs font-bold text-white shadow-sm">
{getInitials(demoUser.full_name)}
</div>
</button>
</div>
</header>
);
}