mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-10-31 08:15:24 +00:00
d01d04846a
Pending approval and an incomplete profile were only visible in the members tab, which a new user has no reason to open.
86 lines
2.8 KiB
Swift
86 lines
2.8 KiB
Swift
//
|
|
// Copyright 2025 Element Creations Ltd.
|
|
// Copyright 2024-2025 New Vector Ltd.
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
|
// Please see LICENSE files in the repository root for full details.
|
|
//
|
|
|
|
import Foundation
|
|
import Macros
|
|
import Synchronization
|
|
|
|
final nonisolated class AppHooks: AppHooksProtocol {
|
|
#if IS_MAIN_APP
|
|
func configure(with userSession: UserSessionProtocol?) async {
|
|
await userSessionHook.configure(with: userSession)
|
|
await extendedProfileSectionHook.configure(with: userSession)
|
|
await settingsScreenHook.configure(with: userSession)
|
|
}
|
|
|
|
@AppHook(default: DefaultAppSettingsHook())
|
|
var appSettingsHook: AppSettingsHookProtocol
|
|
|
|
@AppHook(default: DefaultCompoundHook())
|
|
var compoundHook: CompoundHookProtocol
|
|
|
|
@AppHook(default: DefaultBugReportHook())
|
|
var bugReportHook: BugReportHookProtocol
|
|
|
|
@AppHook(default: DefaultOAuthPresenterHook())
|
|
var oAuthPresenterHook: OAuthPresenterHookProtocol
|
|
|
|
@AppHook(default: DefaultUserSessionHook())
|
|
var userSessionHook: UserSessionHookProtocol
|
|
|
|
@AppHook(default: DefaultRoomScreenHook())
|
|
var roomScreenHook: RoomScreenHookProtocol
|
|
|
|
@AppHook(default: DefaultRoomDetailsScreenHook())
|
|
var roomDetailsScreenHook: RoomDetailsScreenHookProtocol
|
|
|
|
@AppHook(default: DefaultRoomMemberDetailsScreenHook())
|
|
var roomMemberDetailsScreenHook: RoomMemberDetailsScreenHookProtocol
|
|
|
|
@AppHook(default: DefaultUserProfileScreenHook())
|
|
var userProfileScreenHook: UserProfileScreenHookProtocol
|
|
|
|
@AppHook(default: DefaultExtendedProfileSectionHook())
|
|
var extendedProfileSectionHook: ExtendedProfileSectionHookProtocol
|
|
|
|
@AppHook(default: DefaultHomeTabsHook())
|
|
var homeTabsHook: HomeTabsHookProtocol
|
|
|
|
@AppHook(default: DefaultSettingsScreenHook())
|
|
var settingsScreenHook: SettingsScreenHookProtocol
|
|
|
|
@AppHook(default: DefaultUserDetailsEditScreenHook())
|
|
var userDetailsEditScreenHook: UserDetailsEditScreenHookProtocol
|
|
|
|
@AppHook(default: DefaultDeveloperOptionsScreenHook())
|
|
var developerOptionsScreenHook: DeveloperOptionsScreenHookProtocol
|
|
|
|
@AppHook(default: DefaultRecoveryKeyScreenHook())
|
|
var recoveryKeyScreenHook: RecoveryKeyScreenHookProtocol
|
|
#endif
|
|
|
|
@AppHook(default: DefaultTracingHook())
|
|
var tracingHook: TracingHookProtocol
|
|
|
|
@AppHook(default: DefaultClientFactoryHook())
|
|
var clientFactoryHook: ClientFactoryHookProtocol
|
|
|
|
@AppHook(default: DefaultRemoteSettingsHook())
|
|
var remoteSettingsHook: RemoteSettingsHookProtocol
|
|
}
|
|
|
|
nonisolated protocol AppHooksProtocol: Sendable {
|
|
// periphery:ignore - required for the architecture
|
|
func setUp()
|
|
}
|
|
|
|
nonisolated extension AppHooksProtocol {
|
|
// periphery:ignore - required for the architecture
|
|
func setUp() { }
|
|
}
|