45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
"use client";
|
|
|
|
import { usePathname } from "next/navigation";
|
|
import { DemoWrapper } from "./DemoWrapper";
|
|
|
|
import { AlertTriangle } from "lucide-react";
|
|
|
|
interface HeaderWrapperProps {
|
|
navbar: React.ReactNode;
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
export function HeaderWrapper({ navbar, children }: HeaderWrapperProps) {
|
|
const pathname = usePathname();
|
|
const isAdmin = pathname?.startsWith("/admin");
|
|
const isSetup = pathname === "/setup";
|
|
|
|
if (isAdmin || isSetup) {
|
|
return <>{children}</>;
|
|
}
|
|
|
|
const isWizard = pathname === "/order" || pathname === "/wizard";
|
|
|
|
return (
|
|
<div className={`flex flex-col ${isWizard ? "h-screen overflow-hidden" : "min-h-screen"} bg-slate-50 text-slate-900 dark:bg-[#020617] dark:text-white`}>
|
|
{/* Demo Banner */}
|
|
<DemoWrapper>
|
|
<div
|
|
id="demo-banner"
|
|
className="bg-amber-500/10 border-b border-amber-500/20 py-2 px-4 text-center text-xs text-amber-600 dark:text-amber-400 font-medium tracking-wide z-50 flex items-center justify-center gap-1.5"
|
|
>
|
|
<AlertTriangle className="w-3.5 h-3.5 shrink-0" />
|
|
<span>Dies ist eine **Demo-Webseite (Dummy-Shop)**. Es werden keine echten Bestellungen verarbeitet oder Zahlungen abgewickelt.</span>
|
|
</div>
|
|
</DemoWrapper>
|
|
|
|
{navbar}
|
|
|
|
<main className={`flex-1 ${isWizard ? "overflow-hidden" : ""}`}>
|
|
{children}
|
|
</main>
|
|
</div>
|
|
);
|
|
}
|