diff --git a/PadelClub/Views/Club/ClubSearchView.swift b/PadelClub/Views/Club/ClubSearchView.swift index bb7aef9..6d628a6 100644 --- a/PadelClub/Views/Club/ClubSearchView.swift +++ b/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) })