From 66ca814a9f3bde42ebd149b3bbdb9cdec1ea1f17 Mon Sep 17 00:00:00 2001 From: Jared He <66887902+jaredjhe@users.noreply.github.com> Date: Wed, 18 Aug 2021 10:40:38 -0500 Subject: [PATCH] Update names --- pages/events/[year]/[term]/index.tsx | 102 +++++++++++++++++++++ pages/events/[year]/[term]/term.module.css | 20 ++++ 2 files changed, 122 insertions(+) create mode 100644 pages/events/[year]/[term]/index.tsx create mode 100644 pages/events/[year]/[term]/term.module.css diff --git a/pages/events/[year]/[term]/index.tsx b/pages/events/[year]/[term]/index.tsx new file mode 100644 index 00000000..5f3517a0 --- /dev/null +++ b/pages/events/[year]/[term]/index.tsx @@ -0,0 +1,102 @@ +import { MDXRemote } from "next-mdx-remote"; +import React from "react"; + +import { MiniEventCard } from "../../../../components/MiniEventCard"; +import { + getEventYears, + getEventTermsByYear, + getEventsByTerm, + getEventBySlug, + Event, +} from "../../../../lib/events"; + +import styles from "./term.module.css"; + +export async function getStaticPaths(): Promise<{ + paths: { + params: { + year: string; + term: string; + }; + }[]; + fallback: boolean; +}> { + const years = await getEventYears(); + const paths = []; + for (const year of years) { + const terms = await getEventTermsByYear(year); + const yearPaths = terms.map((curTerm) => ({ + params: { year: year, term: curTerm }, + })); + paths.push(...yearPaths); + } + + return { + paths: paths, + fallback: false, + }; +} + +interface Context { + params: { + year: string; + term: string; + }; +} + +interface Props { + term: string; + year: string; + pastEvents: string[]; + futureEvents: string[]; +} + +export async function getStaticProps(context: Context): Promise<{ + props: Props; +}> { + const events = await Promise.all( + ( + await getEventsByTerm(context.params.year, context.params.term) + ).map((file: string) => + getEventBySlug(context.params.year, context.params.term, file) + ) + ); + + const curtime = Date.now(); + + return { + props: { + term: context.params.term, + year: context.params.year, + events: events, + }, + }; +} + +const Term = (props: Props) => { + return ( +
+

+ Events Archive: + + {` ${props.term.charAt(0).toUpperCase()}${props.term.slice(1)} ${ + props.year + }`} + +

+
+
+ {props.events.map(({ content, metadata }) => ( + } + key={metadata.name + metadata.date.toString()} + /> + ))} +
+
+ ); +}; + +export default Term; diff --git a/pages/events/[year]/[term]/term.module.css b/pages/events/[year]/[term]/term.module.css new file mode 100644 index 00000000..1347b822 --- /dev/null +++ b/pages/events/[year]/[term]/term.module.css @@ -0,0 +1,20 @@ +.main { + margin: auto; + margin-top: 7rem; + margin-bottom: 14rem; + width: 50rem; +} + +.heading2 { + font-weight: 700; + font-size: 2.25rem; + color: var(--purple-2); +} + +.blue { + color: var(--blue-2) +} + +.miniEventCards { + margin-top: 30px; +} \ No newline at end of file