From e2809a15d0675a3be49fee879d49271ea2cf8ccf Mon Sep 17 00:00:00 2001 From: Oliver Bryan <04oliverbryan@gmail.com> Date: Fri, 9 Jan 2026 08:29:08 +0000 Subject: [PATCH] sort members and group by role --- .../frontend/src/components/organisations-dialog.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/frontend/src/components/organisations-dialog.tsx b/packages/frontend/src/components/organisations-dialog.tsx index 547318f..1261557 100644 --- a/packages/frontend/src/components/organisations-dialog.tsx +++ b/packages/frontend/src/components/organisations-dialog.tsx @@ -53,11 +53,12 @@ function OrganisationsDialog({ organisationId: selectedOrganisation.Organisation.id, onSuccess: (data) => { const members = data as OrganisationMemberResponse[]; + const roleOrder: Record = { owner: 0, admin: 1, member: 2 }; members.sort((a, b) => { - const nameCompare = a.User.name.localeCompare(b.User.name); - return nameCompare !== 0 - ? nameCompare - : b.OrganisationMember.role.localeCompare(a.OrganisationMember.role); + const roleA = roleOrder[a.OrganisationMember.role] ?? 3; + const roleB = roleOrder[b.OrganisationMember.role] ?? 3; + if (roleA !== roleB) return roleA - roleB; + return a.User.name.localeCompare(b.User.name); }); setMembers(members); },