// // Copyright 2026 Element Creations Ltd. // // SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial. // Please see LICENSE files in the repository root for full details. // import SwiftUI nonisolated protocol SettingsScreenHookProtocol: Sendable { @MainActor func configure(with userSession: UserSessionProtocol?) async /// An extra Form section rendered between the user and the account sections, /// advertising whatever is holding the account back. /// - Parameter completeProfileAction: Opens the own profile editor. @MainActor func accountStatusSection(completeProfileAction: @escaping () -> Void) -> AnyView? /// Called whenever the settings screen appears, so the section reflects what the user just did. @MainActor func refreshAccountStatus() } struct DefaultSettingsScreenHook: SettingsScreenHookProtocol { func configure(with userSession: UserSessionProtocol?) async { } func accountStatusSection(completeProfileAction: @escaping () -> Void) -> AnyView? { nil } func refreshAccountStatus() { } }