Add hooks for the RoomDetails, RoomMemberDetails and UserProfile screens. (#5980)

Also adds an @AppHook macro.
This commit is contained in:
Doug
2026-08-05 12:41:18 +01:00
committed by GitHub
parent 68f7f2b301
commit 80530f0006
31 changed files with 328 additions and 126 deletions
@@ -750,8 +750,9 @@ class ChatsTabFlowCoordinator: FlowCoordinatorProtocol {
let parameters = UserProfileScreenCoordinatorParameters(userID: userID,
isPresentedModally: true,
userSession: userSession,
userIndicatorController: flowParameters.userIndicatorController,
analytics: flowParameters.analytics)
appHooks: flowParameters.appHooks,
analytics: flowParameters.analytics,
userIndicatorController: flowParameters.userIndicatorController)
let coordinator = UserProfileScreenCoordinator(parameters: parameters)
coordinator.actionsPublisher.sink { [weak self] action in
guard let self else { return }
@@ -940,6 +940,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
private func presentRoomDetails(isRoot: Bool, animated: Bool) async {
let params = RoomDetailsScreenCoordinatorParameters(roomProxy: roomProxy,
userSession: userSession,
appHooks: flowParameters.appHooks,
analyticsService: flowParameters.analytics,
userIndicatorController: flowParameters.userIndicatorController,
notificationSettings: userSession.clientProxy.notificationSettings,
@@ -231,8 +231,9 @@ final class RoomMembersFlowCoordinator: FlowCoordinatorProtocol {
let params = RoomMemberDetailsScreenCoordinatorParameters(userID: userID,
roomProxy: roomProxy,
userSession: flowParameters.userSession,
userIndicatorController: flowParameters.userIndicatorController,
analytics: flowParameters.analytics)
appHooks: flowParameters.appHooks,
analytics: flowParameters.analytics,
userIndicatorController: flowParameters.userIndicatorController)
let coordinator = RoomMemberDetailsScreenCoordinator(parameters: params)
coordinator.actions.sink { [weak self] action in
@@ -287,8 +288,9 @@ final class RoomMembersFlowCoordinator: FlowCoordinatorProtocol {
let parameters = UserProfileScreenCoordinatorParameters(userID: userID,
isPresentedModally: false,
userSession: flowParameters.userSession,
userIndicatorController: flowParameters.userIndicatorController,
analytics: flowParameters.analytics)
appHooks: flowParameters.appHooks,
analytics: flowParameters.analytics,
userIndicatorController: flowParameters.userIndicatorController)
let coordinator = UserProfileScreenCoordinator(parameters: parameters)
coordinator.actionsPublisher.sink { [weak self] action in
guard let self else { return }
@@ -211,6 +211,7 @@ final class SpaceSettingsFlowCoordinator: FlowCoordinatorProtocol {
private func presentSpaceSettings(animated: Bool) {
let coordinator = RoomDetailsScreenCoordinator(parameters: .init(roomProxy: roomProxy,
userSession: flowParameters.userSession,
appHooks: flowParameters.appHooks,
analyticsService: flowParameters.analytics,
userIndicatorController: flowParameters.userIndicatorController,
notificationSettings: flowParameters.userSession.clientProxy.notificationSettings,