From b98d7b9e0674ff24b9d998e5e9bad5000b2e9b78 Mon Sep 17 00:00:00 2001 From: Amy Date: Tue, 17 Aug 2021 16:44:37 -0400 Subject: [PATCH] Add event info page getStaticProps --- pages/events/[year]/[term]/[event].tsx | 30 ++++++++++++-------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/pages/events/[year]/[term]/[event].tsx b/pages/events/[year]/[term]/[event].tsx index 174566de..82e428a2 100644 --- a/pages/events/[year]/[term]/[event].tsx +++ b/pages/events/[year]/[term]/[event].tsx @@ -4,24 +4,21 @@ import { GetStaticPaths, GetStaticProps } from "next"; import { MDXRemote } from "next-mdx-remote"; import React from "react"; -import { EventCard } from "../../../../components/EventCard"; +import { EventCard } from "@/components/EventCard"; import { Event, getEventYears, getEventTermsByYear, getEventsByTerm, getEventBySlug, -} from "../../../../lib/events"; +} from "@/lib/events"; export default function EventInfoPage(props: Props) { return

Hello, world!

; } interface Props { - // event: Event; - event: string; - poster?: string; - registerLink?: string; + event: Event; } interface Params extends ParsedUrlQuery { @@ -30,12 +27,12 @@ interface Params extends ParsedUrlQuery { event: string; } -export const getStaticProps: GetStaticProps = async () => { - return { - props: { - event: "test", - }, - }; +export const getStaticProps: GetStaticProps = async ( + context +) => { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const { year, term, event } = context.params!; + return { props: { event: await getEventBySlug(year, term, event) } }; }; export const getStaticPaths: GetStaticPaths = async () => { @@ -51,10 +48,11 @@ export const getStaticPaths: GetStaticPaths = async () => { const events = ( await Promise.all( terms.map(async (term) => { - const eventsInYear = await getEventsByTerm(term.year, term.term); - return eventsInYear.map((event) => { - return { year: term.year, term: term.term, event: event }; - }); + const eventsInTerm = await getEventsByTerm(term.year, term.term); + return eventsInTerm.map((event) => ({ + ...term, + event, + })); }) ) ).flat();