And now with files
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import type { EventItem } from './fallback-data';
|
||||
|
||||
function getEventEndTime(event: EventItem): number {
|
||||
const value = event.end_datetime || event.start_datetime;
|
||||
const timestamp = new Date(value).getTime();
|
||||
return Number.isFinite(timestamp) ? timestamp : 0;
|
||||
}
|
||||
|
||||
function getEventStartTime(event: EventItem): number {
|
||||
const timestamp = new Date(event.start_datetime).getTime();
|
||||
return Number.isFinite(timestamp) ? timestamp : 0;
|
||||
}
|
||||
|
||||
export function isUpcomingEvent(event: EventItem, now = new Date()): boolean {
|
||||
return getEventEndTime(event) >= now.getTime();
|
||||
}
|
||||
|
||||
export function sortEventsByStartDate(events: EventItem[]): EventItem[] {
|
||||
return [...events].sort((left, right) => getEventStartTime(left) - getEventStartTime(right));
|
||||
}
|
||||
|
||||
export function getUpcomingEvents(events: EventItem[], now = new Date()): EventItem[] {
|
||||
return sortEventsByStartDate(events.filter((event) => isUpcomingEvent(event, now)));
|
||||
}
|
||||
Reference in New Issue
Block a user