From 8d33bc02048f2d5a1bba0bf7b165cdefef8d3ff8 Mon Sep 17 00:00:00 2001 From: Laurent Date: Tue, 3 Jun 2025 10:49:36 +0200 Subject: [PATCH] cleanup view --- PadelClub/Views/User/ShareModelView.swift | 82 ++++++++++------------- 1 file changed, 37 insertions(+), 45 deletions(-) diff --git a/PadelClub/Views/User/ShareModelView.swift b/PadelClub/Views/User/ShareModelView.swift index b504e6a..70b33d9 100644 --- a/PadelClub/Views/User/ShareModelView.swift +++ b/PadelClub/Views/User/ShareModelView.swift @@ -10,51 +10,8 @@ import LeStorage import SwiftUI import PadelClubData -class UserSearchViewModel: ObservableObject { - - @Published var searchText = "" -// @Published var userNames: [ShortUser] = [] - -// @Published var users: [String] = [] - @Published var availableUsers: [ShortUser] = [] - @Published var selectedUsers: [String] = [] - - init() { - Task { - do { - let service = try StoreCenter.main.service() - 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) - } else { - self.selectedUsers.append(user) - } - } - - func contains(_ user: String) -> Bool { - return self.selectedUsers.firstIndex(of: user) != nil - } -} - struct ShareModelView : View { + @StateObject private var viewModel = UserSearchViewModel() let instance: T @@ -81,7 +38,6 @@ struct ShareModelView : View { }.onAppear { self.viewModel.selectedUsers = StoreCenter.main.authorizedUsers(for: self.instance.stringId) -// self.viewModel.users = DataStore.shared.user.agents } } @@ -111,6 +67,42 @@ struct UserRow: View { } } +class UserSearchViewModel: ObservableObject { + + @Published var searchText = "" + @Published var availableUsers: [ShortUser] = [] + @Published var selectedUsers: [String] = [] + + init() { + Task { + do { + let service = try StoreCenter.main.service() + let shortUsers = try await service.getUserAgents() + await self.setAvailableUsers(shortUsers) + } catch { + Logger.error(error) + } + } + } + + @MainActor + func setAvailableUsers(_ users: [ShortUser]) { + self.availableUsers = users + } + + func userTapped(_ user: String) { + if let index = self.selectedUsers.firstIndex(of: user) { + self.selectedUsers.remove(at: index) + } else { + self.selectedUsers.append(user) + } + } + + func contains(_ user: String) -> Bool { + return self.selectedUsers.firstIndex(of: user) != nil + } +} + // Preview provider struct ShareModelView_Previews: PreviewProvider { static var previews: some View {