From 1cbe64af0c4eb859ad10f73b70123c15d45249b8 Mon Sep 17 00:00:00 2001 From: Michael Fatemi Date: Tue, 5 Jan 2021 23:59:39 -0500 Subject: [PATCH] Added class councils --- src/pages/classcouncil.tsx | 52 +++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/src/pages/classcouncil.tsx b/src/pages/classcouncil.tsx index cf2ce4d..3a00534 100644 --- a/src/pages/classcouncil.tsx +++ b/src/pages/classcouncil.tsx @@ -1,20 +1,60 @@ import React from 'react'; import Hero from '../components/Hero'; import MemberRow from '../components/MemberRow'; +import PrimaryHeader from '../components/PrimaryHeader'; import useQuery from '../hooks/useQuery'; +import sortCommittee from '../lib/sortCommittee'; + +const roleOrder = [ + 'President', + 'Vice-President', + 'Treasurer', + 'Secretary', + 'Historian', + 'Senator', + 'Sponsor', +]; export default function ClassCouncil() { - let members = - useQuery( - `*[_type == 'member' && role == 'class'] | order (year desc)` - ) ?? []; + let members = useQuery( + `*[_type == 'member' && committee == 'class'] | order (year desc)` + ); + + if (!members) { + return null; + } + + console.log(members); + + let years: [string, SGA.MemberDocument[]][] = []; + let currentYearMembers: SGA.MemberDocument[] = []; + let currentYear = ''; + + for (let member of members) { + if (member.year !== currentYear) { + if (currentYear !== '') { + // Clear the members of the current year + years.push([currentYear, sortCommittee(currentYearMembers, roleOrder)]); + currentYearMembers = []; + } + currentYear = member.year; + } + currentYearMembers.push(member); + } + + console.log(years); return ( <>
- {members.map((member) => ( - + {years.map(([year, members]) => ( + <> + Class Council {year} + {members.map((member) => ( + + ))} + ))}