diff --git a/pages/about/team.tsx b/pages/about/team.tsx index 96a77770..616452b0 100644 --- a/pages/about/team.tsx +++ b/pages/about/team.tsx @@ -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 = async () => {