cs-2022-class-profile/pages/contributors.tsx

90 lines
2.5 KiB
TypeScript

import { communityReps, designers, webDevs, sysCom } from "data/contributors";
import { pageRoutes } from "data/routes";
import React from "react";
import { BottomNav } from "@/components/BottomNav";
import { CenterWrapper } from "@/components/CenterWrapper";
import { Header } from "@/components/Header";
import { SectionHeader } from "@/components/SectionHeader";
import { Title } from "@/components/Title";
import styles from "./samplePage.module.css";
interface ContributorProfile {
name: string;
link: string;
}
interface ContributorGroupProps {
group: Array<ContributorProfile>;
}
export function ContributorGroup({ group }: ContributorGroupProps) {
return (
<ul>
{group
.sort((a, b) => a.name.localeCompare(b.name))
.map((d, idx) => {
return (
<li key={idx}>
<a href={d.link} target="_blank" rel="noreferrer">
{d.name}
</a>
</li>
);
})}
</ul>
);
}
export default function Contributors() {
return (
<div className={styles.page}>
<Header />
<Title>Contributors</Title>
<SectionHeader
title="Contributors"
subtitle="Huge thanks to all CSC members who have contributed to creating the first ever uWaterloo CS class profile!"
/>
<CenterWrapper>
<p>
The 2022 CS Class Profile was completed by members of the UW Computer
Science Club. Specifically, several current and past members (as of
this writing) of the Community Representatives, Designers, Web
Committee, and Systems Committee put lots of time into making it what
it is. Please contact{" "}
<a href="mailto: exec@csclub.uwaterloo.ca">
exec@csclub.uwaterloo.ca
</a>{" "}
for specific concerns for the CS Class Profile, but the specific
contributors include the following:
</p>
<ul>
<li>
Community Representatives
<ContributorGroup group={communityReps} />
</li>
<li>
Designers
<ContributorGroup group={designers} />
</li>
<li>
Website Committee
<ContributorGroup group={webDevs} />
</li>
<li>
Systems Committee
<ContributorGroup group={sysCom} />
</li>
</ul>
</CenterWrapper>
<BottomNav
leftPage={pageRoutes.personal}
rightPage={pageRoutes.home}
></BottomNav>
</div>
);
}