saleor-dashboard/src/components/RequirePermissions.tsx
Michał Droń d5c9a3dae8
Add trailing commas (#2062)
* Require trailing commas

* Add trailing commas

* Add trailing commas in testUtils dir

* Add trailing commas
2022-06-21 11:36:55 +02:00

34 lines
967 B
TypeScript

import { useUserPermissions } from "@saleor/auth/hooks/useUserPermissions";
import { PermissionEnum, UserPermissionFragment } from "@saleor/graphql";
import React from "react";
export function hasPermissions(
userPermissions: UserPermissionFragment[],
requiredPermissions: PermissionEnum[],
): boolean {
return requiredPermissions.reduce(
(acc, perm) =>
acc && !!userPermissions.find(userPerm => userPerm.code === perm),
true,
);
}
export interface RequirePermissionsProps {
children: React.ReactNode | React.ReactNodeArray;
requiredPermissions: PermissionEnum[];
}
const RequirePermissions: React.FC<RequirePermissionsProps> = ({
children,
requiredPermissions,
}) => {
const userPermissions = useUserPermissions();
return userPermissions &&
hasPermissions(userPermissions, requiredPermissions) ? (
<>{children}</>
) : null;
};
RequirePermissions.displayName = "RequirePermissions";
export default RequirePermissions;