diff --git a/PadelClub/Views/Cashier/CashierView.swift b/PadelClub/Views/Cashier/CashierView.swift index b406a85..ce35f7f 100644 --- a/PadelClub/Views/Cashier/CashierView.swift +++ b/PadelClub/Views/Cashier/CashierView.swift @@ -187,6 +187,7 @@ class CashierViewModel: ObservableObject { struct CashierView: View { @EnvironmentObject var dataStore: DataStore + @EnvironmentObject var tournament: TournamentStore @EnvironmentObject var cashierViewModel: CashierViewModel var tournaments : [Tournament] diff --git a/PadelClub/Views/Components/CopyPasteButtonView.swift b/PadelClub/Views/Components/CopyPasteButtonView.swift index b3f4ee7..aac21d4 100644 --- a/PadelClub/Views/Components/CopyPasteButtonView.swift +++ b/PadelClub/Views/Components/CopyPasteButtonView.swift @@ -15,13 +15,9 @@ struct CopyPasteButtonView: View { Button { let pasteboard = UIPasteboard.general pasteboard.string = pasteValue + copied = true } label: { - HStack(spacing: 0) { - Label(copied ? "copié" : "copier", systemImage: "doc.on.doc") - if copied == true { - Image(systemName: "checkmark") - } - } + Label(copied ? "copié" : "copier", systemImage: "doc.on.doc").symbolVariant(copied ? .fill : .none) } } } diff --git a/PadelClub/Views/GroupStage/Components/GroupStageTeamView.swift b/PadelClub/Views/GroupStage/Components/GroupStageTeamView.swift index d977498..f76c7af 100644 --- a/PadelClub/Views/GroupStage/Components/GroupStageTeamView.swift +++ b/PadelClub/Views/GroupStage/Components/GroupStageTeamView.swift @@ -42,6 +42,7 @@ struct GroupStageTeamView: View { Section { ForEach(team.players()) { player in EditablePlayerView(player: player, editingOptions: [.licenceId, .name, .payment]) + .environmentObject(tournament.tournamentStore) } } diff --git a/PadelClub/Views/Navigation/Ongoing/OngoingView.swift b/PadelClub/Views/Navigation/Ongoing/OngoingView.swift index 149d251..3c41cbb 100644 --- a/PadelClub/Views/Navigation/Ongoing/OngoingView.swift +++ b/PadelClub/Views/Navigation/Ongoing/OngoingView.swift @@ -77,7 +77,7 @@ struct OngoingView: View { } .pickerStyle(.segmented) .fixedSize() - .offset(y: -4) + .offset(y: -3) } } } diff --git a/PadelClub/Views/Player/Components/EditablePlayerView.swift b/PadelClub/Views/Player/Components/EditablePlayerView.swift index 4f4dccb..130b127 100644 --- a/PadelClub/Views/Player/Components/EditablePlayerView.swift +++ b/PadelClub/Views/Player/Components/EditablePlayerView.swift @@ -39,6 +39,9 @@ struct EditablePlayerView: View { Logger.error(error) } } + Button("Annuler", role: .cancel) { + shouldPresentLicenceIdEdition = false + } } .alert("Prénom", isPresented: $presentFirstNameUpdate) { TextField("Prénom", text: $player.firstName) @@ -49,6 +52,9 @@ struct EditablePlayerView: View { Logger.error(error) } } + Button("Annuler", role: .cancel) { + presentFirstNameUpdate = false + } } .alert("Nom", isPresented: $presentLastNameUpdate) { TextField("Nom", text: $player.lastName) @@ -59,6 +65,9 @@ struct EditablePlayerView: View { Logger.error(error) } } + Button("Annuler", role: .cancel) { + presentLastNameUpdate = false + } } .onChange(of: editedLicenceId) { self.player.licenceId = editedLicenceId diff --git a/PadelClub/Views/Player/PlayerDetailView.swift b/PadelClub/Views/Player/PlayerDetailView.swift index 70dd10e..938a7ac 100644 --- a/PadelClub/Views/Player/PlayerDetailView.swift +++ b/PadelClub/Views/Player/PlayerDetailView.swift @@ -33,6 +33,8 @@ struct PlayerDetailView: View { var body: some View { Form { Section { + Toggle("Joueur sur place", isOn: $player.hasArrived) + LabeledContent { TextField("Nom", text: $player.lastName) .keyboardType(.alphabet) @@ -101,11 +103,7 @@ struct PlayerDetailView: View { Text("Calculé en fonction du sexe") } } - - Section { - Toggle("Joueur sur place", isOn: $player.hasArrived) - } - + Section { LabeledContent { TextField("Licence", text: $licenceId) @@ -119,9 +117,12 @@ struct PlayerDetailView: View { } } label: { Text("Licence") - CopyPasteButtonView(pasteValue: player.licenceId?.strippedLicense) } + } footer: { + CopyPasteButtonView(pasteValue: player.licenceId?.strippedLicense) + } + Section { LabeledContent { TextField("Téléphone", text: $phoneNumber) .keyboardType(.namePhonePad) @@ -134,9 +135,12 @@ struct PlayerDetailView: View { } } label: { Text("Téléphone") - CopyPasteButtonView(pasteValue: player.phoneNumber) } - + } footer: { + CopyPasteButtonView(pasteValue: player.phoneNumber) + } + + Section { LabeledContent { TextField("Email", text: $email) .keyboardType(.emailAddress) @@ -149,8 +153,9 @@ struct PlayerDetailView: View { } } label: { Text("Email") - CopyPasteButtonView(pasteValue: player.email) } + } footer: { + CopyPasteButtonView(pasteValue: player.email) } } @@ -177,17 +182,19 @@ struct PlayerDetailView: View { .navigationBarTitleDisplayMode(.inline) .toolbarBackground(.visible, for: .navigationBar) .toolbar { - ToolbarItem(placement: .keyboard) { - Button("Valider") { - if focusedField == ._rank { - player.setComputedRank(in: tournament) - player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) - _save() - } else if focusedField == ._computedRank { - player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) - _save() + if focusedField == ._rank || focusedField == ._computedRank { + ToolbarItem(placement: .keyboard) { + Button("Valider") { + if focusedField == ._rank { + player.setComputedRank(in: tournament) + player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) + _save() + } else if focusedField == ._computedRank { + player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) + _save() + } + focusedField = nil } - focusedField = nil } } } diff --git a/PadelClub/Views/Team/EditingTeamView.swift b/PadelClub/Views/Team/EditingTeamView.swift index 3480b61..b4ca5ba 100644 --- a/PadelClub/Views/Team/EditingTeamView.swift +++ b/PadelClub/Views/Team/EditingTeamView.swift @@ -60,14 +60,15 @@ struct EditingTeamView: View { .environment(tournament) } label: { Text("Chercher à remplacer") + .underline() } } } Section { DatePicker(selection: $registrationDate) { - Text("Date d'inscription") - Text(registrationDate.localizedWeekDay()) + Text("Inscription") + Text(registrationDate.localizedWeekDay().capitalized) } if let callDate = team.callDate { LabeledContent() { @@ -78,9 +79,7 @@ struct EditingTeamView: View { } else { Text("Cette équipe n'a pas été convoquée") } - } - Section { Toggle(isOn: hasArrived) { Text("Équipe sur place") } @@ -132,25 +131,28 @@ struct EditingTeamView: View { })) { Text("Forfait") } - } - Section { - TextField("Nom de l'équipe", text: $name) - .autocorrectionDisabled() - .keyboardType(.alphabet) - .frame(maxWidth: .infinity) - .submitLabel(.done) - .onSubmit(of: .text) { - let trimmed = name.trimmed - if trimmed.isEmpty { - team.name = nil - } else { - team.name = trimmed + LabeledContent { + TextField("Nom", text: $name) + .autocorrectionDisabled() + .keyboardType(.alphabet) + .keyboardType(.alphabet) + .multilineTextAlignment(.trailing) + .frame(maxWidth: .infinity) + .submitLabel(.done) + .onSubmit(of: .text) { + let trimmed = name.trimmed + if trimmed.isEmpty { + team.name = nil + } else { + team.name = trimmed + } + + _save() } - - _save() - } - + } label: { + Text("Nom de l'équipe") + } } Section { diff --git a/PadelClub/Views/Tournament/Screen/Components/InscriptionInfoView.swift b/PadelClub/Views/Tournament/Screen/Components/InscriptionInfoView.swift index 9514821..fb2c518 100644 --- a/PadelClub/Views/Tournament/Screen/Components/InscriptionInfoView.swift +++ b/PadelClub/Views/Tournament/Screen/Components/InscriptionInfoView.swift @@ -164,6 +164,7 @@ struct InscriptionInfoView: View { DisclosureGroup { ForEach(playersWithoutValidLicense) { EditablePlayerView(player: $0, editingOptions: [.licenceId]) + .environmentObject(tournament.tournamentStore) } } label: { LabeledContent { diff --git a/PadelClub/Views/Tournament/Screen/TournamentCashierView.swift b/PadelClub/Views/Tournament/Screen/TournamentCashierView.swift index 01468f9..2353007 100644 --- a/PadelClub/Views/Tournament/Screen/TournamentCashierView.swift +++ b/PadelClub/Views/Tournament/Screen/TournamentCashierView.swift @@ -152,6 +152,7 @@ struct TournamentCashierView: View { } } .environment(tournament) + .environmentObject(tournament.tournamentStore) .environmentObject(cashierViewModel) .navigationBarTitleDisplayMode(.inline) .toolbarBackground(.visible, for: .navigationBar)