import { GetStaticProps } from "next"; import { MDXRemote } from "next-mdx-remote"; import React from "react"; import { ConnectWithUs } from "@/components/ConnectWithUs"; import { DefaultLayout } from "@/components/DefaultLayout"; import { EmailSignup } from "@/components/EmailSignup"; import { EventDescriptionCard } from "@/components/EventDescriptionCard"; import { Image } from "@/components/Image"; import { Link } from "@/components/Link"; import { NewsCard } from "@/components/NewsCard"; import { SocialLinks } from "@/components/SocialLinks"; import { Event, getUpcomingEvents } from "@/lib/events"; import { News, getRecentNews } from "@/lib/news"; import styles from "./index.module.css"; interface Props { numberOfEvents: number; // total number of upcoming events events: Event[]; // array of 0 - 2 events news: News; } export default function Home(props: Props) { return ( <>
CSC Logo

Computer Science Club

University of Waterloo's
student computing community

CSC mascot Codey, a blue shiba with circular glasses

Upcoming Events

See past events{" "} here


{props.numberOfEvents == 0 ? (

There are no upcoming events right now. Please check back later!

) : null}
{props.events.length > 0 ? props.events.map((event) => ( )) : null}
{props.numberOfEvents > 2 ? (

See more upcoming events{" "} here

) : null}

News

Updates from our execs!
See past news{" "} here


{ }
); } Home.Layout = function HomeLayout(props: { children: React.ReactNode }) { return
{props.children}
; }; export const getStaticProps: GetStaticProps = async () => { const upcomingEvents = await getUpcomingEvents(); const recentNews = await getRecentNews(); return { props: { numberOfEvents: upcomingEvents.length, events: upcomingEvents.slice(0, 2), news: recentNews[0], }, }; };