// // Copyright 2026 Novaloop AG // // SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial. // Please see LICENSE files in the repository root for full details. // import Foundation enum HealthChatMemberDirectoryScreenViewModelAction { case selectMember(userID: String) case presentRoom(roomID: String) } nonisolated enum HealthChatMemberDirectoryScreenContent: Equatable { case loading case members([HealthChatMember]) case pendingApproval(message: String) case failure } struct HealthChatMemberDirectoryScreenViewState: BindableState { var content: HealthChatMemberDirectoryScreenContent = .loading var bindings = HealthChatMemberDirectoryScreenViewStateBindings() } struct HealthChatMemberDirectoryScreenViewStateBindings { var searchQuery = "" var alertInfo: AlertInfo? } enum HealthChatMemberDirectoryScreenAlertType: Hashable { case failedStartingChat } enum HealthChatMemberDirectoryScreenViewAction { case retry case selectMember(HealthChatMember) case startChat(HealthChatMember) }