// --------------------------------------------------------------------------- // Folder: components/app-shell // File: UserStatus.jsx // Relative Path: components/app-shell/UserStatus.jsx // --------------------------------------------------------------------------- "use client"; import React from "react"; import { useAuth } from "@/components/auth/authContext"; /** * UserStatus (RHL-020) * * Responsibilities: * - Display minimal session info in the TopNav. * * Data source: * - AuthContext (provided by components/auth/AuthProvider.jsx) * * Behavior: * - unknown (no provider): "Not loaded" (keeps SSR tests stable) * - loading: "Loading..." * - authenticated: show role + optional branchId * - unauthenticated: "Signed out" (should be rare because we redirect) * - error: "Error" */ export default function UserStatus() { const { status, user } = useAuth(); let text = "Not loaded"; if (status === "loading") text = "Loading..."; if (status === "authenticated" && user) { // We only have userId/role/branchId from /api/auth/me. // Keep this minimal and non-personal. text = user.branchId ? `${user.role} (${user.branchId})` : `${user.role}`; } if (status === "unauthenticated") text = "Signed out"; if (status === "error") text = "Error"; return (
User: {text}
); }