fix: display role.name coming from the metadata (#10)

This commit is contained in:
Diana Olarte
2025-10-22 11:24:07 +11:00
committed by GitHub
parent 2259a453ce
commit 315e5c6e32
2 changed files with 46 additions and 13 deletions

View File

@@ -23,12 +23,12 @@ describe('TeamTable', () => {
const mockTeamMembers = [
{
email: 'alice@example.com',
roles: ['Admin', 'Editor'],
roles: ['admin', 'editor'],
username: 'alice',
},
{
email: 'bob@example.com',
roles: ['Viewer'],
roles: ['viewer'],
username: 'bob',
},
];
@@ -37,6 +37,38 @@ describe('TeamTable', () => {
libraryId: 'lib:123',
canManageTeam: true,
username: 'alice',
roles: [
{
role: 'admin',
permissions: [
'delete_library',
'publish_library',
'manage_library_team',
],
userCount: 3,
name: 'Admin',
description: 'The Admin role',
},
{
role: 'editor',
permissions: [
'edit_library',
'publish_library',
],
userCount: 3,
name: 'Editor',
description: 'The Editor role',
},
{
role: 'viewer',
permissions: [
'view_library',
],
userCount: 3,
name: 'Viewer',
description: 'The Viewer role',
},
],
};
beforeEach(() => {

View File

@@ -43,18 +43,12 @@ const NameCell = ({ row }: CellProps) => {
return row.original.username;
};
const RolesCell = ({ row }: CellProps) => (row.original.username === SKELETON_ROWS[0].username ? (
<Skeleton width="80px" />
) : (
row.original.roles.map((role) => (
<Chip key={`${row.original.username}-role-${role}`}>{role}</Chip>
))
));
const TeamTable = () => {
const intl = useIntl();
const { libraryId, canManageTeam, username } = useLibraryAuthZ();
const {
libraryId, canManageTeam, username, roles,
} = useLibraryAuthZ();
const roleLabels = roles.reduce((acc, role) => ({ ...acc, [role.role]: role.name }), {} as Record<string, string>);
// TODO: Display error in the notification system
const {
data: teamMembers, isLoading, isError,
@@ -105,7 +99,14 @@ const TeamTable = () => {
{
Header: intl.formatMessage(messages['library.authz.team.table.roles']),
accessor: 'roles',
Cell: RolesCell,
// eslint-disable-next-line react/no-unstable-nested-components
Cell: ({ row }: CellProps) => (row.original.username === SKELETON_ROWS[0].username ? (
<Skeleton width="80px" />
) : (
row.original.roles.map((role) => (
<Chip key={`${row.original.username}-role-${role}`}>{roleLabels[role]}</Chip>
))
)),
},
]
}