From c2b6bb6b8ecd71684aa37ca991af6fb8ddcc8513 Mon Sep 17 00:00:00 2001 From: Franco Speziali Date: Wed, 16 Mar 2022 08:39:09 +0100 Subject: [PATCH] Added Event class, which represents a single event in the calendar --- src/Events/Event.ts | 17 +++++++++++++++++ src/Events/index.ts | 15 +++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/Events/Event.ts create mode 100644 src/Events/index.ts diff --git a/src/Events/Event.ts b/src/Events/Event.ts new file mode 100644 index 0000000..052b872 --- /dev/null +++ b/src/Events/Event.ts @@ -0,0 +1,17 @@ +import { Event as _Event } from "../types"; + +export default class Event implements _Event { + date: Date; + title: string; + text?: string; + icon?: string; + backgroundColor?: string; + + constructor({ date, title, text, icon, backgroundColor }) { + this.date = new Date(date); + this.title = title; + this.text = text; + this.icon = icon; + this.backgroundColor = backgroundColor; + } +} diff --git a/src/Events/index.ts b/src/Events/index.ts new file mode 100644 index 0000000..531848d --- /dev/null +++ b/src/Events/index.ts @@ -0,0 +1,15 @@ +import Event from "./Event"; + +export default class Events { + sortedEvents: Event[]; + + constructor(events: Event[]) { + this.sortedEvents = this.processEvents(events); + } + + processEvents(events): Event[] { + const _events = events.map((event) => new Event(event)); + + return _events.sort((a, b) => a.date - b.date); + } +}