import { useContext } from "react"; import { Navigate, Outlet } from "react-router-dom"; import { AuthContext } from "@/context/auth-context"; import ActivityIndicator from "../indicators/activity-indicator"; export default function ProtectedRoute({ requiredRoles, }: { requiredRoles: ("admin" | "viewer")[]; }) { const { auth } = useContext(AuthContext); if (auth.isLoading) { return ( ); } // Unauthenticated mode if (!auth.isAuthenticated) { return ; } // Authenticated mode (8971): require login if (!auth.user) { return ; } // If role is null (shouldn’t happen if isAuthenticated, but type safety), fallback // though isAuthenticated should catch this if (auth.user.role === null) { return ; } if (!requiredRoles.includes(auth.user.role)) { return ; } return ; }