From 4643a39c3ea6d4e7093643dfdd1509968cda07ef Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Tue, 23 Dec 2025 12:07:38 +0700 Subject: [PATCH] feat(FE-331): create RequirePermission helper component --- src/components/helper/RequirePermission.tsx | 28 +++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/components/helper/RequirePermission.tsx 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;