mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-27 15:14:33 +00:00
Merge pull request #174 from Ebullioscopic/feature/calendar
Hide all day events thingy
This commit is contained in:
commit
d451ea34fd
3 changed files with 39 additions and 8 deletions
|
|
@ -2734,6 +2734,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"All-Day Events" : {
|
||||
"comment" : "A section header that allows the user to hide all-day events from the calendar view.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Allow Access" : {
|
||||
"localizations" : {
|
||||
"ar" : {
|
||||
|
|
@ -19127,6 +19131,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Turn this off to include all-day entries in the notch calendar and reminder live activity." : {
|
||||
"comment" : "A description of why the user can disable the \"Hide all-day events\" toggle.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Two-finger swipe up on notch to close, two-finger swipe down on notch to open when **Open notch on hover** option is disabled" : {
|
||||
"comment" : "A footer text explaining the gesture control functionality.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
|
|
|
|||
|
|
@ -173,6 +173,8 @@ struct CalendarView: View {
|
|||
@EnvironmentObject var vm: DynamicIslandViewModel
|
||||
@ObservedObject private var calendarManager = CalendarManager.shared
|
||||
@State private var selectedDate = Date()
|
||||
@Default(.hideAllDayEvents) private var hideAllDayEvents
|
||||
@Default(.hideCompletedReminders) private var hideCompletedReminders
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 0) {
|
||||
|
|
@ -205,7 +207,9 @@ struct CalendarView: View {
|
|||
}
|
||||
|
||||
let filteredEvents = EventListView.filteredEvents(
|
||||
events: calendarManager.events
|
||||
events: calendarManager.events,
|
||||
hideCompletedReminders: hideCompletedReminders,
|
||||
hideAllDayEvents: hideAllDayEvents
|
||||
)
|
||||
if filteredEvents.isEmpty {
|
||||
EmptyEventsView(selectedDate: selectedDate)
|
||||
|
|
@ -260,15 +264,21 @@ struct EventListView: View {
|
|||
let events: [EventModel]
|
||||
@Default(.autoScrollToNextEvent) private var autoScrollToNextEvent
|
||||
@Default(.showFullEventTitles) private var showFullEventTitles
|
||||
@Default(.hideCompletedReminders) private var hideCompletedReminders
|
||||
@Default(.hideAllDayEvents) private var hideAllDayEvents
|
||||
|
||||
static func filteredEvents(events: [EventModel]) -> [EventModel] {
|
||||
static func filteredEvents(
|
||||
events: [EventModel],
|
||||
hideCompletedReminders: Bool,
|
||||
hideAllDayEvents: Bool
|
||||
) -> [EventModel] {
|
||||
events.filter { event in
|
||||
if event.type.isReminder {
|
||||
if case .reminder(let completed) = event.type {
|
||||
return !completed || !Defaults[.hideCompletedReminders]
|
||||
return !completed || !hideCompletedReminders
|
||||
}
|
||||
}
|
||||
if event.isAllDay && Defaults[.hideAllDayEvents] {
|
||||
if event.isAllDay && hideAllDayEvents {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
|
@ -276,7 +286,11 @@ struct EventListView: View {
|
|||
}
|
||||
|
||||
private var filteredEvents: [EventModel] {
|
||||
Self.filteredEvents(events: events)
|
||||
Self.filteredEvents(
|
||||
events: events,
|
||||
hideCompletedReminders: hideCompletedReminders,
|
||||
hideAllDayEvents: hideAllDayEvents
|
||||
)
|
||||
}
|
||||
|
||||
private func scrollToRelevantEvent(proxy: ScrollViewProxy) {
|
||||
|
|
|
|||
|
|
@ -1731,8 +1731,6 @@ struct CalendarSettings: View {
|
|||
.settingsHighlight(id: highlightID("Show calendar"))
|
||||
|
||||
Section(header: Text("Event List")) {
|
||||
Toggle("Hide all-day events", isOn: $hideAllDayEvents)
|
||||
.settingsHighlight(id: highlightID("Hide all-day events"))
|
||||
Toggle("Hide completed reminders", isOn: $hideCompletedReminders)
|
||||
.settingsHighlight(id: highlightID("Hide completed reminders"))
|
||||
Toggle("Show full event titles", isOn: $showFullEventTitles)
|
||||
|
|
@ -1740,6 +1738,17 @@ struct CalendarSettings: View {
|
|||
Toggle("Auto-scroll to next event", isOn: $autoScrollToNextEvent)
|
||||
.settingsHighlight(id: highlightID("Auto-scroll to next event"))
|
||||
}
|
||||
|
||||
Section(header: Text("All-Day Events")) {
|
||||
Toggle("Hide all-day events", isOn: $hideAllDayEvents)
|
||||
.settingsHighlight(id: highlightID("Hide all-day events"))
|
||||
.disabled(!showCalendar)
|
||||
|
||||
Text("Turn this off to include all-day entries in the notch calendar and reminder live activity.")
|
||||
.font(.caption)
|
||||
.foregroundStyle(.secondary)
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
}
|
||||
|
||||
Section(header: Text("Reminder Live Activity")) {
|
||||
Defaults.Toggle("Enable reminder live activity", key: .enableReminderLiveActivity)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue