diff --git a/macos/Overview/Model/DemoStore.swift b/macos/Overview/Model/DemoStore.swift index e5ea123..e63f52c 100644 --- a/macos/Overview/Model/DemoStore.swift +++ b/macos/Overview/Model/DemoStore.swift @@ -23,31 +23,37 @@ import Foundation extension Calendar { func events(calendar: CalendarInstance, + year: Int, weeks: [Int], days: [Weekday], - year: Int, - hour: Int, + start: DateComponents, duration: DateComponents, title: String) -> [CalendarEvent] { let events = weeks - .map { weeklyOrdinal -> [CalendarEvent] in + .map { weekdayOrdinal -> [CalendarEvent] in return days.map { weekday -> CalendarEvent in - let components = DateComponents(year: year, - hour: hour, - weekday: weekday.rawValue, - weekdayOrdinal: weeklyOrdinal) + var components = start + components.year = year + components.weekday = weekday.rawValue + components.weekdayOrdinal = weekdayOrdinal let startDate = date(from: components)! let endDate = date(byAdding: duration, to: startDate)! - return CalendarEvent(calendar: calendar, - startDate: startDate, - endDate: endDate, - title: title) + return CalendarEvent(calendar: calendar, startDate: startDate, endDate: endDate, title: title) } } .reduce([], +) return events } + func event(calendar: CalendarInstance, + start: DateComponents, + duration: DateComponents, + title: String) -> CalendarEvent { + let startDate = date(from: start)! + let endDate = date(byAdding: duration, to: startDate)! + return CalendarEvent(calendar: calendar, startDate: startDate, endDate: endDate, title: title) + } + } class DemoStore: CalendarStore { @@ -62,49 +68,235 @@ class DemoStore: CalendarStore { let workCalendar = CalendarInstance(title: "Work", color: .red) let whereCalendar = CalendarInstance(title: "Where", color: .orange) - let currentYear = Date.now.year - var calendar = Calendar.gregorian calendar.timeZone = Calendar.current.timeZone calendar.firstWeekday = 1 - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "cccc, d M yyyy, HH:mm" - - let weeks = 10 - - let coffeeWithTom = calendar.events(calendar: homeCalendar, - weeks: Array(1.. \(endDay)") + for i in startDay.. [CalendarInstance] {