Sort project members by role

This commit is contained in:
David Corbitt
2023-08-16 18:30:27 -07:00
parent d9a0e4581f
commit 76f600722a

View File

@@ -1,4 +1,4 @@
import { useState } from "react"; import { useMemo, useState } from "react";
import { import {
Table, Table,
Thead, Thead,
@@ -44,6 +44,15 @@ const MemberTable = () => {
[selectedProject?.id, cancelInvitationMutation], [selectedProject?.id, cancelInvitationMutation],
); );
const sortedMembers = useMemo(() => {
if (!selectedProject?.projectUsers) return [];
return selectedProject.projectUsers.sort((a, b) => {
if (a.role === b.role) return a.createdAt < b.createdAt ? -1 : 1;
// Take advantage of fact that ADMIN is alphabetically before MEMBER
return a.role < b.role ? -1 : 1;
});
}, [selectedProject?.projectUsers]);
return ( return (
<> <>
<Table fontSize={{ base: "sm", md: "md" }}> <Table fontSize={{ base: "sm", md: "md" }}>
@@ -70,7 +79,8 @@ const MemberTable = () => {
}, },
}} }}
> >
{selectedProject?.projectUsers.map((member) => { {selectedProject &&
sortedMembers.map((member) => {
return ( return (
<Tr key={member.id}> <Tr key={member.id}>
<Td> <Td>