diff --git a/pages/events/[year]/index.module.css b/pages/events/[year]/index.module.css new file mode 100644 index 00000000..ccb2efe0 --- /dev/null +++ b/pages/events/[year]/index.module.css @@ -0,0 +1,21 @@ +.main { + margin-top: calc(60rem / 16); +} + +.main > h2 { + padding-bottom: calc(1rem / 16); + border-bottom: 1px solid var(--primary-heading); +} + +.blue { + color: var(--primary-accent); +} + +.list { + list-style: none; + padding: 0; +} + +.list > li { + line-height: 3; +} diff --git a/pages/events/[year]/index.tsx b/pages/events/[year]/index.tsx new file mode 100644 index 00000000..a5cef72a --- /dev/null +++ b/pages/events/[year]/index.tsx @@ -0,0 +1,61 @@ +import { ParsedUrlQuery } from "querystring"; + +import { GetStaticPaths, GetStaticProps } from "next"; +import React from "react"; + +import { Link } from "@/components/Link"; +import { getEventYears, getEventTermsByYear } from "@/lib/events"; + +import styles from "./index.module.css"; + +interface Props { + year: string; + terms: string[]; +} + +export default function Year(props: Props) { + return ( +
+

+ Events Archive:{` ${props.year}`} +

+ +
+ ); +} + +interface Params extends ParsedUrlQuery { + year: string; +} + +export const getStaticProps: GetStaticProps = async ( + context +) => { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const { year } = context.params!; + return { + props: { + year: year, + terms: await getEventTermsByYear(year), + }, + }; +}; + +export const getStaticPaths: GetStaticPaths = async () => { + const years = await getEventYears(); + const paths = years.map((curYear) => ({ + params: { year: curYear }, + })); + return { + paths: paths, + fallback: false, + }; +};