TopNav.jsx 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. import { TooltipProvider } from "@/components/ui/tooltip";
  9. import { TOOLTIP_DELAY_MS } from "@/lib/frontend/ui/uxTimings";
  10. export default function TopNav() {
  11. return (
  12. <header className="sticky top-0 z-50 w-full border-b bg-background">
  13. <TooltipProvider delayDuration={TOOLTIP_DELAY_MS}>
  14. <div className="px-4">
  15. <div className="mx-auto grid h-14 w-full items-center 2xl:grid-cols-[1fr_minmax(0,45%)_1fr]">
  16. <div className="flex items-center justify-between gap-4 2xl:col-start-2">
  17. <div className="flex items-center gap-2">
  18. <Link
  19. href="/"
  20. aria-label="Startseite"
  21. className="hover:cursor-pointer"
  22. >
  23. <div className="relative h-10 w-16">
  24. <Image
  25. src="/brand/logo-blackNav.png"
  26. alt="Firmenlogo"
  27. fill
  28. sizes="64px"
  29. className="object-contain dark:hidden"
  30. priority
  31. unoptimized
  32. />
  33. <Image
  34. src="/brand/logo-whiteNav.png"
  35. alt="Firmenlogo"
  36. fill
  37. sizes="64px"
  38. className="hidden object-contain dark:block"
  39. priority
  40. unoptimized
  41. />
  42. </div>
  43. </Link>
  44. <nav aria-label="Hauptnavigation" className="flex items-center">
  45. <QuickNav />
  46. </nav>
  47. </div>
  48. <div className="flex items-center gap-3">
  49. <div className="flex items-center gap-3" aria-label="Aktionen">
  50. <SessionIndicator />
  51. <ThemeToggleButton />
  52. </div>
  53. <div className="h-6 w-px bg-border" aria-hidden="true" />
  54. <UserStatus />
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. </TooltipProvider>
  60. </header>
  61. );
  62. }