PermissionList.tsx 938 B

12345678910111213141516171819202122232425262728
  1. interface PermissionsListProps {
  2. groupedPermissions: Record<string, string[]>
  3. }
  4. export const PermissionsList = ({ groupedPermissions }: PermissionsListProps) => {
  5. return (
  6. <div className="gap-2 flex flex-col">
  7. {Object.entries(groupedPermissions).map(([accessLevel, resources]) => (
  8. <div key={accessLevel} className="flex flex-wrap gap-1.5">
  9. <span className="text-xs text-foreground-lighter font-mono uppercase tracking-wide">
  10. {accessLevel}:
  11. </span>
  12. <div className="flex flex-wrap gap-1.5">
  13. {resources.map((resource, index) => (
  14. <span
  15. key={`${accessLevel}-${resource}`}
  16. className="text-xs text-foreground capitalize"
  17. >
  18. {resource}
  19. {index < resources.length - 1 ? ',' : '.'}
  20. </span>
  21. ))}
  22. </div>
  23. </div>
  24. ))}
  25. </div>
  26. )
  27. }