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() {
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)

@ -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

@ -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()

@ -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<T: SyncedStorable> : 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
}
}

Loading…
Cancel
Save