diff --git a/src/components/helper/RequirePermission.tsx b/src/components/helper/RequirePermission.tsx new file mode 100644 index 00000000..2a7061ed --- /dev/null +++ b/src/components/helper/RequirePermission.tsx @@ -0,0 +1,28 @@ +'use client'; + +import { useAuth } from '@/services/hooks/useAuth'; + +interface RequirePermissionProps { + children: React.ReactNode; + permissions: string | string[]; +} + +const RequirePermission = ({ + children, + permissions, +}: RequirePermissionProps) => { + const { permissionCheck } = useAuth(); + + const isPermitted = + typeof permissions === 'string' + ? permissionCheck(permissions) + : permissions.some((permission) => permissionCheck(permission)); + + if (!isPermitted) { + return null; + } + + return <>{children}; +}; + +export default RequirePermission;