diff --git a/ElementX/Sources/FlowCoordinators/RoomMembersFlowCoordinator.swift b/ElementX/Sources/FlowCoordinators/RoomMembersFlowCoordinator.swift index b7f292b6c..7c3298875 100644 --- a/ElementX/Sources/FlowCoordinators/RoomMembersFlowCoordinator.swift +++ b/ElementX/Sources/FlowCoordinators/RoomMembersFlowCoordinator.swift @@ -178,6 +178,9 @@ final class RoomMembersFlowCoordinator: FlowCoordinatorProtocol { case (_, .presentRoomMemberDetails, .roomMemberDetails(let userID, _)): presentRoomMemberDetails(userID: userID, animated: animated) + + case (.roomMemberDetails, .dismissedRoomMemberDetails, .initial): + actionsSubject.send(.finished) case (.roomMemberDetails, .dismissedRoomMemberDetails, .roomMembersList): break @@ -188,6 +191,9 @@ final class RoomMembersFlowCoordinator: FlowCoordinatorProtocol { case (.roomMemberDetails, .presentUserProfile, .userProfile(let userID, _)): replaceRoomMemberDetailsWithUserProfile(userID: userID) + + case (.userProfile, .dismissedUserProfile, .initial): + actionsSubject.send(.finished) case (.userProfile, .dismissedUserProfile, _): break @@ -248,13 +254,7 @@ final class RoomMembersFlowCoordinator: FlowCoordinatorProtocol { .store(in: &cancellables) navigationStackCoordinator.push(coordinator, animated: animated) { [weak self] in - guard let self else { return } - if case let .roomMemberDetails(_, previousState) = stateMachine.state, - previousState == .initial { - actionsSubject.send(.finished) - } else { - stateMachine.tryEvent(.dismissedRoomMemberDetails) - } + self?.stateMachine.tryEvent(.dismissedRoomMemberDetails) } }