From c976bb942073e8734c517b2c0997156258b80da1 Mon Sep 17 00:00:00 2001 From: Michael Fatemi Date: Wed, 25 Nov 2020 21:05:59 -0500 Subject: [PATCH] Added officers, committee --- src/components/MemberRow.tsx | 24 ++++++++++++++++++++++++ src/pages/committee.tsx | 26 ++++++++++++++++++++++++++ src/pages/officers.tsx | 25 +++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 src/components/MemberRow.tsx create mode 100644 src/pages/committee.tsx create mode 100644 src/pages/officers.tsx diff --git a/src/components/MemberRow.tsx b/src/components/MemberRow.tsx new file mode 100644 index 0000000..a31a946 --- /dev/null +++ b/src/components/MemberRow.tsx @@ -0,0 +1,24 @@ +import imageUrl from '../imageUrl'; + +export default function MemberRow({ member }: { member: SGA.MemberDocument }) { + let thumbUrl: string | null = null; + if (member.profile_photo) { + thumbUrl = imageUrl(member.profile_photo).url(); + } + + return ( +
+
+ {thumbUrl ? ( + {member.name} + ) : null} +
+
+

{member.name}

+ {member.role}, {member.year} +
+

{member.bio}

+
+
+ ); +} diff --git a/src/pages/committee.tsx b/src/pages/committee.tsx new file mode 100644 index 0000000..cfec114 --- /dev/null +++ b/src/pages/committee.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import Hero from '../components/Hero'; +import MemberRow from '../components/MemberRow'; +import useQuery from '../hooks/useInitiatives'; + +export default function Committee() { + let excomm = useQuery( + `*[_type == 'member' && committee == 'excomm'] | order (role, year desc)` + ); + // year desc because seniority 8) + + if (!excomm) { + return null; + } + + return ( + <> + +
+ {excomm.map((member) => { + return ; + })} +
+ + ); +} diff --git a/src/pages/officers.tsx b/src/pages/officers.tsx new file mode 100644 index 0000000..d3ff930 --- /dev/null +++ b/src/pages/officers.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import Hero from '../components/Hero'; +import MemberRow from '../components/MemberRow'; +import useQuery from '../hooks/useInitiatives'; + +export default function Officers() { + let officers = useQuery( + `*[_type == 'member' && committee == 'officer']` + ); + + if (!officers) { + return null; + } + + return ( + <> + +
+ {officers.map((officer) => { + return ; + })} +
+ + ); +}