// // 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 SwiftUI #if IS_MAIN_APP // Conforming to the nonisolated hook protocol would infer nonisolated, but the // service is main-actor state — the hook's requirements are all @MainActor anyway. @MainActor final class HealthChatExtendedProfileSectionHook: ExtendedProfileSectionHookProtocol { private var extendedProfileService: ExtendedProfileServiceProtocol? // Constructed during hook registration, before the main actor is reachable. nonisolated init() { } func configure(with userSession: UserSessionProtocol?) async { extendedProfileService = userSession.map { ExtendedProfileService(clientProxy: $0.clientProxy) } } func extendedProfileSection(userID: String) -> AnyView? { guard let extendedProfileService else { return nil } return AnyView(HealthChatExtendedProfileSection(userID: userID, service: extendedProfileService)) } } #endif