multistore
Razmig Sarkissian 2 years ago
parent b68a7e5513
commit d6f8a711a7
  1. 51
      PadelClub/Views/Club/ClubSearchView.swift

@ -83,30 +83,7 @@ struct ClubSearchView: View {
ForEach(_filteredClubs()) { clubMark in
Button {
let clubToEdit = club ?? Club.findOrCreate(name: clubMark.nom, code: clubMark.clubID)
if clubToEdit.creator == dataStore.user.id {
if clubToEdit.name.isEmpty {
clubToEdit.name = clubMark.nom
clubToEdit.acronym = clubToEdit.automaticShortName()
}
clubToEdit.code = clubMark.clubID
clubToEdit.latitude = clubMark.lat
clubToEdit.longitude = clubMark.lng
clubToEdit.city = clubMark.ville
}
if displayContext == .addition {
do {
try dataStore.clubs.addOrUpdate(instance: clubToEdit)
if dataStore.user.clubs.contains(where: { $0 == clubToEdit.id }) == false {
dataStore.user.clubs.append(clubToEdit.id)
self.dataStore.saveUser()
}
} catch {
Logger.error(error)
}
}
dismiss()
_importClub(clubToEdit: clubToEdit, clubMarker: clubMark)
} label: {
clubView(clubMark)
.frame(maxWidth: .infinity)
@ -307,6 +284,32 @@ struct ClubSearchView: View {
// }
}
}
private func _importClub(clubToEdit: Club, clubMarker: ClubMarker) {
if clubToEdit.creator == dataStore.user.id {
if clubToEdit.name.isEmpty {
clubToEdit.name = clubMark.nom
clubToEdit.acronym = clubToEdit.automaticShortName()
}
clubToEdit.code = clubMark.clubID
clubToEdit.latitude = clubMark.lat
clubToEdit.longitude = clubMark.lng
clubToEdit.city = clubMark.ville
}
if displayContext == .addition {
do {
try dataStore.clubs.addOrUpdate(instance: clubToEdit)
if dataStore.user.clubs.contains(where: { $0 == clubToEdit.id }) == false {
dataStore.user.clubs.append(clubToEdit.id)
self.dataStore.saveUser()
}
} catch {
Logger.error(error)
}
}
dismiss()
}
private func _filteredClubs() -> [ClubMarker] {
clubMarkers.filter({ _isClubValidForSearchedTerms(club: $0) })

Loading…
Cancel
Save