Laurent 1 year ago
commit 9714645560
  1. 1
      PadelClub/Views/Cashier/CashierView.swift
  2. 8
      PadelClub/Views/Components/CopyPasteButtonView.swift
  3. 1
      PadelClub/Views/GroupStage/Components/GroupStageTeamView.swift
  4. 2
      PadelClub/Views/Navigation/Ongoing/OngoingView.swift
  5. 9
      PadelClub/Views/Player/Components/EditablePlayerView.swift
  6. 41
      PadelClub/Views/Player/PlayerDetailView.swift
  7. 44
      PadelClub/Views/Team/EditingTeamView.swift
  8. 1
      PadelClub/Views/Tournament/Screen/Components/InscriptionInfoView.swift
  9. 1
      PadelClub/Views/Tournament/Screen/TournamentCashierView.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]

@ -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)
}
}
}

@ -42,6 +42,7 @@ struct GroupStageTeamView: View {
Section {
ForEach(team.players()) { player in
EditablePlayerView(player: player, editingOptions: [.licenceId, .name, .payment])
.environmentObject(tournament.tournamentStore)
}
}

@ -77,7 +77,7 @@ struct OngoingView: View {
}
.pickerStyle(.segmented)
.fixedSize()
.offset(y: -4)
.offset(y: -3)
}
}
}

@ -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

@ -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)
@ -102,10 +104,6 @@ struct PlayerDetailView: View {
}
}
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
}
}
}

@ -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
}
_save()
}
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()
}
} label: {
Text("Nom de l'équipe")
}
}
Section {

@ -164,6 +164,7 @@ struct InscriptionInfoView: View {
DisclosureGroup {
ForEach(playersWithoutValidLicense) {
EditablePlayerView(player: $0, editingOptions: [.licenceId])
.environmentObject(tournament.tournamentStore)
}
} label: {
LabeledContent {

@ -152,6 +152,7 @@ struct TournamentCashierView: View {
}
}
.environment(tournament)
.environmentObject(tournament.tournamentStore)
.environmentObject(cashierViewModel)
.navigationBarTitleDisplayMode(.inline)
.toolbarBackground(.visible, for: .navigationBar)

Loading…
Cancel
Save