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