Bundle ClientProxy & MediaProvider injections together in UserSession.

This commit is contained in:
Doug
2025-08-27 17:25:28 +01:00
committed by Doug
parent b34816e159
commit f67f826bb7
74 changed files with 315 additions and 499 deletions
@@ -9,8 +9,7 @@ import Combine
import SwiftUI
struct RoomDirectorySearchScreenCoordinatorParameters {
let clientProxy: ClientProxyProtocol
let mediaProvider: MediaProviderProtocol
let userSession: UserSessionProtocol
let userIndicatorController: UserIndicatorControllerProtocol
}
@@ -31,9 +30,8 @@ final class RoomDirectorySearchScreenCoordinator: CoordinatorProtocol {
}
init(parameters: RoomDirectorySearchScreenCoordinatorParameters) {
viewModel = RoomDirectorySearchScreenViewModel(clientProxy: parameters.clientProxy,
userIndicatorController: parameters.userIndicatorController,
mediaProvider: parameters.mediaProvider)
viewModel = RoomDirectorySearchScreenViewModel(userSession: parameters.userSession,
userIndicatorController: parameters.userIndicatorController)
}
func start() {
@@ -19,13 +19,12 @@ class RoomDirectorySearchScreenViewModel: RoomDirectorySearchScreenViewModelType
actionsSubject.eraseToAnyPublisher()
}
init(clientProxy: ClientProxyProtocol,
userIndicatorController: UserIndicatorControllerProtocol,
mediaProvider: MediaProviderProtocol) {
roomDirectorySearchProxy = clientProxy.roomDirectorySearchProxy()
init(userSession: UserSessionProtocol,
userIndicatorController: UserIndicatorControllerProtocol) {
roomDirectorySearchProxy = userSession.clientProxy.roomDirectorySearchProxy()
self.userIndicatorController = userIndicatorController
super.init(initialViewState: RoomDirectorySearchScreenViewState(), mediaProvider: mediaProvider)
super.init(initialViewState: RoomDirectorySearchScreenViewState(), mediaProvider: userSession.mediaProvider)
state.rooms = roomDirectorySearchProxy.resultsPublisher.value
@@ -91,9 +91,8 @@ struct RoomDirectorySearchScreen_Previews: PreviewProvider, TestablePreview {
let clientProxy = ClientProxyMock(.init(roomDirectorySearchProxy: roomDirectorySearchProxy))
return RoomDirectorySearchScreenViewModel(clientProxy: clientProxy,
userIndicatorController: UserIndicatorControllerMock(),
mediaProvider: MediaProviderMock(configuration: .init()))
return RoomDirectorySearchScreenViewModel(userSession: UserSessionMock(.init(clientProxy: clientProxy)),
userIndicatorController: UserIndicatorControllerMock())
}()
static var previews: some View {