mirror of
https://github.com/web3privacy/web
synced 2024-10-15 18:26:27 +02:00
Show past events as past events
This commit is contained in:
parent
dd8adc6924
commit
bc637c3457
3 changed files with 24 additions and 7 deletions
|
@ -5,6 +5,7 @@ import core from '../core.json';
|
||||||
import EventItem from '../components/EventItem.astro';
|
import EventItem from '../components/EventItem.astro';
|
||||||
import { isFuture } from 'date-fns';
|
import { isFuture } from 'date-fns';
|
||||||
import { types, countryNames } from '../lib/events.js';
|
import { types, countryNames } from '../lib/events.js';
|
||||||
|
import { isFutureDate } from '../lib/date';
|
||||||
|
|
||||||
const { type: selectedType } = Astro.props;
|
const { type: selectedType } = Astro.props;
|
||||||
const { country: selectedCountry } = Astro.props;
|
const { country: selectedCountry } = Astro.props;
|
||||||
|
@ -43,12 +44,22 @@ function eventsFilter (year, future=true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const pastYears = [...new Set(events.map(e => e.date.match(/^(\d{4})/)[1]))];
|
const pastYears = [...new Set(events.map(e => e.date.match(/^(\d{4})/)[1]))];
|
||||||
const upcoming = events.filter(x => x.date.match(/^2024/))
|
|
||||||
|
let upcomingEvents = [];
|
||||||
|
let pastEvents = [];
|
||||||
|
for (const e of events) {
|
||||||
|
if (isFutureDate(e.date)) {
|
||||||
|
upcomingEvents.push(e)
|
||||||
|
} else {
|
||||||
|
pastEvents.push(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const upcoming = events.filter(x => isFutureDate(x.date))
|
||||||
|
|
||||||
const past = {}
|
const past = {}
|
||||||
let pastTotal = 0
|
let pastTotal = 0
|
||||||
for (const year of pastYears.reverse()) {
|
for (const year of pastYears.reverse()) {
|
||||||
past[year] = events.filter(eventsFilter(year, false)).reverse()
|
past[year] = pastEvents.filter(eventsFilter(year, false)).reverse()
|
||||||
pastTotal += past[year].length
|
pastTotal += past[year].length
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
8
src/lib/date.js
Normal file
8
src/lib/date.js
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
import { isPast } from 'date-fns';
|
||||||
|
|
||||||
|
export function isFutureDate (dt) {
|
||||||
|
if (dt.match(/^\d{4}-\d{2}-\d{2}$/) && isPast(new Date(dt))) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
|
@ -7,8 +7,9 @@ import articles from '../articles.json';
|
||||||
import talks from '../talks.json';
|
import talks from '../talks.json';
|
||||||
import explorer from '../explorer.json';
|
import explorer from '../explorer.json';
|
||||||
import dbRepo from '../db-repo.json';
|
import dbRepo from '../db-repo.json';
|
||||||
import { isPast, format } from 'date-fns';
|
import { format } from 'date-fns';
|
||||||
import EventItem from '../components/EventItem.astro';
|
import EventItem from '../components/EventItem.astro';
|
||||||
|
import { isFutureDate } from '../lib/date';
|
||||||
|
|
||||||
const events = core.events;
|
const events = core.events;
|
||||||
|
|
||||||
|
@ -16,10 +17,7 @@ const upcomingEvents = []
|
||||||
let eventsPast = 0
|
let eventsPast = 0
|
||||||
let eventsUpcoming = 0
|
let eventsUpcoming = 0
|
||||||
for (const ev of events) {
|
for (const ev of events) {
|
||||||
let future = true
|
let future = isFutureDate(ev.date)
|
||||||
if (ev.date.match(/^\d{4}-\d{2}-\d{2}$/) && isPast(new Date(ev.date))) {
|
|
||||||
future = false
|
|
||||||
}
|
|
||||||
if (future) {
|
if (future) {
|
||||||
upcomingEvents.push(ev)
|
upcomingEvents.push(ev)
|
||||||
eventsUpcoming++
|
eventsUpcoming++
|
||||||
|
|
Loading…
Reference in a new issue