diff --git a/PadelClub/Data/TeamRegistration.swift b/PadelClub/Data/TeamRegistration.swift index 1c90fef..58c1b62 100644 --- a/PadelClub/Data/TeamRegistration.swift +++ b/PadelClub/Data/TeamRegistration.swift @@ -503,10 +503,6 @@ final class TeamRegistration: ModelObject, Storable { else { confirmationDate = nil } } - func didConfirmSummon() -> Bool { - confirmationDate != nil - } - func tournamentObject() -> Tournament? { return Store.main.findById(tournament) } diff --git a/PadelClub/Views/Calling/TeamsCallingView.swift b/PadelClub/Views/Calling/TeamsCallingView.swift index 4575acb..86e4d23 100644 --- a/PadelClub/Views/Calling/TeamsCallingView.swift +++ b/PadelClub/Views/Calling/TeamsCallingView.swift @@ -32,7 +32,7 @@ struct TeamsCallingView: View { } } .buttonStyle(.plain) - .listRowView(isActive: team.didConfirmSummon(), color: .green, hideColorVariation: true) + .listRowView(isActive: team.confirmed(), color: .green, hideColorVariation: true) } } } @@ -52,7 +52,7 @@ struct TeamsCallingView: View { Logger.error(error) } } label: { - if team.didConfirmSummon() { + if team.confirmed() { Label("Confirmation reçue", systemImage: "checkmark.circle.fill").foregroundStyle(.green) } else { Label("Confirmation reçue", systemImage: "circle").foregroundStyle(.logoRed) diff --git a/PadelClub/Views/Team/EditingTeamView.swift b/PadelClub/Views/Team/EditingTeamView.swift index d3ac838..4bb148b 100644 --- a/PadelClub/Views/Team/EditingTeamView.swift +++ b/PadelClub/Views/Team/EditingTeamView.swift @@ -77,21 +77,10 @@ struct EditingTeamView: View { Text("Convocation") } - Button { - team.toggleSummonConfirmation() - do { - try self.tournament.tournamentStore.teamRegistrations.addOrUpdate(instance: team) - } catch { - Logger.error(error) - } - } label: { - if team.didConfirmSummon() { - Label("Confirmation reçue", systemImage: "checkmark.circle.fill").foregroundStyle(.green) - } else { - Label("Confirmation reçue", systemImage: "circle").foregroundStyle(.logoRed) - } + Toggle(isOn: confirmationReceived) { + Text("Confirmation reçue") + Text("L'équipe vous a confirmé votre convocation") } - } else { Text("Cette équipe n'a pas été convoquée") } @@ -273,6 +262,19 @@ struct EditingTeamView: View { .navigationBarTitleDisplayMode(.inline) } + private var confirmationReceived: Binding { + Binding { + team.confirmed() + } set: { confirmed in + team.confirmationDate = confirmed ? Date() : nil + do { + try tournamentStore.teamRegistrations.addOrUpdate(instance: team) + } catch { + Logger.error(error) + } + } + } + private var hasArrived: Binding { Binding { team.unsortedPlayers().allSatisfy({ $0.hasArrived })