import { LogOut } from "lucide-react"; import Link from "next/link"; import type { ReactNode } from "react"; import { Bildmarke, Kurzname, Marke, Wortmarke } from "@/components/marke"; import { VERSION } from "@/lib/version"; import { Navigation } from "./Navigation"; import { SeitenleistenRahmen } from "./SeitenleistenRahmen"; import { ROLLEN_TEXT, type HuellenBenutzer } from "./typen"; /** * Grundlayout (#002): feste Seitenleiste links (248 px), Hauptbereich rechts. * Benutzer und aktiver Pfad kommen als Props – die Hülle kennt weder Sitzung noch * Datenbank, damit sie in Tests und Prototypen ohne Anmeldung rendert. */ export function Huelle({ benutzer, aktiverPfad, children, }: { benutzer: HuellenBenutzer; /** Ohne Angabe ermittelt die Navigation den Pfad im Browser. */ aktiverPfad?: string; children: ReactNode; }) { return (
Zum Inhalt springen } >

v{VERSION}

{children}
); } function BenutzerKasten({ benutzer }: { benutzer: HuellenBenutzer }) { const kuerzel = benutzer.name .split(/\s+/) .filter(Boolean) .slice(0, 2) .map((t) => t[0]?.toUpperCase()) .join(""); return (
{kuerzel}

{benutzer.name}

{ROLLEN_TEXT[benutzer.rolle]} · über {benutzer.herkunft}

{/* Abmelden nur per POST, damit ein fremder Link niemanden abmelden kann (#004). */}
); }