diff options
Diffstat (limited to 'react/08-auth-with-context/src/components/RoleGuard.jsx')
| -rw-r--r-- | react/08-auth-with-context/src/components/RoleGuard.jsx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/react/08-auth-with-context/src/components/RoleGuard.jsx b/react/08-auth-with-context/src/components/RoleGuard.jsx new file mode 100644 index 0000000..5585908 --- /dev/null +++ b/react/08-auth-with-context/src/components/RoleGuard.jsx @@ -0,0 +1,15 @@ +import { useAuth } from '../contexts/AuthContext'; + +const RoleGuard = ({ allowedRoles, children }) => { + const { isInRoles } = useAuth(); + + // If at least one of the user's role is in the allowed list, show the content + if (isInRoles(allowedRoles)) { + return <>{children}</>; + } + + // Otherwise, hide the content + return null; +}; + +export default RoleGuard;
\ No newline at end of file |
