TopNav.jsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import React from "react";
  2. import Link from "next/link";
  3. import Image from "next/image";
  4. import QuickNav from "@/components/app-shell/QuickNav";
  5. import UserStatus from "@/components/app-shell/UserStatus";
  6. import ThemeToggleButton from "@/components/app-shell/ThemeToggleButton";
  7. import SessionIndicator from "@/components/app-shell/SessionIndicator";
  8. export default function TopNav() {
  9. return (
  10. <header className="sticky top-0 z-50 w-full border-b bg-background/80 backdrop-blur">
  11. <div className="px-4">
  12. <div className="mx-auto grid h-14 w-full items-center 2xl:grid-cols-[1fr_minmax(0,45%)_1fr]">
  13. <div className="flex items-center justify-between gap-4 2xl:col-start-2">
  14. <div className="flex items-center gap-2">
  15. <Link
  16. href="/"
  17. title="Startseite"
  18. className="hover:cursor-pointer"
  19. >
  20. <div className="relative h-10 w-16">
  21. <Image
  22. src="/brand/logo-blackNav.png"
  23. alt="Firmenlogo"
  24. fill
  25. sizes="64px"
  26. className="object-contain dark:hidden"
  27. priority
  28. />
  29. <Image
  30. src="/brand/logo-whiteNav.png"
  31. alt="Firmenlogo"
  32. fill
  33. sizes="64px"
  34. className="hidden object-contain dark:block"
  35. priority
  36. />
  37. </div>
  38. </Link>
  39. <nav aria-label="Hauptnavigation" className="flex items-center">
  40. <QuickNav />
  41. </nav>
  42. </div>
  43. <div className="flex items-center gap-3">
  44. {/* New: inline session validation indicator (no content flicker) */}
  45. <SessionIndicator />
  46. <ThemeToggleButton />
  47. <UserStatus />
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. </header>
  53. );
  54. }