From df8609d1a0f89c44ea71a9034c4128c42c7a849e Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 21 May 2025 14:07:07 +0200 Subject: [PATCH] Adds sharing for matches --- PadelClub/AppDelegate.swift | 6 ++--- PadelClub/Views/Match/MatchDetailView.swift | 5 +++++ PadelClub/Views/Round/DrawLogsView.swift | 6 +---- PadelClub/Views/User/ShareModelView.swift | 25 ++++++++++++--------- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/PadelClub/AppDelegate.swift b/PadelClub/AppDelegate.swift index 1b38c5b..b58e458 100644 --- a/PadelClub/AppDelegate.swift +++ b/PadelClub/AppDelegate.swift @@ -28,16 +28,16 @@ class AppDelegate : NSObject, UIApplicationDelegate, UNUserNotificationCenterDel fileprivate func _configureLeStorage() { StoreCenter.main.blackListUserName("apple-test") - + StoreCenter.main.classProject = "PadelClubData" // let secureScheme = true let domain: String = URLs.activationHost.rawValue #if DEBUG if let secure = PListReader.readBool(plist: "local", key: "secure_server"), 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 { - StoreCenter.main.configureURLs(secureScheme: true, domain: domain, webSockets: false) + StoreCenter.main.configureURLs(secureScheme: true, domain: domain, webSockets: true, useSynchronization: true) } #else StoreCenter.main.configureURLs(secureScheme: true, domain: domain, webSockets: false) diff --git a/PadelClub/Views/Match/MatchDetailView.swift b/PadelClub/Views/Match/MatchDetailView.swift index 7f0fa2a..2c8ee62 100644 --- a/PadelClub/Views/Match/MatchDetailView.swift +++ b/PadelClub/Views/Match/MatchDetailView.swift @@ -309,6 +309,11 @@ struct MatchDetailView: View { .toolbar { ToolbarItem(placement: .topBarTrailing) { Menu { + + NavigationLink("Partager") { + ShareModelView(instance: self.match) + } + Toggle(isOn: .init(get: { return match.confirmed }, set: { value in diff --git a/PadelClub/Views/Round/DrawLogsView.swift b/PadelClub/Views/Round/DrawLogsView.swift index f89c3a7..1c24996 100644 --- a/PadelClub/Views/Round/DrawLogsView.swift +++ b/PadelClub/Views/Round/DrawLogsView.swift @@ -52,11 +52,7 @@ struct DrawLogsView: View { Divider() Button("Tout effacer", role: .destructive) { - do { - try tournament.tournamentStore?.drawLogs.deleteAll() - } catch { - Logger.error(error) - } + tournament.tournamentStore?.drawLogs.reset() } } label: { LabelOptions() diff --git a/PadelClub/Views/User/ShareModelView.swift b/PadelClub/Views/User/ShareModelView.swift index d1a1960..b504e6a 100644 --- a/PadelClub/Views/User/ShareModelView.swift +++ b/PadelClub/Views/User/ShareModelView.swift @@ -13,9 +13,9 @@ import PadelClubData class UserSearchViewModel: ObservableObject { @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 selectedUsers: [String] = [] @@ -23,19 +23,24 @@ class UserSearchViewModel: ObservableObject { Task { do { let service = try StoreCenter.main.service() - let userNames = try await service.getUserNames() - DispatchQueue.main.async { - self.userNames = userNames - self.availableUsers = self.users.compactMap { userId in - self.userNames.first(where: { $0.id == userId }) - } - } + let shortUsers = try await service.getUserAgents() + await self.setAvailableUsers(shortUsers) } catch { 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) { if let index = self.selectedUsers.firstIndex(of: user) { self.selectedUsers.remove(at: index) @@ -76,7 +81,7 @@ struct ShareModelView : View { }.onAppear { self.viewModel.selectedUsers = StoreCenter.main.authorizedUsers(for: self.instance.stringId) - self.viewModel.users = DataStore.shared.user.agents +// self.viewModel.users = DataStore.shared.user.agents } }