From 3bdefc25116a1d8281b80295a86b23f3374e2715 Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Sat, 1 Jun 2024 01:01:55 +0200 Subject: [PATCH] fix tournaments sorting --- PadelClub/Views/Navigation/Agenda/ActivityView.swift | 8 +++----- PadelClub/Views/Navigation/Agenda/EventListView.swift | 10 ++++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/PadelClub/Views/Navigation/Agenda/ActivityView.swift b/PadelClub/Views/Navigation/Agenda/ActivityView.swift index bb07f63..f1e080b 100644 --- a/PadelClub/Views/Navigation/Agenda/ActivityView.swift +++ b/PadelClub/Views/Navigation/Agenda/ActivityView.swift @@ -25,13 +25,11 @@ struct ActivityView: View { var runningTournaments: [FederalTournamentHolder] { dataStore.tournaments.filter({ $0.endDate == nil }) .filter({ federalDataViewModel.isTournamentValidForFilters($0) }) - .sorted(using: SortDescriptor(\.startDate)) } var endedTournaments: [Tournament] { dataStore.tournaments.filter({ $0.endDate != nil }) .filter({ federalDataViewModel.isTournamentValidForFilters($0) }) - .sorted(using: SortDescriptor(\.startDate, order: .reverse)) } // // func _activityStatus() -> String? { @@ -64,11 +62,11 @@ struct ActivityView: View { List { switch navigation.agendaDestination! { case .activity: - EventListView(tournaments: runningTournaments, viewStyle: viewStyle) + EventListView(tournaments: runningTournaments, viewStyle: viewStyle, sortAscending: true) case .history: - EventListView(tournaments: endedTournaments, viewStyle: viewStyle) + EventListView(tournaments: endedTournaments, viewStyle: viewStyle, sortAscending: false) case .tenup: - EventListView(tournaments: federalDataViewModel.federalTournaments, viewStyle: viewStyle) + EventListView(tournaments: federalDataViewModel.federalTournaments, viewStyle: viewStyle, sortAscending: true) .id(uuid) } } diff --git a/PadelClub/Views/Navigation/Agenda/EventListView.swift b/PadelClub/Views/Navigation/Agenda/EventListView.swift index b5ea073..7cfcb48 100644 --- a/PadelClub/Views/Navigation/Agenda/EventListView.swift +++ b/PadelClub/Views/Navigation/Agenda/EventListView.swift @@ -15,13 +15,15 @@ struct EventListView: View { let tournaments: [FederalTournamentHolder] let viewStyle: AgendaDestination.ViewStyle - + let sortAscending: Bool + var body: some View { let groupedTournamentsByDate = Dictionary(grouping: navigation.agendaDestination == .tenup ? federalDataViewModel.filteredFederalTournaments : tournaments) { $0.startDate.startOfMonth } switch viewStyle { case .list: - ForEach(Array(groupedTournamentsByDate.keys), id: \.self) { section in - if let _tournaments = groupedTournamentsByDate[section] { + ForEach(groupedTournamentsByDate.keys.sorted(by: sortAscending ? { $0 < $1 } : { $0 > $1 }), id: \.self) { section in + if let _tournaments = groupedTournamentsByDate[section]?.sorted(by: sortAscending ? { $0.startDate < $1.startDate } : { $0.startDate > $1.startDate } + ) { Section { _listView(_tournaments) } header: { @@ -117,5 +119,5 @@ struct EventListView: View { } #Preview { - EventListView(tournaments: [], viewStyle: .calendar) + EventListView(tournaments: [], viewStyle: .calendar, sortAscending: true) }