Truncate access review roles with badge list

Long role strings in the access review table broke row layout when
drivers joined many roles into one comma-separated value. Expose
roles as a string array in GraphQL by splitting the stored role at
the API layer, and render the first three roles as badges with a
"+X more" popover for the rest.

Closes ENG-459.

Signed-off-by: Ludovic Vielle <ludovic@probo.com>
This commit is contained in:
Ludovic Vielle
2026-06-12 18:23:04 +02:00
parent bf20ca1a90
commit 8094e7cfd0
80 changed files with 768 additions and 378 deletions

View File

@@ -377,7 +377,7 @@ type AccessReviewEntry implements Node {
campaignSource: AccessReviewCampaignSource! @goField(forceResolver: true)
email: String!
fullName: String!
role: String!
roles: [String!]!
jobTitle: String!
isAdmin: Boolean!
active: Boolean

View File

@@ -278,6 +278,11 @@ func NewAccessReviewEntryEdge(e *coredata.AccessReviewEntry, orderBy coredata.Ac
}
func NewAccessReviewEntry(e *coredata.AccessReviewEntry) *AccessReviewEntry {
roles := e.Roles
if roles == nil {
roles = []string{}
}
entry := &AccessReviewEntry{
ID: e.ID,
Campaign: &AccessReviewCampaign{
@@ -288,7 +293,7 @@ func NewAccessReviewEntry(e *coredata.AccessReviewEntry) *AccessReviewEntry {
},
Email: e.Email,
FullName: e.FullName,
Role: e.Role,
Roles: roles,
JobTitle: e.JobTitle,
IsAdmin: e.IsAdmin,
Active: e.Active,