// // 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 { /// 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() /// Whether the Labs entry (experimental upstream features) is offered at all. var showsLabs: Bool { get } } struct DefaultSettingsScreenHook: SettingsScreenHookProtocol { func accountStatusSection(completeProfileAction: @escaping () -> Void) -> AnyView? { nil } func refreshAccountStatus() { } var showsLabs: Bool { true } }