@@ -1,6 +1,7 @@
11import Head from "next/head";
22import Link from "next/link";
33import React, { useState, useEffect } from "react";
4+import { DateTime } from "luxon";
45
56import Container from "../components/Container";
67import Section from "../components/Section";
@@ -18,6 +19,7 @@ import {
1819 getAllEvents,
1920 formatDate,
2021 getOpenGrantsCount,
22+ generateRealtimeDate,
2123} from "../lib/lib";
2224import { contact, eventKeys } from "../lib/constants";
2325import { useLocalStorage } from "../lib/hooks";
@@ -299,7 +301,23 @@ export async function getStaticProps() {
299301 "blog"
300302 );
301303
302− const events = getAllEvents(eventKeys, "events");
304+ const now = DateTime.now();
305+
306+ const events = getAllEvents(eventKeys, "events")
307+ .filter((event) => {
308+ const starts = generateRealtimeDate(event.starts);
309+ return starts > now;
310+ })
311+ .sort((a, b) => {
312+ const aStarts = generateRealtimeDate(a.starts).ts;
313+ const bStarts = generateRealtimeDate(b.starts).ts;
314+ if (aStarts > bStarts) {
315+ return 1;
316+ } else if (aStarts === bStarts) {
317+ return 0;
318+ }
319+ return -1;
320+ });
303321
304322 return {
305323 props: { posts, events, openGrantsCount },