TopNav.jsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import React from "react";
  2. import Link from "next/link";
  3. import { Button } from "@/components/ui/button";
  4. import UserStatus from "@/components/app-shell/UserStatus";
  5. /**
  6. * TopNav
  7. *
  8. * RHL-019:
  9. * - App branding
  10. * - User status placeholder (later: getMe + role/branch info)
  11. * - Logout button placeholder (later: wired to apiClient.logout)
  12. * - Theme toggle placeholder (optional; can be replaced by the real ModeToggle)
  13. *
  14. * Test/runtime note:
  15. * - See AppShell.jsx for details why we import React explicitly.
  16. */
  17. export default function TopNav() {
  18. return (
  19. <header className="sticky top-0 z-50 w-full border-b bg-background/80 backdrop-blur">
  20. <div className="mx-auto flex h-14 max-w-7xl items-center justify-between px-4">
  21. <div className="flex items-center gap-3">
  22. <Link href="/" className="font-semibold tracking-tight">
  23. RHL Lieferscheine
  24. </Link>
  25. <span className="text-xs text-muted-foreground">
  26. App shell scaffold
  27. </span>
  28. </div>
  29. <div className="flex items-center gap-2">
  30. <UserStatus />
  31. <Button
  32. variant="outline"
  33. size="sm"
  34. disabled
  35. aria-disabled="true"
  36. title="Theme toggle will be added later"
  37. >
  38. Theme
  39. </Button>
  40. <Button
  41. variant="outline"
  42. size="sm"
  43. disabled
  44. aria-disabled="true"
  45. title="Logout wiring will be added later"
  46. >
  47. Logout
  48. </Button>
  49. </div>
  50. </div>
  51. </header>
  52. );
  53. }