From 3c4b9f4117c0e87e4a72b85634a4fe888e7f4012 Mon Sep 17 00:00:00 2001 From: Kevin Li Date: Thu, 2 Jul 2020 21:11:24 -0700 Subject: [PATCH] scroll to month can now be not animated --- .../xcshareddata/swiftpm/Package.resolved | 4 ++-- .../ExampleMonthlyCalendarView.swift | 13 +++++++++++++ Package.resolved | 4 ++-- .../ObservableObjects/ElegantCalendarManager.swift | 4 ++-- .../ObservableObjects/MonthlyCalendarManager.swift | 4 ++-- 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Example/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Example/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 0c9b2da..e61ce66 100644 --- a/Example/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Example/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -6,8 +6,8 @@ "repositoryURL": "https://github.com/ThasianX/ElegantPages", "state": { "branch": null, - "revision": "890aa0e01dcd04bf77ae8250dd6fc6c9228f54bf", - "version": "1.0.0" + "revision": "450ed57eed98174448929918342889b255c664d1", + "version": "1.1.0" } } ] diff --git a/Example/Example/Individual Views/ExampleMonthlyCalendarView.swift b/Example/Example/Individual Views/ExampleMonthlyCalendarView.swift index 5e1a05c..74c6faf 100644 --- a/Example/Example/Individual Views/ExampleMonthlyCalendarView.swift +++ b/Example/Example/Individual Views/ExampleMonthlyCalendarView.swift @@ -17,6 +17,7 @@ struct ExampleMonthlyCalendarView: View { initialMonth: .daysFromToday(30)) visitsByDay = Dictionary(grouping: ascVisits, by: { currentCalendar.startOfDay(for: $0.arrivalDate) }) calendarManager.datasource = self + calendarManager.delegate = self } var body: some View { @@ -44,6 +45,18 @@ extension ExampleMonthlyCalendarView: ElegantCalendarDataSource { } +extension ExampleMonthlyCalendarView: ElegantCalendarDelegate { + + func calendar(willDisplayMonth date: Date) { + print("Will show month: \(date)") + } + + func calendar(didSelectDate date: Date) { + print("Selected date: \(date)") + } + +} + struct ExampleMonthlyCalendarView_Previews: PreviewProvider { static var previews: some View { ExampleYearlyCalendarView(ascVisits: Visit.mocks(start: .daysFromToday(-365*2), end: .daysFromToday(365*2))) diff --git a/Package.resolved b/Package.resolved index 09dfcea..e61ce66 100644 --- a/Package.resolved +++ b/Package.resolved @@ -6,8 +6,8 @@ "repositoryURL": "https://github.com/ThasianX/ElegantPages", "state": { "branch": null, - "revision": "bf870757cb2f886ef0697d75111a3e99d39fe5f5", - "version": "1.0.1" + "revision": "450ed57eed98174448929918342889b255c664d1", + "version": "1.1.0" } } ] diff --git a/Sources/ElegantCalendar/Helpers/Models/ObservableObjects/ElegantCalendarManager.swift b/Sources/ElegantCalendar/Helpers/Models/ObservableObjects/ElegantCalendarManager.swift index 1055e5d..fc554fc 100644 --- a/Sources/ElegantCalendar/Helpers/Models/ObservableObjects/ElegantCalendarManager.swift +++ b/Sources/ElegantCalendar/Helpers/Models/ObservableObjects/ElegantCalendarManager.swift @@ -89,8 +89,8 @@ public class ElegantCalendarManager: ObservableObject { }.store(in: &anyCancellable) } - public func scrollToMonth(_ month: Date) { - monthlyManager.scrollToMonth(month) + public func scrollToMonth(_ month: Date, animated: Bool = true) { + monthlyManager.scrollToMonth(month, animated: animated) } } diff --git a/Sources/ElegantCalendar/Helpers/Models/ObservableObjects/MonthlyCalendarManager.swift b/Sources/ElegantCalendar/Helpers/Models/ObservableObjects/MonthlyCalendarManager.swift index 3f1e458..3d7b4ee 100644 --- a/Sources/ElegantCalendar/Helpers/Models/ObservableObjects/MonthlyCalendarManager.swift +++ b/Sources/ElegantCalendar/Helpers/Models/ObservableObjects/MonthlyCalendarManager.swift @@ -77,10 +77,10 @@ extension MonthlyCalendarManager { delegate?.calendar(didSelectDate: day) } - public func scrollToMonth(_ month: Date) { + func scrollToMonth(_ month: Date, animated: Bool = true) { if !calendar.isDate(currentMonth, equalTo: month, toGranularities: [.month, .year]) { let page = calendar.monthsBetween(startDate, and: month) - pagerManager.scroll(to: page) + pagerManager.scroll(to: page, animated: animated) } }