Add past/future events props

This commit is contained in:
Jared He 2021-08-18 11:17:36 -05:00
parent 16616fe691
commit 180bea746d
1 changed files with 37 additions and 10 deletions

View File

@ -47,33 +47,48 @@ interface Context {
interface Props { interface Props {
term: string; term: string;
year: string; year: string;
pastEvents: string[]; pastEvents: Event[];
futureEvents: string[]; futureEvents: Event[];
} }
export async function getStaticProps(context: Context): Promise<{ export async function getStaticProps(context: Context): Promise<{
props: Props; props: Props;
}> { }> {
const events = await Promise.all( const events = (
( await Promise.all(
await getEventsByTerm(context.params.year, context.params.term) (
).map((file: string) => await getEventsByTerm(context.params.year, context.params.term)
getEventBySlug(context.params.year, context.params.term, file) ).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 curtime = Date.now(); 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 { return {
props: { props: {
term: context.params.term, term: context.params.term,
year: context.params.year, year: context.params.year,
events: events, pastEvents: pastEvents,
futureEvents: futureEvents,
}, },
}; };
} }
const Term = (props: Props) => { const Term = (props: Props) => {
console.log(props.pastEvents.length)
console.log(props.futureEvents.length)
return ( return (
<div className={styles.main}> <div className={styles.main}>
<h2 className={styles.heading2}> <h2 className={styles.heading2}>
@ -85,8 +100,20 @@ const Term = (props: Props) => {
</span> </span>
</h2> </h2>
<hr /> <hr />
PAST
<div className={styles.miniEventCards}> <div className={styles.miniEventCards}>
{props.events.map(({ content, metadata }) => ( {props.pastEvents.map(({ content, metadata }) => (
<MiniEventCard
{...metadata}
date={new Date(metadata.date)}
description={<MDXRemote {...content} />}
key={metadata.name + metadata.date.toString()}
/>
))}
</div>
FUTURA
<div className={styles.miniEventCards}>
{props.futureEvents.map(({ content, metadata }) => (
<MiniEventCard <MiniEventCard
{...metadata} {...metadata}
date={new Date(metadata.date)} date={new Date(metadata.date)}