From 18dafcc56cca5299e3a68efda0a252c9bae4b7b7 Mon Sep 17 00:00:00 2001 From: Vlad-Stefan Harbuz Date: Thu, 15 May 2025 22:13:36 +0100 Subject: [PATCH 1/2] Add clientside member sorting --- src/components/GridMemberList.astro | 8 ++- src/components/TabularMemberList.astro | 9 ++- src/memberData/common.ts | 9 +++ src/pages/members/index.astro | 76 +++++++++++++++++++++++++- src/styles/common.css | 9 ++- 5 files changed, 105 insertions(+), 6 deletions(-) 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/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 + +