use declarative apporach
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Jared He 2022-06-06 00:28:17 -04:00
parent cad441fab6
commit ddf6ac4b9b
1 changed files with 15 additions and 16 deletions

View File

@ -207,23 +207,22 @@ async function getTeamWithImages(team: TeamMember[]) {
);
}
function memberComparer(a: Metadata, b: Metadata) {
return a.name.localeCompare(b.name);
}
function sortTeam(team: Metadata[]): Metadata[] {
const teamLeads: Metadata[] = [];
const teamMembers: Metadata[] = [];
const teamOthers: Metadata[] = [];
for (const member of team) {
if (!Object.prototype.hasOwnProperty.call(member, "role")) {
teamMembers.push(member);
} else if (member.role === "Team Lead") {
teamLeads.push(member);
} else {
teamOthers.push(member);
}
}
teamLeads.sort((a, b) => a.name.localeCompare(b.name));
teamMembers.sort((a, b) => a.name.localeCompare(b.name));
teamOthers.sort((a, b) => a.name.localeCompare(b.name));
return [...teamLeads, ...teamMembers, ...teamOthers];
const leads = team
.filter(({ role }) => role === "Team Lead")
.sort(memberComparer);
const general = team
.filter(({ role }) => role == null || role === "")
.sort(memberComparer);
const others = team
.filter(({ role }) => role != null && role !== "" && role !== "Team Lead")
.sort(memberComparer);
return [...leads, ...general, ...others];
}
export const getStaticProps: GetStaticProps<Props> = async () => {