fix unnecessary save in edit player

sync2
Raz 10 months ago
parent e1ffa4830a
commit 783e66e754
  1. 41
      PadelClub/Views/Player/PlayerDetailView.swift

@ -152,10 +152,6 @@ struct PlayerDetailView: View {
Menu { Menu {
CopyPasteButtonView(pasteValue: player.phoneNumber) CopyPasteButtonView(pasteValue: player.phoneNumber)
PasteButtonView(text: $phoneNumber) PasteButtonView(text: $phoneNumber)
.onChange(of: phoneNumber) {
player.phoneNumber = phoneNumber.prefixTrimmed(50)
_save()
}
} label: { } label: {
Text("Téléphone") Text("Téléphone")
} }
@ -177,10 +173,6 @@ struct PlayerDetailView: View {
Menu { Menu {
CopyPasteButtonView(pasteValue: player.email) CopyPasteButtonView(pasteValue: player.email)
PasteButtonView(text: $email) PasteButtonView(text: $email)
.onChange(of: email) {
player.email = email.prefixTrimmed(50)
_save()
}
} label: { } label: {
Text("Email") Text("Email")
} }
@ -216,13 +208,6 @@ struct PlayerDetailView: View {
} }
} }
} }
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
ShareLink(item: player.pasteData()) {
Label("Partager", systemImage: "square.and.arrow.up")
}
}
}
.onChange(of: player.hasArrived) { .onChange(of: player.hasArrived) {
_save() _save()
} }
@ -230,7 +215,17 @@ struct PlayerDetailView: View {
_save() _save()
} }
.navigationBarBackButtonHidden(focusedField != nil) .navigationBarBackButtonHidden(focusedField != nil)
.toolbar(content: { .headerProminence(.increased)
.navigationTitle("Édition")
.navigationBarTitleDisplayMode(.inline)
.toolbarBackground(.visible, for: .navigationBar)
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
ShareLink(item: player.pasteData()) {
Label("Partager", systemImage: "square.and.arrow.up")
}
}
if focusedField != nil { if focusedField != nil {
ToolbarItem(placement: .topBarLeading) { ToolbarItem(placement: .topBarLeading) {
Button("Annuler", role: .cancel) { Button("Annuler", role: .cancel) {
@ -238,14 +233,9 @@ struct PlayerDetailView: View {
} }
} }
} }
}) if focusedField == ._rank || focusedField == ._computedRank || focusedField == ._phoneNumber {
.headerProminence(.increased) ToolbarItemGroup(placement: .keyboard) {
.navigationTitle("Édition") Spacer()
.navigationBarTitleDisplayMode(.inline)
.toolbarBackground(.visible, for: .navigationBar)
.toolbar {
if focusedField == ._rank || focusedField == ._computedRank {
ToolbarItem(placement: .keyboard) {
Button("Valider") { Button("Valider") {
if focusedField == ._rank { if focusedField == ._rank {
player.setComputedRank(in: tournament) player.setComputedRank(in: tournament)
@ -254,6 +244,9 @@ struct PlayerDetailView: View {
} else if focusedField == ._computedRank { } else if focusedField == ._computedRank {
player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory)
_save() _save()
} else if focusedField == ._phoneNumber {
player.phoneNumber = phoneNumber.prefixTrimmed(50)
_save()
} }
focusedField = nil focusedField = nil
} }

Loading…
Cancel
Save