import Image from "next/image"; import Link from "next/link"; import { getTranslations } from "next-intl/server"; import { cached } from "@/lib/cache"; import { prisma } from "@/lib/prisma"; import { siteSettings } from "@/lib/services/site-settings"; export async function SiteHeader() { const t = await getTranslations("header"); const [hotelName, header, logo] = await Promise.all([ siteSettings.get("hotel_name", "Atom"), siteSettings.get("cms_header", "/assets/images/background.png"), siteSettings.get("cms_logo", ""), ]); let online: number; try { online = await cached("online_count", 10_000, () => prisma.user.count({ where: { online: "1" } }), ); } catch { online = 0; } const bannerUrl = header && header !== "/assets/images/background.png" ? header : "/assets/images/background.png"; return (
{/* Background image */}
{/* Gradient overlays */}
{/* Subtle dot pattern */}
{/* Decorative glows */}
{/* Content */}
{logo ? ( {hotelName ) : (

{hotelName}

Hotel

)} {/* Online badge */}
{t("online", { count: online, hotel: hotelName ?? "Atom" })}
); }