From 03197ee04852e0af474711a0ec3eb3807d269acb Mon Sep 17 00:00:00 2001 From: Jared He <66887902+jaredjhe@users.noreply.github.com> Date: Wed, 18 Aug 2021 16:57:09 -0500 Subject: [PATCH] Add index.tsx --- pages/events/[year]/[term]/index.tsx | 145 --------------------- pages/events/[year]/[term]/term.module.css | 20 --- pages/events/index.tsx | 35 +++++ 3 files changed, 35 insertions(+), 165 deletions(-) delete mode 100644 pages/events/[year]/[term]/index.tsx delete mode 100644 pages/events/[year]/[term]/term.module.css create mode 100644 pages/events/index.tsx diff --git a/pages/events/[year]/[term]/index.tsx b/pages/events/[year]/[term]/index.tsx deleted file mode 100644 index c9e6f876..00000000 --- a/pages/events/[year]/[term]/index.tsx +++ /dev/null @@ -1,145 +0,0 @@ -import { MDXRemote } from "next-mdx-remote"; -import React from "react"; - -import { EventCard } from "../../../../components/EventCard"; -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: Event[]; - futureEvents: Event[]; -} - -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) - ) - ) - ).sort( - (a, b) => - new Date(a.metadata.date).getTime() - new Date(b.metadata.date).getTime() - ); - - const pastEvents = events.filter( - (event) => new Date(event.metadata.date).getTime() < Date.now() - ); - - const futureEvents = events.filter( - (event) => new Date(event.metadata.date).getTime() >= Date.now() - ); - - return { - props: { - term: context.params.term, - year: context.params.year, - pastEvents: pastEvents, - futureEvents: futureEvents, - }, - }; -} - -const Term = (props: Props) => { - const hasPastEvents = props.pastEvents.length !== 0; - const hasFutureEvents = props.futureEvents.length !== 0; - - return ( -
- {hasFutureEvents && ( - <> -

Upcoming Events:

-
-
- {props.futureEvents.map(({ content, metadata }) => ( - - - - ))} -
- - )} - {hasFutureEvents && hasPastEvents && ( - <> -

Past Events:

-
- - )} - {!hasFutureEvents && ( - <> -

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

-
- - )} -
- {props.pastEvents.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 deleted file mode 100644 index b1a6f216..00000000 --- a/pages/events/[year]/[term]/term.module.css +++ /dev/null @@ -1,20 +0,0 @@ -.main { - margin: auto; - margin-top: 7rem; - margin-bottom: 14rem; - width: 50rem; -} - -.heading2 { - font-weight: 700; - font-size: 2.25rem; - color: var(--primary-heading); -} - -.blue { - color: var(--primary-accent) -} - -.miniEventCards { - margin-top: 30px; -} \ No newline at end of file diff --git a/pages/events/index.tsx b/pages/events/index.tsx new file mode 100644 index 00000000..c233a9c9 --- /dev/null +++ b/pages/events/index.tsx @@ -0,0 +1,35 @@ +import Term, { + getStaticProps as termGetStaticProps, +} from "./[year]/[term]/index"; + +export async function getStaticProps() { + const date = new Date(); + let term = ""; + const year = date.getUTCFullYear(); + if ( + new Date(`${year}-01-01`).getTime() <= date.getTime() && + date.getTime() <= new Date(`${year}-04-30`).getTime() + ) { + term = "winter"; + } else if ( + new Date(`${year}-05-01`).getTime() <= date.getTime() && + date.getTime() <= new Date(`${year}-08-31`).getTime() + ) { + term = "spring"; + } else if ( + new Date(`${year}-09-01`).getTime() <= date.getTime() && + date.getTime() <= new Date(`${year}-12-31`).getTime() + ) { + term = "fall"; + } + + const context = { + params: { + year: `${year}`, + term: term, + }, + }; + return await termGetStaticProps(context); +} + +export default Term;