Adds sharing for matches

sync3
Laurent 6 months ago
parent 3d29d25f63
commit df8609d1a0
  1. 6
      PadelClub/AppDelegate.swift
  2. 5
      PadelClub/Views/Match/MatchDetailView.swift
  3. 6
      PadelClub/Views/Round/DrawLogsView.swift
  4. 25
      PadelClub/Views/User/ShareModelView.swift

@ -28,16 +28,16 @@ class AppDelegate : NSObject, UIApplicationDelegate, UNUserNotificationCenterDel
fileprivate func _configureLeStorage() { fileprivate func _configureLeStorage() {
StoreCenter.main.blackListUserName("apple-test") StoreCenter.main.blackListUserName("apple-test")
StoreCenter.main.classProject = "PadelClubData"
// let secureScheme = true // let secureScheme = true
let domain: String = URLs.activationHost.rawValue let domain: String = URLs.activationHost.rawValue
#if DEBUG #if DEBUG
if let secure = PListReader.readBool(plist: "local", key: "secure_server"), if let secure = PListReader.readBool(plist: "local", key: "secure_server"),
let domain = PListReader.readString(plist: "local", key: "server_domain") { let domain = PListReader.readString(plist: "local", key: "server_domain") {
StoreCenter.main.configureURLs(secureScheme: secure, domain: domain, webSockets: false) StoreCenter.main.configureURLs(secureScheme: secure, domain: domain, webSockets: true, useSynchronization: true)
} else { } else {
StoreCenter.main.configureURLs(secureScheme: true, domain: domain, webSockets: false) StoreCenter.main.configureURLs(secureScheme: true, domain: domain, webSockets: true, useSynchronization: true)
} }
#else #else
StoreCenter.main.configureURLs(secureScheme: true, domain: domain, webSockets: false) StoreCenter.main.configureURLs(secureScheme: true, domain: domain, webSockets: false)

@ -309,6 +309,11 @@ struct MatchDetailView: View {
.toolbar { .toolbar {
ToolbarItem(placement: .topBarTrailing) { ToolbarItem(placement: .topBarTrailing) {
Menu { Menu {
NavigationLink("Partager") {
ShareModelView(instance: self.match)
}
Toggle(isOn: .init(get: { Toggle(isOn: .init(get: {
return match.confirmed return match.confirmed
}, set: { value in }, set: { value in

@ -52,11 +52,7 @@ struct DrawLogsView: View {
Divider() Divider()
Button("Tout effacer", role: .destructive) { Button("Tout effacer", role: .destructive) {
do { tournament.tournamentStore?.drawLogs.reset()
try tournament.tournamentStore?.drawLogs.deleteAll()
} catch {
Logger.error(error)
}
} }
} label: { } label: {
LabelOptions() LabelOptions()

@ -13,9 +13,9 @@ import PadelClubData
class UserSearchViewModel: ObservableObject { class UserSearchViewModel: ObservableObject {
@Published var searchText = "" @Published var searchText = ""
@Published var userNames: [ShortUser] = [] // @Published var userNames: [ShortUser] = []
@Published var users: [String] = [] // @Published var users: [String] = []
@Published var availableUsers: [ShortUser] = [] @Published var availableUsers: [ShortUser] = []
@Published var selectedUsers: [String] = [] @Published var selectedUsers: [String] = []
@ -23,19 +23,24 @@ class UserSearchViewModel: ObservableObject {
Task { Task {
do { do {
let service = try StoreCenter.main.service() let service = try StoreCenter.main.service()
let userNames = try await service.getUserNames() let shortUsers = try await service.getUserAgents()
DispatchQueue.main.async { await self.setAvailableUsers(shortUsers)
self.userNames = userNames
self.availableUsers = self.users.compactMap { userId in
self.userNames.first(where: { $0.id == userId })
}
}
} catch { } catch {
Logger.error(error) Logger.error(error)
} }
} }
} }
@MainActor
func setAvailableUsers(_ users: [ShortUser]) {
self.availableUsers = users
// self.userNames = users
// self.availableUsers = self.users.compactMap { userId in
// self.userNames.first(where: { $0.id == userId })
// }
}
func userTapped(_ user: String) { func userTapped(_ user: String) {
if let index = self.selectedUsers.firstIndex(of: user) { if let index = self.selectedUsers.firstIndex(of: user) {
self.selectedUsers.remove(at: index) self.selectedUsers.remove(at: index)
@ -76,7 +81,7 @@ struct ShareModelView<T: SyncedStorable> : View {
}.onAppear { }.onAppear {
self.viewModel.selectedUsers = StoreCenter.main.authorizedUsers(for: self.instance.stringId) self.viewModel.selectedUsers = StoreCenter.main.authorizedUsers(for: self.instance.stringId)
self.viewModel.users = DataStore.shared.user.agents // self.viewModel.users = DataStore.shared.user.agents
} }
} }

Loading…
Cancel
Save