grocery-app/frontend/src/utils/RoleGuard.jsx
2025-11-22 00:42:15 -08:00

24 lines
532 B
JavaScript

import { useContext } from "react";
import { Navigate } from "react-router-dom";
import { AuthContext } from "../context/AuthContext";
export default function RoleGuard({ allowed, children }) {
const { role } = useContext(AuthContext);
if (!role) return <Navigate to="/login" />;
if (!allowed.includes(role)) return <Navigate to="/" />;
return children;
}
function usageExample() {
<Route
path="/admin"
element={
<RoleGuard allowed={[ROLES.ADMIN]}>
<AdminPanel />
</RoleGuard>
}
/>
}