TopNav.jsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. />
  32. <Image
  33. src="/brand/logo-whiteNav.png"
  34. alt="Firmenlogo"
  35. fill
  36. sizes="64px"
  37. className="hidden object-contain dark:block"
  38. priority
  39. />
  40. </div>
  41. </Link>
  42. <nav aria-label="Hauptnavigation" className="flex items-center">
  43. <QuickNav />
  44. </nav>
  45. </div>
  46. <div className="flex items-center gap-3">
  47. <div className="flex items-center gap-3" aria-label="Aktionen">
  48. <SessionIndicator />
  49. <ThemeToggleButton />
  50. </div>
  51. <div className="h-6 w-px bg-border" aria-hidden="true" />
  52. <UserStatus />
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </TooltipProvider>
  58. </header>
  59. );
  60. }