on master help sign in
homepage: sort events by ongoing > earliest future > closest past (#1407)
e940609Pyry Kovanen
pages/index.js+34−1
@@ -359,7 +359,40 @@ export async function getStaticProps() {
359
359
360 const events = getAllEvents(eventKeys, "events");
360 const events = getAllEvents(eventKeys, "events");
361
361
362+ const now = DateTime.now();
363+
364+ const pastEvents = events.filter((event) => {
365+ const ends = generateRealtimeDate(event.ends);
366+ return ends < now;
367+ });
368+
369+ const futureEvents = events
370+ .filter((event) => {
371+ const starts = generateRealtimeDate(event.starts);
372+ return starts > now;
373+ })
374+ .sort((a, b) => {
375+ const aStarts = generateRealtimeDate(a.starts).ts;
376+ const bStarts = generateRealtimeDate(b.starts).ts;
377+ if (aStarts > bStarts) {
378+ return 1;
379+ } else if (aStarts === bStarts) {
380+ return 0;
381+ }
382+ return -1;
383+ });
384+
385+ const happeningNow = events.filter((event) => {
386+ const starts = generateRealtimeDate(event.starts);
387+ const ends = generateRealtimeDate(event.ends);
388+ return starts > DateTime.now() && ends < now;
389+ });
390+
362 return {
391 return {
363− props: { posts, events, openGrantsCount },
392+ props: {
393+ posts,
394+ openGrantsCount,
395+ events: happeningNow.concat(futureEvents).concat(pastEvents),
396+ },
364 };
397 };
365}
398}