import { canCreate, canDelete, canRead, canUpdate, CrudAction, hasActionPermission, hasAnyPermission, hasPermission, } from "../helpers/permissions"; import { useGetAdminPermissions } from "../pages/users/hooks/useUserData"; export const usePermissions = () => { const { data, isPending, isLoading } = useGetAdminPermissions(); const permissions = data?.data?.permissions; return { permissions, isPending: isPending || isLoading, can: (resource: string, action: CrudAction) => hasActionPermission(permissions, resource, action), canCreate: (resource: string) => canCreate(permissions, resource), canRead: (resource: string) => canRead(permissions, resource), canUpdate: (resource: string) => canUpdate(permissions, resource), canDelete: (resource: string) => canDelete(permissions, resource), has: (resourceOrPermission: string) => hasPermission(permissions, resourceOrPermission), hasAny: (resources: readonly string[]) => hasAnyPermission(permissions, resources), }; };