From ddf6ac4b9b733a954516f0054eb5955957fe6f79 Mon Sep 17 00:00:00 2001 From: Jared He <66887902+jaredjhe@users.noreply.github.com> Date: Mon, 6 Jun 2022 00:28:17 -0400 Subject: [PATCH] use declarative apporach --- pages/about/team.tsx | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) 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 () => {