fix textfield stuff in player edition

add better way to copy paste
paca_championship
Raz 1 year ago
parent 176df45214
commit 8cf59a31c8
  1. 16
      PadelClub/Views/Components/CopyPasteButtonView.swift
  2. 40
      PadelClub/Views/Player/PlayerDetailView.swift

@ -11,7 +11,9 @@ struct CopyPasteButtonView: View {
let pasteValue: String?
@State private var copied: Bool = false
@ViewBuilder
var body: some View {
if let pasteValue {
Button {
let pasteboard = UIPasteboard.general
pasteboard.string = pasteValue
@ -20,4 +22,18 @@ struct CopyPasteButtonView: View {
Label(copied ? "copié" : "copier", systemImage: "doc.on.doc").symbolVariant(copied ? .fill : .none)
}
}
}
}
struct PasteButtonView: View {
@Binding var text: String
@ViewBuilder
var body: some View {
PasteButton(payloadType: String.self) { strings in
if let pasteboard = strings.first {
text = pasteboard
}
}
}
}

@ -113,7 +113,9 @@ struct PlayerDetailView: View {
Section {
LabeledContent {
TextField("Licence", text: $licenceId)
.focused($focusedField, equals: ._licenceId)
.keyboardType(.alphabet)
.textContentType(nil)
.multilineTextAlignment(.trailing)
.autocorrectionDisabled()
.frame(maxWidth: .infinity)
@ -121,17 +123,24 @@ struct PlayerDetailView: View {
player.licenceId = licenceId
_save()
}
} label: {
Menu {
CopyPasteButtonView(pasteValue: player.licenceId)
PasteButtonView(text: $licenceId)
.onChange(of: licenceId) {
player.licenceId = licenceId
_save()
}
} label: {
Text("Licence")
}
} footer: {
CopyPasteButtonView(pasteValue: player.licenceId?.strippedLicense)
}
Section {
LabeledContent {
TextField("Téléphone", text: $phoneNumber)
.focused($focusedField, equals: ._phoneNumber)
.keyboardType(.namePhonePad)
.textContentType(nil)
.multilineTextAlignment(.trailing)
.autocorrectionDisabled()
.frame(maxWidth: .infinity)
@ -139,17 +148,24 @@ struct PlayerDetailView: View {
player.phoneNumber = phoneNumber
_save()
}
} label: {
Menu {
CopyPasteButtonView(pasteValue: player.phoneNumber)
PasteButtonView(text: $phoneNumber)
.onChange(of: phoneNumber) {
player.phoneNumber = phoneNumber
_save()
}
} label: {
Text("Téléphone")
}
} footer: {
CopyPasteButtonView(pasteValue: player.phoneNumber)
}
Section {
LabeledContent {
TextField("Email", text: $email)
.focused($focusedField, equals: ._email)
.keyboardType(.emailAddress)
.textContentType(nil)
.multilineTextAlignment(.trailing)
.autocorrectionDisabled()
.frame(maxWidth: .infinity)
@ -157,13 +173,19 @@ struct PlayerDetailView: View {
player.email = email
_save()
}
} label: {
Menu {
CopyPasteButtonView(pasteValue: player.email)
PasteButtonView(text: $email)
.onChange(of: email) {
player.email = email
_save()
}
} label: {
Text("Email")
}
} footer: {
CopyPasteButtonView(pasteValue: player.email)
}
}
}
.toolbar {
ToolbarItem(placement: .topBarTrailing) {

Loading…
Cancel
Save