UserStatus.jsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use client";
  2. import React from "react";
  3. import { useAuth } from "@/components/auth/authContext";
  4. /**
  5. * UserStatus (RHL-020)
  6. *
  7. * Responsibilities:
  8. * - Display minimal session info in the TopNav.
  9. *
  10. * Data source:
  11. * - AuthContext (provided by components/auth/AuthProvider.jsx)
  12. *
  13. * UX rule:
  14. * - All user-facing text must be German.
  15. */
  16. export default function UserStatus() {
  17. const { status, user } = useAuth();
  18. function formatRole(role) {
  19. if (role === "branch") return "Niederlassung";
  20. if (role === "admin") return "Admin";
  21. if (role === "dev") return "Entwicklung";
  22. return role ? String(role) : "Unbekannt";
  23. }
  24. let text = "Nicht geladen";
  25. if (status === "loading") text = "Lädt…";
  26. if (status === "authenticated" && user) {
  27. const roleLabel = formatRole(user.role);
  28. text = user.branchId ? `${roleLabel} (${user.branchId})` : roleLabel;
  29. }
  30. if (status === "unauthenticated") text = "Abgemeldet";
  31. if (status === "error") text = "Fehler";
  32. return (
  33. <div className="hidden items-center gap-2 md:flex">
  34. <span className="text-xs text-muted-foreground">Benutzer:</span>
  35. <span className="text-xs">{text}</span>
  36. </div>
  37. );
  38. }