diff --git a/src/components/GridMemberList.astro b/src/components/GridMemberList.astro index 02cdcbfc..cc6e99fc 100644 --- a/src/components/GridMemberList.astro +++ b/src/components/GridMemberList.astro @@ -13,7 +13,13 @@ const members = await getMembers();
{sortMembersByDevs(members).map((member) => - +
`The

diff --git a/src/components/TabularMemberList.astro b/src/components/TabularMemberList.astro index ba62185d..8fd8ac5c 100644 --- a/src/components/TabularMemberList.astro +++ b/src/components/TabularMemberList.astro @@ -22,9 +22,14 @@ const members = await getMembers(); - + {sortMembersByDevs(members).map((member) => - + `The diff --git a/src/memberData/common.ts b/src/memberData/common.ts index 9bad0411..ba35cf3c 100644 --- a/src/memberData/common.ts +++ b/src/memberData/common.ts @@ -63,6 +63,15 @@ export function sortMembersByDevs(members: MemberWithId[]): MemberWithId[] { }); } +/** + * Sorts members by join date, newest first. + */ +export function sortMembersByJoinDate(members: MemberWithId[]): MemberWithId[] { + return [...members].sort((m1, m2) => { + return m2.data.joinDate.localeCompare(m1.data.joinDate); + }); +} + /** * Sorts members by the dollars per dev in their latest annual report. */ diff --git a/src/pages/members/[id].astro b/src/pages/members/[id].astro index f7c8bdc4..21ad19ac 100644 --- a/src/pages/members/[id].astro +++ b/src/pages/members/[id].astro @@ -54,6 +54,10 @@ export async function getStaticPaths() { Learn more → +

+ Joined on {dayjs(member.joinDate).format('DD MMM YYYY')}. +

+ {member.annualReports.map(report =>

diff --git a/src/pages/members/index.astro b/src/pages/members/index.astro index 8ff24f44..3ab7d52d 100644 --- a/src/pages/members/index.astro +++ b/src/pages/members/index.astro @@ -34,6 +34,15 @@ import svgList from '../../assets/icons/list.svg?raw';
+
+ Sort by + +