Sort project members by role
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user